A lot of research has been done on Agile methodologies for software development and a lot of organizations now use such processes to develop software products today. The world has seen long leaps on the adoption of Design Thinking as well to best understand the real requirements of an end-user and is now the backbone for enhancing User Experience in recent times. And not just for software, the importance of Design Thinking has a say in any sort of problem statement. Let’s look at an example:
Making the Elevator Faster
A couple of decades back, a common problem with multi-storied buildings and apartments had made its way to the authorities that the installed elevators are extremely slow and need to be faster. Vendors were called and asked to address the issue, but instead of diving in to find a solution they employed a unique approach. They started with Customer research and collected feedback from the residents who were using those lifts. Months later, based on the suggestions received, the vendor made changes to the elevators to address the concern. The second round of customer research showed that the end-users are really happy, and people have agreed that the lifts were now much faster. Now, while we ponder over the solution, and start guessing the changes that the vendors made, let’s understand the importance of customer research first.
Customer research is the process of collecting data from the end-users or user groups, using a prepared list of questions that gives detailed insights on the pain points that they are facing. It helps us better understand the user at the final thread of the customer chain. Software Development has latched on the same principles of Usability Engineering to better understand the customer and follow the various dimensions of 5E’s (Effective, Efficient, Engaging, Error Tolerant, and Easy to Learn) to develop applications. Design Thinking tends to add more focus on the customer and asks the developer to show
further empathy to the end-user. So, what do we understand by Design Thinking?
Design Thinking is the process of understanding the end-user or customer by stepping on their shoes and viewing the problems from their perspective. It helps empathize with the customer and helps better understand the problem that they are facing. There are 5-stages of Design Thinking:
1. Empathize
2. Define
3. Ideate
4. Prototype
5. Test
These steps help the developer of the user research professional to correctly identify the problem statement. When the requirements are not clear, this also helps in clearly presenting the Development team with the story that the product team is trying to understand. Ever heard of the Cynefin’s framework?
Cynefin Framework best highlights the need of various software development methodologies involved. Although traditional, a waterfall model is also equally important if the requirements are simple and known from the word go the development team. For a complicated to a complex problem statement, we might require multiple iterations of working software to arrive at a point where the software requirements slowly get clearer with time.
But for scenarios which are chaotic, and nothing is known, the solution is still expected, and the requirements are still needed to be extracted. Design Thinking helps in coming to a position that is complex but good enough to be iterated further to understand the requirements.
The above diagram with the 4-quadrants with the different cases mentioned above constitutes the Cynefin Framework. Considering that the customer requirements are getting complex with time, it is very important to best understand the customer requirements clearly and move from a chaotic state to a complex one using Design Thinking and further simplify the same using Agile principles.
So, let’s go back to the Elevator scenario use-case! What was that the customer really needed the lifts to be? Faster or something else? And, what was the solution that the vendor provides that the users agreed that the lifts were faster than before? Well, the answer was MIRRORS! The vendors observed that the users were either bored and had nothing to do or were terrified by the feeling of being trapped inside a metal box. The solution was to make them comfortable and to allow them to look at themselves or probably make themselves further presentable. In this way, instead of coming with new mechanics or possibilities of making the lift faster, the vendors managed with simple installations of mirrors. This just reflects what Henry Ford once said, “If I had asked people what they wanted, they would have said faster horses.”
So, how do we further bring in Agile concepts to enhance User Experience? We take the example of a particular Agile Methodology here, Scrum! Considering the primary ceremonies of a scrum, we focus on the Refinement of Backlogs, Planning, Daily Scrum, Review, and Retrospect. The ultimate goal is to come up with working software at the end of an iteration, called sprint, to better showcase the achieved requirement to all its stakeholders and get their perspective on them. Although the processes are broken down in chunks, the understanding of requirements from a user perspective for each story point remains to be missing. Refinement of a task can be cumbersome but best achieved if the entire team is participating in the activity as per scrum principles. It is often observed that the user perspective is blinded as the implementation team is not aware of the pain-points of the real end-user. The need here is to empathize further while backlogs are refined from the perspective of Design Thinking. While we plan, we define the tasks keeping in mind the actual needs of the end-user as a result. The ideation and prototyping with a sense of accepting what is achieved and discussing further on the open stories delve further into creating a working software that is closer to what the customer needs. The result here is a prototype that is much closer to what the customer was expecting or something that addresses the pain-point of the end-user.
We finally get a working software that can be shown to a customer and because the end-user was considered with the principles of Design Thinking, the User Experience has been better focused than what is normally seen. The first iteration may not give what the customer expected but within a few iterations, it will be observed that the working model satisfies the customer needs. The adoption of Design Thinking principles in each phase of Agile helps achieve the goals with a lesser number of sprints. And within a few iterations or sprints, a working model is developed that is very close to what the end-user is looking for. Each iteration produced a working software that can easily be considered to a Minimal Viable Product (MVPs) and a combination of a few such MVPs gives us the first Minimal Marketable Product, which the customer completely agrees with. It is a solution with the least possible features that solve the end-user’s basic needs and is ready for launch.
References
1. Roman Pichler, “Agile Product Management with Scrum”, First impression, 2012, Pearson Education Inc.
2. A. Mundra, S. Misra, and C. A. Dhawale, "Practical Scrum-Scrum Team: Way to Produce Successful and Quality Software" 2013 13th International Conference on Computational Science and Its Applications, Ho Chi Minh City, 2013, pp. 119-123, DOI: 10.1109/ICCSA.2013.25.
3. V. T. Faniran, A. Badru, and N. Ajayi, "Adopting Scrum as an Agile approach in distributed software development: A review of literature" 2017 1st International Conference on Next Generation Computing Applications (NextComp), Mauritius, 2017, pp. 36-40, DOI: 10.1109/NEXTCOMP.2017.8016173.
4. P. M. Ching and J. E. Mutuc, "Modeling the Dynamics of an Agile Scrum Team in the Development of a Single Software Project," 2018 IEEE International Conference on Industrial Engineering and Engineering Management (IEEM), Bangkok, 2018, pp. 386-390, DOI: 10.1109/IEEM.2018.8607430.
5. Suman De, Vinod Vijayakumaran, “A Brief Study on Enhancing Quality of Enterprise Applications using Design Thinking”, International Journal of Education and Management Engineering, 2019, 5, 26-38, DOI: 10.5815/ijeme.2019.05.04
About the Author
Suman De is working as a Development Specialist at SAP Labs India Pvt. Ltd., which is a Research and Development wing of SAP. He has completed his MTech. in Software Engineering from BITS Pilani and contributes as a mentor for the current batch of students. He currently has 7 published works, including publications in IEEE and Springer conferences, and is a reviewer for multiple International Journals. He also has contributed on a book of, “Cyber Defence Mechanisms”, and is an active member of the research community of SAP Labs India. Suman is a facilitator for Research programs in his organization and has been recognized as a Thought Leader for his contributions to external conferences.
Suman is also currently leading a team of technology enthusiasts at SAP Startup Studio for streamlined development of products by early-stage startups in collaboration with SAP and also supports the Cloud Curriculum Trainers community as a Coach for Scrum/Agile methodologies.