Agile Project Management – Netguru's Approach to Software Development
Many companies have embraced agile project management in software development because developing software quickly and transparently while reacting to market changes has become imperative in today’s rapidly changing business landscape.
According to a Gartner 2019 study Agile in the Enterprise, the main benefits of agile are better alignment between business and IT departments, better ability to manage changing priorities, and accelerated product delivery.Read on to learn more about agile project management and see how it can help your company gain a competitive edge.
What is agile project management?
The word “agile” is defined as being able to “move quickly and easily” as well as “think quickly and clearly,” and that’s exactly what agile project management sets out to do. It provides a set of tools that makes managing projects more efficient and flexible. It’s applicable to many industries but originally comes from the software development space and that’s still where it has the most impact.
The concept of agile evolved in the 1990s as a response to the inflexibility of traditional project management methods that were prevalent at the time, known as the waterfall model. Waterfall breaks down the sequence of events into distinct stages which must be completed before the next one can begin. This makes it difficult and costly to go back and change something that has already been completed.
In 2001, after a number of new methodologies were created, a group of 17 software developers put together the Manifesto for Agile Software Development, which popularized the concept. According to the manifesto, the main values of agile are:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
The Agile Manifesto has become highly influential among software developers and is something that many companies, including Netguru, have adopted as their philosophy.
The core principles of agile
A project managed in an agile way should have agile principles in mind. They emphasize:
- The importance of “customer’s satisfaction through early and continuous delivery of valuable software.”
- The fact that change is given and welcome.
- Cooperation between the business and IT departments.
- Work environment based on trust, not control.
- Regular adjustment of the ways the team works for constant improvements.
The 12 main agile principles are based on the Agile Manifesto.
Examples of agile project management
Agile software development can be applied both company-wide and to specific projects. It can be used for different management processes, project management being one of the main ones. Project management, driven by agile principles, changes how the team works, how it delivers the product, and how the client can engage in the process along the way.
How to manage the workflow in an agile environment? Here are a few of the frameworks that help to do that.
Scrum follows iterative design principles based on a cyclic process that includes prototyping, testing, analyzing, and refining.
It comes from an understanding that it’s impossible to predict ahead of time what issues may come up during the development process: Clients’ needs are likely to change and unforeseen technical and other problems will arise. Scrum methodology focuses on treating these issues as inherent to the process and solving them on the go.
In a typical Scrum team there are three roles: development team, a Product Owner, and a Scrum Master who promotes Scrum best practices to improve the team’s flexibility and effectiveness. The team is cross-functional and takes full ownership of the project.
Work is organized in sprints - iterations that last for up to a month. At the end of each sprint, there’s a sprint review which serves as a look back on what was done well and where the team needs to make improvements. This way in the following sprints the team knows what mistakes to avoid, improving the process with every sprint.
Kanban is another popular agile development framework. It provides a visual system, usually a Kanban board, that gives participants and stakeholders a clear overview of the project’s progress. The Kanban methodology looks at the project from the perspective of the team’s capacity limits rather than tasks that need to be done. This approach lets Kanban-driven projects follow a realistic estimate without overwhelming the team.
Kanban can be used in combination with other agile methods, like Scrum.
Feature - driven development
Feature-driven development focuses on delivering valuable “pieces” of software to the clients, namely features. The software is developed in an iterative and incremental manner, allowing for timely delivery and a quick feedback cycle.
FDD teams consist of a project manager, chief architect, development manager, chief programmer, and class owners (developers.) It’s more hierarchical than other agile methodologies and doesn’t support collective ownership as progress here greatly depends on the lead developers.
Agile project management can also combine adaptive, incremental methodologies with Agile principles and complement them with traditional project management for the most effective process.
How agile works – the process
No matter which agile framework you’re going to use, all of them will follow similar basic steps. They’re also going to be cyclical - after finishing the last step, the team is ready to get back to the first one. This makes development predictable, the cycles shorter, and the releases more frequent.
Here are the main steps of agile project management:
- Requirements and plans - Draft the project needs with their business value in mind. Here the stakeholders can go into detail of the scope but always keeping in mind that it might change during the development to adapt to new circumstances.
- Creating a roadmap - Based on the initial requirements, design features that the development team will work on in each sprint.
- Develop and test - The team works on the features to deliver at the end of the sprint.
- Feature release - The client sees the functioning feature and the project’s progress.
- Review and retrospective - To ensure continuous improvement and prepare for the next sprint, the team and the stakeholders will review the finished one.
- Adjust and iterate - Reassess the objectives for the next release if necessary and jump to the next sprint.
How agile project development helps IT projects
Simply put, agile makes managing software development projects easier. Thanks to the more frequent feedback loop and extensive planning, both the project managers and the clients get a better overview of the progress. At the same time, the team takes ownership of the project without being micromanaged, which is proven to make people more effective. Here are the key benefits of agile project management:
Agile makes it easier to predict what the final product will actually be like. You won’t spend a long time waiting for something that will differ significantly from your expectations.
Your feedback will be heard and implemented at the end of every sprint. This approach puts the client’s needs in the center.
You will be able to closely track timelines, budget, and progress during the software development process.
The team can focus on small pieces of the project at each stage resulting in a more efficient delivery.
Increased product quality
In agile development, testing is embedded into the development process, which ensures that you are getting a final product with all features functioning as intended.
When the market changes or new business goals come up, the team is ready to quickly make adjustments.
Agile vs other methodologies
Other traditional methodologies are still often used in IT projects. Among the most popular ones are waterfall and the v-model.
Waterfall has a linear structure and is considered the least flexible approach. It was developed in engineering and construction industries and got implemented in software development when there were no other alternative solutions. It’s still widely used and it has its advantages, like creating thorough documentation throughout the development process. However, the waterfall methodology makes it more difficult for software to be developed at a fast pace.
The V-model is basically a variant of waterfall, although it incorporates some feedback elements and therefore is a little more flexible. It’s also not client-centric and doesn’t take into consideration the needs of the development team.
How companies use agile
Many large companies apply agile methodology to transform and innovate. It helps them to conduct change and experiment on a small scale, in limited teams that focus on delivering results fast while the whole organization might still be working in a more traditional way.
On the other hand, start-ups and smaller companies are able to introduce agile methods company-wide early on.
Nowadays agile goes often beyond software engineering. Elements like Scrum, daily stand-ups and spring reviews have also become popular in HR, research and marketing departments.
Companies that use agile include Apple, Adobe, Microsoft, IBM and Google. For instance, IBM implemented agile to improve its business operations in areas like on-time delivery, defect backlog, beta defects fixed before GA, maintenance and innovation. Meanwhile Google uses agile in app development, as well as Android OS on a big scale: it allows users to test a beta version of the new OS and immediately incorporates the feedback.
Netguru's agile project management
Agile is most effective when used as a guiding principle for the whole company. At Netguru, we developed our own approach to agile project management that mixes agile with some elements of traditional methodologies. It’s a mindset that drives the whole operation and helps us to work more efficiently and increase flexibility with our clients. We have also successfully helped others to implement the agile mindset for their specific needs and we can help to do it for your company. If you’re interested in applying our extensive agile expertise to your business needs, get in touch.