What is Product Management with Lean, Agile and Design Thinking?


         Design thinking is the process to understand and solutions to your user's issues. The representative from every discipline needs to be involved in the design thinking exercise.  The design thinking can describe as a technique to bring business and technology partners together, create the solutions for real user needs and test whether solutions will generate business benefit before you invest time in coding. It ensures that all different perspectives are covered and that everyone is on the same page.
      There are three mindsets of product development, and design thinking is how we explore and solve the problem. Lean is the framework to test the beliefs and learn to the right outcomes. Agile is how we adapt to the changing conditions with the software.



       Design thinking is the customer-focused process. It helps you to identify and fix real customer pain points. It also helps the measurable understanding of which your ideas are likely to be successful with your customers. If you are running lean or agile style project method, you'll be going through build, test, learn iterations. Design thinking starts on these iterations faster and helps you prioritize the order in which to build things so that you can get early benefit and feedback on your ideas. With design thinking processes, you get multiple opportunities to check-in with potential customers and make necessary course corrections.

Design Thinking Process: Good design thinking involves all the stakeholders responsible for building the product. It is the systematic steps that show the team how the user data translated into a usable and a valuable interfaces. The design thinking cycle includes a validation phase where you build the design concepts and test with your customers. It also helps you plan, and prioritise the implementation details so that to move straight into the development process. Here are the steps in the design thinking process,

 1. Finding the Real Problem: It starts with in-person research to find out where your customer's issue lie. They can show you the problems they have. Recognizing and solving these problems likely delightful for the customer which translates into business value.  Watching your customer performing their real tasks, then talking to them about the experiences gives you insights into what is going on, but not why. Once you have the insights from your customer observation, you can turn them into prioritize list of goals for what your new product should achieve. Setting the measurable goals helps you ensure that you are really delivering the business benefit.

 2. Ideation: Ideation takes many forms, and it involves all the different disciplines on your team. Getting insights from the whole team based on the idea will lead to more creative solutions. The creative part is something the value of the agency. The most logical, practical, grounded individuals create wonderful design ideas.


 3. Prototyping: Paper prototype creation and usability testing are fast, cheap, and easy ways to see whether we covered all angles. If the prototype created in a day, then the usability test with consumers done on the next day to see how well it works with them. It is necessary to understand the concept and changes need to make before the product is ready for development. The paper prototype usability testing is only the first of many customer check-ins and other metrics gathering activities aimed to stay on-track during the development process. To figure out what type of prototype you need to create, try to answer these questions in the four categories,
    * Generate New Ideas

    * Convey Complex Interactions

    * Document Design Intent

    * Learn how users react to your Ideas

 4. Implementing: It is the process after you have been through this build, test, learn-cycle with the paper prototype to create high-level planning for building the product. The plan you create should be incremental. It's a setup to deliver the business benefit early in the process and add functionality piece by piece releasing after each new addition. This lets you test the product at multiple points to meet your goals and are delivering something that people will use. The research and marketing team can say which items are likely to appeal to the customers' and encourage them to use the product. Designers create a template and design field for the product with the good understanding of what items needed later, so things fit together go well.

      In Design-thinking process, you have got early customer-centric design input and prototype feedback so you can be more confident that your solutions will be accepted. The frequent deliverable and opportunities measure progress against your initial goals that allow you to course correction through the development and implementation process. Lean is a business process to test new ideas quickly and get the business benefits faster by using the feedback from those tests to decide what element of the product to work next. Agile is the technical process used to build new ideas quickly and test those ideas, using the things you learn from the tests drive the next iteration.


Agile Development Practices: In agile development, everyone needs to work together. It is not only the designer and developer, and it includes clients, stakeholders, and tester. Communication is the king. From the developer and designer needs to open up a channel of direct communication as early as possible and that lasts throughout the project.

Planning Phase: In this phase, choose the technical and managerial toolsets that include,

  * Project Management Software

  * Version Control

  * Third Party Libraries

For agile project tracking, start with simple tools like Airtable, Trello, Pivotal Tracker. These are basic kanban boards that you can create your user stories, backlog, and sprint on. If you want some powerful tool, you can jump into JIRA, Hansoft.
    By the design phase of an agile project, the technical team needs the good understanding of the product they are building. It is good idea to have the short document with project standards. This includes how to write version control commits, user stories, and anything needs to be standardized across the team.

Design Phase: The main advantage of the agile software development is to focus on iteration. So, the code base will be updated very frequently. The code needs to handle heavy iteration without architecture overhauls at every sprint. The project architecture goes as to keep things modular. It starts with a constant awareness of what is being built and how it is built. The goal is to deliver working software. So, it is not only to consider how you write the clean code but how you can make it as flexible as possible for later expansion.

Development Phase: In agile development, velocity is the measurement that is used to determine how much work an agile team can do over the period of time. It is also called as sprint velocity. Velocity depends on how your team decides to weigh user stories and tasks. Being that velocity is the measurement over time, the question at the beginning of the project is how to set the baseline. The rule of thumb to think of potential velocity as about 30% of your actual sprint time. Whether you hit the mark or not that will tell you a lot about how and other developers work and what needs to improve. Once you have the baseline velocity, each successive sprint can be planned more effectively.

   There are 2 programming methodologies that go well in agile development that Pair Programming and Test-Driven Development. In Pair Programming, two developers sit at one computer, one writing code, and other watching and offering advice, direction, and the possible improvements. The benefits of this method are many, first, the code is written by 2 peoples result in less error and more elegant coding solutions. It increases the level of competence and knowledge that every member of the agile team with practical software delivery with the credit for the code written is shared. The Test-Driven development is more time intensive programming practice and powerful. First, you write the failing test. This is a red phase. Next, you write the production code to pass that failing test. After your code passes from the green phase, that gets into the refactoring phase.


Testing:  One of the critical decision you'll have to make for your project is how to handle testing. In agile, the best way to test the software project is to use the test-driven development. Another method of testing is manual testing. This can be done by your client, stakeholders, dedicated quality assurance team or developer themselves. If you're manually testing, you need to have a dedicated tester or testing time set during each sprint. Here is the way to handle the bugs in test-driven and manual method,

       For instance, Sprint1 is finished and starting Sprint2 right away. Ideally, We have done the quality assurance test at the end of the Sprint1. There will always be the bugs that come after the test. In the middle of the Sprint 2 and a few bugs and change request come back in backlog. So, how to deal with these things. First, Keep the record of specific bugs are found in. Second, you have to address the bug as early as possible. The important thing is not letting them down in the production code for too long. Third, if you have got the bugs stacking up towards the end of a sprint, consider the next sprint focused on clearing them up and load up less on new development work. Treat them bugs and change request as backlog items that are same as development feature or user story.

Release: It is how we handle the integration code for multiple developers so that the code base doesn't fragment. As the problem suggests that, we need something that can handle the code integration and later deployment with multiple developers working concurrently.  So, the Continuous Integration(CI) is the solution.  The new commit is pushed to the project repository. It's tested against a defined test suite. If it passes, it's deployed into the testing platform or release to the public. While CI is concerned with integrating and validating your codebase, a release pipeline will focus effectively managing the different configurations.



Comments