Table of contents
Working as a Project Manager in a"waterfall methodology" on multiple projects, there were always some common questions or conflicts with different stakeholders:
- Is there a way I can ensure that we are developing the right product and ensure that business perspective is being taken care of?
- There are so many change requests coming towards the later stages of development cycle, can I work with the stakeholders to reduce them and make it win-win for all?
- How can I make the overall process more inclusive and collaborative?
- How can I help business and manage the schedule such that Time-To-Market (TTM) of the product is in line with the market demands?
I found the answer to all the above questions in the agile methodology.
Let's talk about it in more detail.
What does "being agile" mean?
In simple terms it means quick and responsive.
Agile projects in a nutshell caters to all the previous raised questions:
- Stiff competition: Ensuring the business is ahead of its competitors.
- Changing priorities: Ability to manage the change requests quickly.
- Delivering more for less: Working with business to deliver high value and less time-consuming requirements.
- Continuous feedback: Reviewing and monitoring progress on a regular basis.
To better understand the methodology, it is important to explore its core principles:
- Customer collaboration: Agile requires a customer to be engaged and collaborate throughout the development process, thereby ensuring the right product.
- Working software: Though agile values documentation, it puts more emphasis on working software. It documents requirements as user stories, which are sufficient for a software developer to begin the task of building a new function.
- Individuals and interactions: Agile values people more highly than processes or tools as an efficient, happy and focused agile team makes a project successful.
- Responding to change: The iterative process of agile allows priorities to be shifted from iteration to iteration and new features can be added into the next iteration.
Benefits of agile approach
Agile method can accelerate your business success. Here are some of the numerous advantages that organizations gain by embracing agile methodology:
- Revenue: Iterative nature of agile development means features, and requirements can be delivered incrementally, ensuring benefits can be realized as soon as the first version is delivered.
- Speed-to-market: As per the research majority of the market leaders were first to market. Agile process supports regular roll outs to various environments ensuring quick time to market.
- Quality: Testing of the product is closely integrated with every sprint; it ensures quality checks as the product evolves. Issues are reported at an early stage which is less costly as well.
- Visibility: Since agile follows collaborative approach, it provides various stakeholders a visibility to not only project progress but of the evolving product itself, which helps to ensure that expectations are effectively managed and as well as take any refinement steps.
- Risk management: Since the product increments are available to the product owner and product team with each sprint, the agile process helps to ensure that risks can be identified, and mitigations steps can be taken at the right time.
- Flexibility / Agility: No writing a big spec up-front and then telling business owners how expensive it is to change anything. In agile development, requirement change is acceptable and expected. Feedback can be taken from various stakeholders and even end users and can be efficiently managed in the next sprints. Since the stakeholders are actively involved who understands this concept, therefore it becomes easy to make the necessary trade-off decisions, revising existing scope for new.
- Right product: Agile lets requirements emerge and evolve, and the ability to embrace change, ensuring the product is developed “right” in one go.
- More enjoyable: Active collaboration of all the stakeholders makes agile development experience much more enjoyable. Instead of big specifications, requirements are discussed in workshops which can be real fun.
- Business engagement/Customer satisfaction: All the benefits mentioned above ensure much better business engagement and high customer satisfaction.
Key roles in agile methodology
Understanding the roles is crucial to navigate the agile methodology landscape. Let's explore the vital roles that form the backbone of any successful agile implementation. From product owners driving vision to scrum masters facilitating seamless collaboration, all of the following roles are important to deliver great results.
- Defines the features of the product.
- Sets development schedule by prioritizing product backlog.
- Adjusts features and priorities every sprint.
- Eliminates confusion of different opinions of stakeholders.
- Accepts or rejects work results.
- In most cases, business analysts work with product owners to detail the requirements.
- Responsible for the success of the scrum process.
- For establishing scrum practices and rules, shielding the team and removing obstacles.
- Ensure the team is fully functional and productive.
- Enable close cooperation across all roles and functions.
- Ensure agile process is followed, including effective daily scrum meetings, sprint reviews and planning meetings.
- Self-organizing, cross-functional.
- Recommended team size - seven plus or minus two.
- Plenty of face-to-face communication.
- Responsible for organizing tasks and committing to work.
- Authority to do whatever is needed to meet commitment.
- Demos work results to the product owner and stakeholders.
- Scrum master needs to encourage all the team members to speak up to ensure a well-formed team.
The agile process (steps)
Let's now discover the fundamental steps of agile process and how they empower teams to adapt, innovate, and consistently deliver value in their projects.
The agile process follows the following steps in a sprint cycle:
- Sprint planning
- Daily scrum meeting
- Sprint review
#1 Sprint planning
- Scrum master facilitates the meeting.
- Product owner (could be a business analyst) discusses, in detail, the requirements planned for the planned sprint with the entire scrum team.
- Scrum team to agree on the scope and help in finalizing the sprint goal.
- Estimation ways can be defined by the scrum team.
- Sprint grooming can be planned additionally to discuss the requirements.
#2 Daily scrum meeting
- Stand up meeting of the team. Ideally, it should not go beyond 15 minutes.
- Each team member shares details on what was done yesterday, plan for today and blocking issues if any.
#3 Sprint review
- Demo to various stakeholders on everything that was done.
- The primary purpose is to validate the direction of the product and acknowledge achievements.
- The feedback shared in the review shall be prioritized by the product owner in subsequent sprints.
- Short, structured workshop for teams to look at lessons learnt and actions for the future – max 1 hour.
- Longer retrospectives could be planned at the end of a release.
- These retrospectives ideally should be kept anonymous so as to encourage team members to share their views.
Artifacts bring structure and transparency to the agile methodology. Artifacts empower teams with valuable insights to optimize collaboration and drive project success.
These are the main 3 ones:
- Contains the list of all the requirements identified.
- Prioritized by the Product Owner, based on discussions with business and other stakeholders.
- Contains the list of Epics, user stories, technical spikes.
- Contains the user stories, selected from the product backlog, that needs to be planned in a sprint.
- Task effort is estimated by the team during the sprint planning.
Burn down chart
- Graph to track the sprint progress – ideal vs actual.
- Depicts estimated effort remaining.
Agile delivery challenges
Though agile stresses on the people over processes, but over a period it could be stressful for some team members as there are individual deliverable every day. Some effort could be planned for team-building activities to reduce stress and ensure everyone is in good headspace.
Easy to misinterpret the methodology
Teams can mistake agile for faster deliveries rather than focusing on quality. Additional effort could be spent on the accumulated technical debt to ensure better code quality.
Though agile stresses self–motivated and self-organizing teams, it may not be the right scenario in every project. Scrum master and senior team members role becomes important to carry the team forward.
Best practices and "the Datavid method"
The beauty of agile is that it allows flexibility in defining the processes as per the project requirements.
Datavid, being a service provider, it is imperative that the agile processes are well understood and is flexible to cater to client and project's needs. I have been part of multiple projects for multiple clients, and agile processes have varied as per the project discussions.
In one project, I planned the development team to be 1 sprint ahead of QA team whereas in another, both Dev and QA teams were working in parallel. Such decisions depend a lot on the maturity of the team members, deployment processes and client expectations.
Generally, at Datavid, we stress a lot on the Continuous Integration/ Continuous Deployment (CI/CD) such that Agile can be implemented in a true sense.
As mentioned earlier, agile stresses a lot on the interactions, so it's important to ensure that all team members are sharing their views without any hesitation.
At Datavid, we have a lot of young talent, we encourage Datavid people to speak up, take up organizational skill-based trainings so that while interacting with customers in agile team they can put forward their ideas confidently.
Frequently asked questions
Agile methodology is a flexible and iterative approach to project management and software development, emphasizing incremental progress and customer collaboration.
To improve adaptability, collaboration, and efficiency in project management by delivering incremental value, responding to change, and fostering continuous improvement.
Agile methodology can be implemented in a project by organizing work into sprints, conducting regular meetings, using a prioritized backlog, and fostering continuous communication and collaboration among team members.