Agile Software Development is designed to make writing quality software easier, faster and less expensive. One of the key aspects of Agile Software Development is understanding the needs of both the client and the end user. The initial part of the process employs a “discovery session” to bring the right people to the table to understand the problem that the new software will address, and create a solution that meets that goal.
Discovery Session Basics:
In a discovery session, the client and the consulting team collaborate to assure that everyone involved in the project understands the end goals of a project, and prepares to craft a product that meets those goals.
A discovery session allows the development team and the client to fully understand the objectives and scope of the software development project. It is an effective way to assure that the team members are working towards a common goal and arrive at a solution that addresses the problem your software is intended to solve.
Not all discovery sessions will look the same, but they will have common elements that make them effective. A discovery session can be as short as a single day or as long as a week. Longer sessions will be necessary for in-depth conversations about complex issues, while shorter sessions are appropriate for less-involved projects.
When preparing for your discovery session, all the parties should conduct individual research so that they come to the session with an understanding of the issues to be addressed. The people invited should be essential to the project so that the time dedicated to the discovery session is well spent.
An agenda for an effective discovery session includes the following elements:
- Determine Desired Outcomes. The client explains the goals of the project, including the issues that is to be addressed and the desired outcome. The client presents additional information that will be useful in determining the scope of the project.
- Identify the End Users of the Product. The Agile Development method relies on user stories. At the end of the discovery session, the team will be in agreement about who the users are and that they want.
- Create User Profiles. The team collaborates to identify common traits and formulate realistic fictional users with credible backstories. The team then determines what those users need from the software.
- Create User Journeys and Identify Potential ‘Pain Points’. During the discovery session, the team thinks through how each of the fictional users finds and uses the software. An important aspect of this process is determining where a potential user might have difficulties. The team will generate ideas about how to address those ‘pain points’, and determine how the end product will make the lives of the generic users easier or more productive.
- Refine Objectives Using the Journeys. And the end of the discovery session, the team will have an understanding of how the project will impact a diverse group of users.
A successful discovery session will generate a list of features that the project will address (Project Backlog), and the team will have agreed on the priorities of the project as well as the release sequence.
The first release will be a Minimum Viable Product, and must include just enough features to satisfy early adopters who will provide feedback for future product development. That will be addressed in a future article.
Why Is a Discovery Session Critical to Success?
Without a complete understanding of the objectives, the consulting team runs the risk of producing work that is not ideal for the client. A discovery session allows everyone to work towards a common goal. Even when working on a smaller project or a tight deadline, it is important to not skip this part of the process. If the client has to request multiple revisions, the project can suffer from missed deadlines and cost overruns. A discovery session puts everyone on the same page from the outset of the project.
Basic Requirements for a Successful Discovery Session
- Key Players Must Be Involved. From the consultant side, developers, designers and a facilitator should be included in the discovery session. The client should invite all stakeholders and relevant decision makers from the business process that is the focus of the project. Directors and senior leaders also provide valuable support for the session if they are available to attend.
- Define the Agenda in Advance. A successful discovery session will have a clearly-defined agenda that is followed.
- Consultants Should Understand the Client’s Business in Advance. This is achieved through basic research about the client’s company and market.
- Determine the Outcome of the Session in Advance. This includes specific goals for the client, and deliverables for the consultant.
- Have Empathy and Trust. All ideas and views should be heard, even if you disagree with them.
- Stay Focused. Concentrate on challenges and solutions, not individual personalities.
- Research is Essential. Both the client and the consultant must do their homework prior to the session to maximize the return on investment.
- Consultants must understand their client’s business needs, current products and solutions, and technology stack.
- Clients need to be able to clearly define their goals, why changes must be implemented, and why the timing is right for the introduction of the new software.
Discovery sessions are one of the most important parts of any Agile software development project. Renova IT Solutions builds world-class web and mobile applications utilizing Agile processes for maximum efficiency and software quality.