Monday, October 12, 2020

Combining Scrum and Design Thinking principles for better User Experience and creating a Minimal Marketable Product

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
6. Roman Pichler, “The Minimum Viable Product and the Minimal Marketable Product”, Available: https://dzone.com/articles/minimum-viable-product-and, Last Accessed: 13th September 2020
 
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.

Friday, February 14, 2020


ACTIVATING ENTERPRISE PROCESSES WITH HUMAN - AI TEAM

Alpana Dubey


We have seen great advancements in the adoption of AI system in the last couple of decades. Improvements in AI technology has changed our perception about what can be achieved by computing machinery. Even though AI has been largely impacting the way we work, one of the common relationships between human and AI system, that has been leveraged till date, is using AI system as a “tool” to perform certain task not much as a “partner” to work together to solve a common goal by augmenting each other.   This view has largely influenced AI research to push towards achieving highest level of automation through AI system by enhancing AI systems with more data, better algorithms, and better computing power. These efforts have brought forth several new approaches and better systems. However, one important aspect that has not been well leveraged in this journey is the critical role human could play to boost the performance of Human-AI system even with the current set of technologies [2, 3].

A symbiosis between Human and AI systems can result in much efficient and effective system than the human or the AI alone. One of the common reasons for this is that human and AI bring unique and complementary strengths. This phenomenon has been also expressed in the detail explanation of Moravec’s paradox [4, 5]. For instance, Human are good at reasoning with smaller number of observations, but AI system needs a large amount of data to provide the same level of reasoning. Human cannot process large amount of data at speed for interpretation whereas AI system are good at generating interpretation from large data. Humans exhibit conformation bias while interpreting data whereas AI system can be designed to be un-biased by appropriate un-biasing algorithms. Humans are good at dealing with novel unfamiliar and dynamically changing situations whereas AI system are not good at handling new situations or adopting to a new situation. Humans are good at setting goals and hypothesis. AI systems are good at executing the goals once the rules of goal planning are established. A set of interesting examples of human and AI complementing each other can be seen in the Hollywood movie Upgrade released in 2018 where humans are transplanted with AI chips to complement their strength.

Considering the orthogonal strengths human and AI brings, this is high time to view and model business processes as Human-AI team. Paul et al. in their book “Human+Machine: Reimagining Work in the Age of AI” [1] have touched upon various relationships between Human and AI and how they can be leveraged by the organizations for AI based transformation. In this article, we discuss the design principles that one must take in account while designing a Human-AI teaming application.



Example of Human-AI Team in Business Process

We draw a small example from service industry as shown in above Figure 1 to understand a Human-AI team. Consider a service engineer troubleshooting a machine. We can imagine several AI systems augmenting the service engineer while (s)he is troubleshooting the machine. For instance, an AI system, namely “Knowledge retrieval Assistant” which is based on information retrieval and natural language processing (NLP) can retrieve the troubleshooting instructions and related help documentation about the machine. As these documents may be huge and large in number, fetching the relevant sections from the documents is going to be very time consuming for the service engineer whereas computer algorithms can do this at much faster rate. At the same time how to use all the information together to really fix the machine is something where service engineer could apply his creativity. There may be some situations where the service engineer may not be able to fix the machine with current set of instructions. Here, another system, namely “Expert Assistant”, helps in finding the experts who can provide support to the service engineer while he is troubleshooting and fixing the machine. Here, we see that two AI assistant are amplifying the service engineer capabilities by providing relevant details and connecting with experts and human is finally solving the issue.


Properties of Effective Teaming
Imagine that the AI assistants in the previous examples are not only acting as mere tools; but they are intelligent entities which have visibility of what actions other AI assistants are performing, what actions the service engineer has taken, the type of machine (s)he is fixing, what (s)he is trying to fix, what kind of fixes (s)he has made in the past, and what are his/her observations from the machine. In addition, consider the assistants also understand the intention of the service engineer and status of the machine. All this information would make AI assistants smarter and intelligent because with this information they can proactively support the engineer based on the current context and the goal. This kind of teaming intelligence is of utmost importance for effective Human-AI teaming where individual entities are “context aware”, “goal aware”, “self-aware”, and “proactive”. In addition, for effective teaming, interactions among the entities need to be fluid either with a proper communication language and or with appropriate GUIs. We have developed a taxonomy of Human-AI teaming concepts by combining concepts available in literature as shown in Figure 2.  The taxonomy is broadly developed around 4 key dimensions and 15 sub-dimensions. While designing Human-AI teaming application, one needs to consider these dimensions and assess whether the essential characteristics are met in the design.



Steps to realize Human-AI Team in Business Process
Successfully realizing Human-AI team in a business process requires a thorough analysis of the process. The key steps that one needs to pursue are Analyze, Model and Develop / Deploy as shown in the side bar.
Once these steps are executed, one need to use his/her favorite implementation platform. However, the current platforms do not support all the design elements that we have discussed so far. These concepts have been discussed at an abstract level in the literature and lack a proper guidance on how these can be realized concretely.

HACO Platform
Through our research efforts at Accenture Labs, we are advancing approaches for software application development to transform enterprise processes with more teaming intelligence.  Our platform namely Human AI Collaboration Platform (HACO) helps in realizing the essential properties a Human-AI teaming application must have. The key features and the workflow involved in the implementing Human-AI teaming application is shown in Figure 3. A short video about the platform can be access at https://youtu.be/lNyrrk8dMqU

A research paper, based on this work, will be published in the proceedings of 13th Innovations in Software Engineering Conference ISEC 2020, to be held on Feb 27th – 29th, 2020. 




References:
[1] Human + Machine: Reimagining Work in the Age of AI. Paul R. Daugherty, H. James Wilson.
[2] https://beta.techcrunch.com/2016/04/12/the-era-of-ai-human-hybrid-intelligence/?_ga=2.184699881.13417694.1526480637-1368337914.1526480637
[3] https://techcrunch.com/2016/11/01/how-combined-human-and-computer-intelligence-will-redefine-jobs/
[4] Minsky, Marvin (1986), The Society of Mind, Simon and Schuster, p. 29
[5] Hans Moravec, Mind Children: The Future of Robot and Human Intelligence, p. 15.
[6] HACO: A Framework for Developing Human-AI Teaming. Accepted at 13th Innovations in Software Engineering Conference (ISEC 2020)

About the Author
Alpana is a senior researcher at Accenture Labs, Bangalore. She leads Digital Experiences R&D group at Bangalore. Alpana has close to 14 years of experience working in industrial research labs. During her research career, she started new research areas and drove company-wide adoption of software engineering best practices. She has several patents, has published over two dozen research papers in scientific journals, and peer reviewed technical conferences of repute in the area of software engineering, crowdsourcing, static analysis, reverse engineering, and pattern mining. Before joining Accenture, she worked with research labs of ABB, Siemens, and Philips. She is a senior member of IEEE and received her PhD in Computer Science and Engineering from IIT Kanpur (India) in 2006.

Friday, January 31, 2020

Innovations in Software Engineering (ISEC) 2020 Update



Innovations in Software Engineering Conference, ISEC (Formerly known as India Software Engineering Conference) is the annual conference of iSOFT, the India chapter of ACM SIGSOFT (http://isoft.acm.org/) under the umbrella of ACM India. The 13th edition of the conference will be held at Indian Institute of Information Technology, Design and Manufacturing Jabalpur, India. ISEC will bring together researchers and practitioners from across the world to share the results of their work. 

The goal of the conference is to provide a forum for researchers and practitioners from both academia and industry to meet and share cutting-edge advancements in the field of software engineering.

The conference will have Research Track, Tutorials, Workshops, PhD symposium, Startups demos and Tech briefings among others. Key notes shall be delivered by Prof. Massimilliano Di Penta, Department of Engineering, University of Sannio, Italy on Understanding and improving continuous integration and delivery practice using data from the wild and Dr. Sriram Rajamani, Microsoft Research, India on Formal System Design and Verification: A perspective. A total of 10 Regular papers and 6 short papers shall be presented as part of the conference research track. In addition, authors whose papers have been accepted in ESEC/FSE are expected to present their work as part of invited talks.


The following workshops shall be held on 27th February
  • Workshop on Software engineering for an uncertain world
  • Workshop on Emerging Software Engineering Education (WESEE)
  • Workshop on Software Engineering for Artificial Intelligence

The following tutorials shall be held on 27th February
  • Desiderata for testing AI systems
  • Application of Deep Learning in Software Engineering Tasks
  • Software Development with IoT


For more details about the conference and registration, please visit


Wednesday, July 17, 2019

ACM India announces new Blog on Software Engineering

We are happy to announce the start of a series of blogs in Software Engineering. These can be accessed and subscribed to at https://acm-se-blog.blogspot.com
The objective of these blogs is to provide a platform for researchers and practitioner from both academia and industry in Software Engineering to share ideas, opinions, cutting edge advancements leading to better networking, and attracting fresh researchers. 

Everyone is invited to contribute with a blog post by filling out the ACM India SE Blog Post Form
It may take about 7-10 days for the blog to appear as it is moderated by a steering committee consisting of the following members: 
  • Dr. Atul Kumar, IBM 
  • Dr. Alpana Dubey, Accenture Labs 
  • Dr. Srinivas Padmanabhuni, CitiMandi and Past President, ACM India
  • Dr. Ravindra Naik - TCS Research
  • Dr. Santonu Sarkar, BITS Pilini, Goa 
  • Dr. Y. Raghu Reddy, IIIT Hyderabad (Chair, Steering Committee and IIIT Hyderabad)

Some guidelines for blog posts are:
  • Each post can present either the author's own work or another researcher's work in simple terms
  • Each post should include technical views of the author about the work 
  • No Criticisms and No plagiarism

Looking forward to interesting interactions.

Regards,
Y. Raghu Reddy
IIIT Hyderabad