Software, by its term is flexible to adapt its structure. Software was meant to be flexible, adaptable and transportable. However, over a long period of time, software practitioners have disregarded these aspects and misused the nature of flexibility to provide sub-standard solutions. Are we sitting on a pile of redundant apps, some of which may look good but hardly of any use.
Honesty. Lack of honesty by user intermediaries. User intermediaries are responsible for collecting the expectations of the end users. The process of requirement collection is still reduced to few members imposing their view of the solutions required for their day to day tasks. The latest storm of UX articles have brought back the focus on user research. Understand in detail the needs of the user and improve their experience by addressing their needs rather than wants. However, this step is conveniently ignored and only the frontend technology(like UI5, Fiori) experience like performance, look and feel etc. is highlighted. Also, what is missed is the capability of the applications/solutions to adapt to change in needs of the user at a later point. If any change later, its either ignored or redo the solution from scratch.
Honesty. Lack of honesty by technical architects/practitioners. Technical architects are in charge of delivering the solution. They are supposed be the masters of the trade and shoulder the responsibility of software solution implementation. They are honest about the need for software infrastructure but not honest about the lack of processes addressing the fundamental principles of software solutions.
Absence. Lack of Interaction designers. Missing! We are missing interaction designers. Designers are no more than UI developers or business users. The User interface design is reduced to a choice of the existing set of patterns. Pick a pattern which suits your needs and off you go. Start building. There is total absence of understanding of users needs, behavior patterns, principles of interactions like discover-ability, forgiveness, recoverability etc. are not even considered. In te end, our solutions lack the ease of use.
Good Design. Good design is mostly limited few building, paintings and statues. Software and design are talked about but not implemented. Design in software is evident in the User interface. But, its fundamental implementation is in the middle ware and backend. Is the application loosely coupled to replace the backend solution and still not break the software? Is the application configurable to adapt to change in requirements? Many of these questions are considered hypothetical, but if we can answer them at the start of implementation then we are taking a step towards a good design.
Time is ticking and we are addressing the lack in our thought process by upgrading to latest software versions. Time to take a deeper look into design in a honest and unbiased manner. Address the principles of the software and user interaction in a rigorous manner. May be time for an International Software change Meet 🙂
The opinions expressed in this blog purely personal.