Introduction to Agile Methodology in project management

           

     Introduction to Agile Methodology in project management

 





Waterfall (Traditional) VS Agile Methodology


Waterfall (Traditional) process

1.      Serialized Process: a previous phase has to be completed before starting new phase.

2.      Planning far in advance: product no longer match the reality by the time they are released.

3.      Lack of visibility: teams don’t realize they are way behind the schedule.

4.      Project timeline: planned at start. If one phase is delayed then all other phases also delayed.

5.      Static requirement: requirement can’t be changed once finalized.


Agile Methodology

1.     Serialized Process: iterative approach with tasks broken into small increments. Planning far in advance: plan for what we know and we left sufficient allowances in our plan for what we don’t know. Lack of visibility: clear visibility of each activity with better collaboration.  Project timeline: allow the development team to get feedback from the customer throughout to be on schedule. Static requirement: scope is never closed. Continual re-assessment of requirement priorities by the business.

 Agile Manifesto

·          Agile manifesto is a collection of 4 core values which applies to the agile methodology to create uniqueness of agile over the traditional process.

 1.       individuals and interaction over processes and tools

In the past, a lot of software teams would concentrate on having the best possible tools or processes with which to build their software. The Agile Manifesto suggests that while those things are important, the people behind the processes are even more so. That why agile team comprises of members who are very well organized and motivated in order to take up the task. Having the right group of individuals on your software team is vital to success. The best possible tools in the wrong hands are worthless. Perhaps even more important is how these individuals communicate with each other. The interactions between team members are what helps them to collaborate and solve any problems that arise.

 2.     Working software over comprehensive documentation

In Traditional way, software developers would spend lots of time in creating detailed documentation before they even started writing a single line of code. The Agile Manifesto places shipping software to your customers as one of the highest priorities. You can then gather feedback to help you improve future releases.

3.     Customer collaboration over contract negotiation

According to the Agile Manifesto, the focus should be on continuous development. You need to build a feedback loop with your customers so that you can constantly ensure that your product works for them.

4.     Responding to change over following a plan

Agile Manifesto suggests that a software team should have the ability to pivot and change direction whenever they need to, with a flexible roadmap that reflects that. A dynamic roadmap can change from quarter to quarter, sometimes even month to month, and agile teams are able to keep up with those changes.

 

Principles of agile

Above 4 core values are divided into details and we call them as 12 principles of agile.

  • 1.     Customer satisfaction through early and continuous working software delivery –

Customers are happier when they receive working software at regular intervals, rather than waiting extended periods of time between releases. In order to keep the customers happy, it’s important to continuously engage them with a working version of the product. Show small increments every sprint planning and make changes as required.

In the case of traditional management methodologies, customers get to see the product only after completion and when several tests and quality checks have been performed.

  • 2.     Welcome changing requirements throughout the development process –

Handling a huge and complex task would be both time and energy-consuming. So a better way is to divide the task into smaller parts that can be easily completed. Divide large chunks of work into smaller and achievable tasks for quicker completion and easier integration of changes.

  • 3.     Frequent delivery of working software –

Agile suggests that set a smaller time frame and delivers the working software frequently. This iterative process requires team members to continuously improve their performance.

  • 4.      Collaboration between the business stakeholders and developers throughout the project

All stakeholders must frequently collaborate to ensure that the project is going in the correct direction. The Agile principles encourage all stakeholders to remain involved in all stages of the project in order to ensure constant feedback and a valuable end product.

  • 5.     Support, trust, and motivate the people involved –

Create a supportive environment to motivate team members and encouraging them to get the job done. It is the responsibility of the project manager to create a motivating environment and support where members are not afraid to voice their opinions and give suggestions for the betterment of the team’s performance.

  • 6.     Prefer face-to-face communication over other methods

 In the Agile manifesto, a lot of importance is given to effective communication between the involved parties. For effective communication, methods like memos and email are not preferred and more importance is given to face-to-face communication. This is now easier because of the advances in communication technologies. All stakeholders can now have a meeting through video conferencing rather than coming to the office for a short meeting.

7.Working software is the primary measure of progress

The only factor to measure success is the delivery of a working product that satisfies the customer.

8. Try to maintain a constant pace (maintainable speed) of development

A repeatable, iterative, and maintainable speed pattern should be established at which they can deliver working software, and repeat it with each release. This prevents the team members from being overwhelmed and over-stressed, while the project keeps on progressing at an acceptable rate.

9. Maintain the quality of the product by paying attention to technical details

Providing value to the customer is the primary objective of any agile team. It’s extremely important to have a multi-skilled team that can handle all the technical aspects of the project and provides the opportunity for continuous improvement.

10. Maintain simplicity

Develop just enough to get the job done for right now. Too much planning and adding extra features to the product should be avoided during the development.

11. Self-organizing teams encourage great architectures, requirements, and designs –

A self-organized team with decision-making powers would simply perform better because the responsibility of satisfying the customers will on the team members, rather than a single project manager.

12. Regularly reflect on your performance for continuous improvement-

Agile methodologies stand on the concept of iteration, where teams learn from their past mistakes and continuously improve their performance. Project managers should promote sessions where the whole team reflects on their performance and discuss ways to improve their technical and management skills.

Agile Frameworks

  • ·         Scrum
  • ·         eXtreme Programming (XP)
  • ·         Dynamic Systems Development Method (DDSM)
  • ·         Feature Driven Development (FDD)
  • ·         Adaptive Software Development (ASD)
  • ·         The Crystal Method
  • ·         Lean Software Development (LSD)
  • ·         Disciplined Agile (DA)
  • ·         Scaled Agile Framework (SAFe)
  • ·         Rapid Application Development (RAD)

 


Scrum

Scrum is not a process or a technique for building products; rather, it is a framework of rules, roles, events, and artifacts used to implement agile projects. It is an iterative approach, this approach ensures that your team delivers a version of the product regularly. Scrum was designed using a software model that follows a set of roles, responsibilities, and meetings. It can be used for any complex project but works best when the result is a concrete product rather than a service. The Scrum framework consists of Scrum Teams and their associated roles, events, artifacts, and rules. Each component within the framework serves a specific purpose and is essential to Scrum’s success and usage.

Scrum roles

1.      Scrum master:   This person is a facilitator, responsible for arranging the daily meetings, improving team interactions, and maximizing productivity. The scrum master is accountable for ensuring that the process is effective and is always improving. Through teaching, coaching, facilitating and mentoring.

The scrum master might:

  • ·         Facilitate sprint planning, reviews, keeping them focused and ensuring that everyone can contribute.
  • ·         Ensure that the daily scrum happens and is useful to the development team.
  • ·         Work with the product owner as they develop a release strategy, track progress, manage stakeholders, and priorities the backlog.
  • ·         Understand the team dynamics and seek to guide them into productive ways of working, promoting whole-team thinking.
  • ·         Lead the team through problems, not by providing the solution but by helping them to identify all of the options before deciding themselves what to do.

  

2.      Product owner:   A product owner is a decision maker. He/she is responsible for representing the customer’s best interest. This person has the ultimate authority over the final product. A product owner is responsible for maximizing the value of what gets shipped and ensuring the delivered product meets customer needs. The product owner is responsible for the project’s success. They define work responsibilities and prioritize. They’re the face of the project, and they interact with everyone from the designers to stakeholders and even the customer. They also need to know what each person involved needs.

Product Owner responsibilities

  • ·         Create and maintain the product roadmap, plan sprints, and create action items along with the product manager.
  • ·         Define a product’s strategic vision and align new products to it.
  • ·         Collaborate with business owners to ensure that new products or updates meet requirements and priorities.
  • ·         Manage the discovery phase for new and existing products and services
  • ·         Plan and organize the deliverables of the agile processes.
  • ·         Measure and find new opportunities to improve workflows with every iteration.
  • ·         Write detailed stories and acceptance criteria based on product scope documents and epics in order for the engineering teams to develop software.
  • ·         Maintain and prioritize/reprioritize the product backlog through planning, grooming, and stakeholder review.
  • ·         Protect the scope of work in a sprint against incoming requests.
  • ·         Motivate the team through the whole product development process.
  • ·         Review working software with your team and internal/external stakeholders to make sure that each product change is understood, shared, and supported.
  • ·         Execute high-level product testing along with the QA team to guarantee the definition of done was achieved.

3.      Scrum team: The development team can contain all kinds of disciplines, including programmers, writers, testers, architects, designers, and more. Together, they are each responsible for their own work. The Team is set up considering all the essential skill set required to successfully develop, test & deliver the product increments every Sprint without the outside help. Thus, the team is expected to be self-sufficient and cross-functional. The product owner establishes the priority; then, the development team works together to get it done. This usually involves taking high-priority items from the backlog and working on them one task at a time.

 Scrum team responsibilities

Delivering work:  Split the workload into sprints. It’s the development team’s job to complete every task in a sprint.

Ensuring transparency: Good communication forms the foundation of a successful scrum team. When it comes to the development team, daily standups are the place to share thoughts, talk about issues, or ask for help.

   Users:  We have the users who have responsible for letting us know that what exactly you have to do. When we talk about business users, they always contribute from the point of a user perspective or from a market standard that but when we are creating a product, it's just not about meeting the expectations or the acceptance criteria. Sometimes it is also important to understand the issue for users. So users will let you know that if I have to work on this particular application, I would need this Particular feature to be there, or I would prefer to have this option somewhere here.

 Scrum ceremonies

1. Sprint Planning:  The sprint planning ceremony happens at the beginning of every new sprint and it helps the team prepare for the upcoming sprint. Everyone in the team decides what they need to complete in the sprint. The backlog items are prioritized and the team collectively discusses how long it will take to complete all the items in the list (called user stories). Detailed project milestones are outlined for each smaller goal and possibly, a mini-blueprint are created that’ll guide how each sprint is carried out.

Participants: Scrum Team, Scrum Master, Product Owner

Timeframe: Ideally, reserve an hour of planning for every week scheduled in a sprint, i.e. a 2-week sprint should require a 2-hour planning session.

 2. Daily Scrum: The daily scrum is simply a standup morning meeting where everyone on the team shares their progress and to-dos going forward. Team members share what they did in the previous day and their assigned goals for the day.

The scrum master do:

  • ·         Takes notes of the team’s progress.
  • ·         Takes notes of obstacles encountered by team members in order to tackle them,
  • ·         Adjusts strategy in case any unforeseen contingencies require it.

Participants: The scrum master and all team members.

Timeframe: A daily scrum can last from a few minutes to half an hour.

 3. Sprint Review: With the sprint completed, the next step in the Scrum methodology is reviewing the work completed in a sprint to ensure the targeted objectives were delivered. During the Sprint Review, the Scrum team shows what they accomplished during the sprint to get feedback from project stakeholders.

Participants:  Developers, Scrum Master, Product Owner, Project Stakeholders

Timeframe: A sprint review might take as much time as is necessary.

 4. Sprint Retrospective (looking again at the past):  The Sprint Retrospective is the final scrum ceremony in the sequence that allows the team to look back on the work that was just completed and identify items that could be improved. The scrum team needs to have the opportunity to reflect on the work that was just showcased and discuss ways in which to improve. It gives the scrum team a platform to discuss things that are going well, things that could go better, and some suggestions for changes.

Participants:  product owner, scrum master, team members, as well as relevant staff who had a role to play in the sprint’s completion.

Timeframe:  ideally 60 – 90 minutes to work through.