Agile project management
Agile is an iterative and incremental approach to project management that helps teams deliver value to their customers faster.
Agile software development projects focus on continuous releases and incorporating customer feedback with every iteration.
Agile is a mindset described by 4 values and defined by 12 principles.
Agile is lightweight, that can be implemented where fast delivery is required with no documentation. The code in itself acts as documentation.
A requirement is segmented in to smaller pieces which are then prioritized by importance. It integrates planning with execution which allows a team to effectively respond to changing requirements.
The agile manifesto is a document that identifies 4 key values and 12 principles that its authors believe software developers should use to guide their work.
Through this work we have come to values:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Principles behind the agile manifesto are
- Satisfy the customer is the highest priority and that can be achieved through early and continuous delivery of valuable software.
- Welcome changing requirements, even in later stages of development. Agile processes disruptive change for the customer’s competitive advantage in industry.
- A working software is delivered frequently, within defined timelines.
- Stakeholders and developers must work together on a daily basis throughout the project.
- Build projects with the motivated stakeholders and team members. Give them the environment with all the necessary tools and support they need and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- A final Working software is the key measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant and ongoing pace indefinitely.
- Continuous focus on technical excellence and good design enhances agility.
- Simplicity –is essential.
- Self-organizing teams emerges the best architectures, requirements, and designs.
- Regular intervals are used by the teams to reflects on how to become more effective, then adjusts its behaviour accordingly.
Scrum is a framework for agile project management that use fixed length iterations of work called sprints. There are four ceremonies in scrum that bring together to complete each sprint.
It all starts with the backlog or part of work that need to be done.
In scrum there are two backlogs
One is product backlog which is prioritized list of features,
And other is sprint backlog which is filled by taking issues from the top of product backlog until the capacity for the next sprint is reached.
The four ceremonies of scrum are
Sprint Planning – this happens at the beginning of each sprint & team decided on what they will be delivering in the sprint.
Daily scrum meeting – This happens each day where team will just answer three questions: 1) What did u do today? 2) what will u do tomorrow? 3) Are there any impediments that is slowing or stopping u?
Sprint review meeting – this happens at the end of sprint where team will demo the completed stories and get them cleared.
Sprint Retrospective meeting- This happens at the end of the sprint where team will answer these three questions: 1) What went well in the sprint? 2) what did not go well? 3) What are the required areas of improvements in next sprint?
The Advantages of agile project management
- increased flexibility
- Faster feedback cycles
- Identifies problem at early stages
- Customer satisfaction
- Dedicated team drive better productivity over time
- Value focused delivery
Disadvantages of Agile
- Continuous deployment has many technical dependencies
- Higher engineering cost to establish.