Agile is an adaptive approach to project management. Agile projects are characterized by a series of tasks that are conceived, executed and adapted as situation demands rather than a pre-planned process. Agile project management helps teams respond to unpredictability through incremental iterative work processes. The main driver behind this is to ensure that what we deliver aligns with the business need so that real benefits can be delivered early.

Agile Project Management is a series of iterations with constant feedback on each and easier to track the progress and foresee any issues before they arise. Traditionally, most software projects are managed using a waterfall method which is linear and delivers all of the project deliverables at one go and the end of the project. This can be a tedious and time-consuming approach because there is zero visibility for the client eventually the deliverables might not have been what the client wanted.

The workflow in Agile Project Management is more flexible and encourages constant improvement in sprints. Hence, the end product will be very close to what the client had wanted. In the agile approach, there are four key roles-

  1. Product Owner
    • Defines the features of the end product
  2. Scrum Master
    • Scrum master prioritises the features to be worked on for each sprint.
  3. Team Members
    • Team members create and develop the product throughout each iteration.
  4. User
    • Users use the product and provide feedback to the team.

The product owner comes up with a list of requirements the finished product should have. The scrum master compiled the list and prioritizes the requirements for the current sprint. The team then develops a workable version of the product based on the prioritised requirements. The work progress is further managed through the daily scrum meetings throughout the two-week sprint. Once there is a prototype the users then test the current iteration of the product and provide regular and timely feedback to the team.

Subsequently, the requirements of the final product would start to evolve and change according to the feedback from the users throughout the development process. Last but not the least, given the type of prototyping testing and feedback from the users, the product at the end of each sprint will get closer to what the customer wants and ensure a better end product and higher customer satisfaction through a combination of modern software engineering practices open and honest planning. Agile practitioners accept and embrace change even late in the delivery process.

What are the Fundamentals of Agile Project Management?

Improving Team Performance:

There are a lot of strategies that’s been played in agile project management to improve team performances-

  • Expecting high performance and technical excellence and simply refusing anything but the best from the team.
  • Recognising individual effort and contribution. Individuals working in agile teams need to know that the work that they are doing is meaningful and worthwhile.
  • Quickly identify problems so that they can then equally as quickly be resolved. This is advantageous to improving team performance.
  • Addressing resource requirements such as human resources consultants, trainers, workers. This too is very important for project leaders to look after to ensure that there are no impediments in the projects.

Priority:

  • The highest priority in agile project management is to satisfy the customer through early and continuous delivery of suitable software.
  • Waste is anything that the customer doesn’t want and isn’t willing to pay for so planning and agile events are essential.
  • Technical spikes that explore new technologies can give us architecture or one way and new competitive advantages.
  • Embrace Change.

Embrace Change:

  • Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  • Agile embraces empiricism and it’s almost a guarantee that we will be more knowledgeable once we have commenced work in a project than at the beginning.
  • Welcoming changing requirements means that we are being empirical and data-driven but try to give your team the time they need to finish what they started before you introduce change.
  • Shorter Timescale.

Shorter Timescale:

  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale.
  • The more frequently you deliver software, the smaller and less risky your releases and the more likely you are to have good automation.
  • The more frequently you deliver software, the more chances you have to get and incorporate feedback from your customers.

Harmony:

  • Business people and developers must work together daily and throughout the project.
  • The product owner acts as a proxy for business people and customers to teamwork with the team daily to clarify requirements, accept work and help remove impediments.
  • The business people attend the daily scrum, participate collaboratively and remain available and accountable to their teams. These teams will enjoy significantly greater job satisfaction and performance.

Motivated Environment:

  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  • Focus on developing their employees full potential so they have to do the means to deliver the wins that we desire.
  • Leaders in agile facilitation roles make a mission to gain greater autonomy for their team. Functional managers, senior developers and architects can help developers gain greater mastery.

Communication:

  • The most efficient and effective method of conveying information to and within a development team is face to face conversation.
  • Events such as sprint planning are valuable because they allow for a greater volume of communication to occur in a shorter period of time.
  • Never underestimate the difference in communication quality and bandwidth between several people exchanging emails synchronously versus standing together at a good whiteboard.

Technical Excellence:

  • Continuous attention to technical excellence and good design enhances agility.
  • An absence of good code management, integration, testing and deployment rapidly compromise a team’s performance.
  • Poor design decisions can paint a team into a corner and failing to address technical debt often due to delivery pressures from stakeholders rapidly makes codebase unmanageable.

Simplicity:

  • Simplicity – the art of maximizing the amount of work not done – is essential.
  • More features for poor architectural decisions make the software more complex.
  • It’s better to have a target product that does a few things extraordinarily well being everything to someone rather than one that attempts to cash in an entire market that pleases no one.

Reflections:

  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
  • Reflect and plan a new experiment and do the experiment results then check the experiment results that act on what you found.
  • Just by keeping this in mind, you can do every event and daily scrum to your sprint planning.

 

Why Choose Agile in comparison to Traditional Models?

  • The agile model emphasizes the fact that a team should be a tightly integrated unit.
  • This includes the developers, quality assurance, project management, and the customer.
  • Frequent communication is one of the key factors that make this integration possible.
  • Daily meetings are held to determine the day’s work and dependencies.
  • Deliveries are short-term.
  • Usually, a delivery cycle ranges from one week to four weeks.
  • Agile project teams follow open communication techniques and tools which enable the team members(including the customer) to express their views and feedback openly and quickly.
  • These comments are then taken into consideration when shaping the requirements and implementation of the software.
  • In agile project management, it is everyone’s (developers, quality assurance engineers, designers, etc.) responsibility to manage the project to achieve the objectives of the project.
  • In addition to being a manager, the agile project manager plays a key role in an agile team to provide the resources, keep the team motivated, remove blocking issues, and resolve impediments as early as possible. In this sense, an agile project manager is a mentor and a protector of an agile team, rather than a manager.

 

Scope of Agile Project Management-

  • In an agile project, the entire team is responsible for managing the team and it is not just the project manager’s responsibility.
  • When it comes to processes and procedures, common sense is used over written policies.
  • This makes sure that there is no delay in management decision making and therefore things can progress faster.
  • In addition to being a manager, the agile project management function should also demonstrate leadership and skills in motivating others.
  • This helps retain the spirit among the team members and gets the team to follow discipline.
  • An agile project manager is not the ‘boss’ of the software development team.
  • Rather, this function facilitates and coordinates the activities and resources required for quality and speedy software development.

 

Implementation of Agile Project Management.

  • Do time boxing and spend a fixed amount of time on each process.
  • Timeboxing coupled with the ability to prioritize what’s important is a pragmatic solution to the problems of overrunning projects or process improvement initiatives that deliver diminishing returns.
  • Working in an agile way requires close collaboration between people who have a need(customers) and people who build what’s required or supplies.
  • Successful agile requires customers and suppliers to form a high collaborative team because experience shows that only with high levels of collaboration is communication affecting enough to deliver truly useful solutions.
  • Fully supported production versions of partial solutions are released to the end-user quarterly or semi-annually.
  • Intermediate versions are released to the focus group every 2-4 weeks.
  • Co-located agile project teams.
  • Project portfolio management.
  • Agile implementation is a form of project management that works in small increments and is well suited to projects that could become irrelevant once delivered, especially useful in software development.
  • The key to an agile plan is that it provides flexibility for changes to the product as it continues to be developed.
  • The waterfall method is where progress goes from the idea to analysis and design to building the product, testing it, and then making it.
  • An agile implementation methodology is an alternative in that it doesn’t require one phase of a project to be complete before the next portion can begin.