When it comes to software development, there are currently two major project management types: Agile and Waterfall. Since most Nelnet teams use the Agile framework, that’s going to be the focus of this article.
In short, the Agile framework is a project management process that focuses on getting projects done quickly and emphasizing teamwork and collaboration. It was originally created to help software developers literally be more agile.
At a high level, teams that use Agile will more often focus on breaking down a project into smaller pieces – building out that project incrementally rather than all at once. (This also allows them to be more focused and thorough, since they’re focusing on less things at the same time.)
Agile teams prioritize frequent check-ins, constant communication, and collaboration with teammates. In a perfect world, no one is working in a silo – teamwork is key.
Agile Principles & Values
There isn’t really a set of rules a team needs to follow in order to use the Agile framework. Since the goal of Agile is to make teams flexible and efficient, the framework more or less acts as a starting point that teams can build off of to find the process that works for them. However, there are still a few principles Agile teams typically strive for.
The Agile Manifesto
In the 1990s and early 2000s, technology changed – really quickly. And it did so in such drastic fashion that 17 technology leaders decided changes also needed to be made to the way software developers worked.
In a series of meetings, they developed what would come to be known as The Agile Manifesto, a set of principles and values that software developers could use to work smarter. Four values helped prioritize the things that were most important for development teams to consider:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
They also established 12 principles that Agile teams should follow:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks, to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment 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.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity – the art of maximizing the amount of work not done – is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Under the overarching Agile framework, there are a number of “methodologies” that use Agile as their foundation – for now, we’ll go over two: Scrum and Kanban.
Agile Methodology 1: Scrum
One of the most popular Agile methodologies, Scrum teams take the values set by the Agile framework, and build off of them. On a Scrum team, three roles are always present:
- The Product Owner. They’re responsible for the product, and making sure that the needs of customers and other stakeholders are met.
- The Scrum Master. They help manage developers make sure Scrum processes are followed and that projects are getting done.
- The Development Team. They’re responsible for the actual building of the product – people on this team might include software developers, user experience/user interface designers, and programmers.
Scrum breaks down overall projects into smaller, more focused tasks – time periods known as sprints. These sprints aren’t typically longer than a month, and each sprint involves four main steps:
- Sprint Planning. In the early stages of each sprint, the teams get together to plan ahead and go over all necessary details.
- Daily Scrum. During the sprint, teams take part in a daily meeting to go over the tasks each member accomplished the day before, and what they’ll focus on today.
- Sprint Review. Before a sprint is finished, the team holds a meeting to make sure everything is in a good place.
- Sprint Retrospective. After the sprint, the team meets once more to go over the positives and negatives of the previous sprint, and establish improvements for the next one.
Agile Methodology 2: Kanban
The Kanban (kahn-bahn) methodology is more visual-focused – that’s part of the reason it’s so popular. It differs from Scrum in a few ways, but the largest is the rate that work is done. While Scrum splits projects up into shorter sprints, Kanban treats the entire project as one, continuous process. There are a few other general practices that Kanban emphasizes:
- Limit “work in progress”
- Manage flow
- Make policies explicit
- Use feedback loops
- Improve collaboratively, evolve experimentally.
With this method, work is tracked and managed on a Kanban board, which acts similarly to a whiteboard filled with sticky notes. Tasks (called Kanban cards) are placed on the Kanban board, organized into columns that track the status (like “To-Do” or “Approved”).
The Right Process
The purpose of Agile is literally to make teams more efficient and more effective. Since every team is a little bit different, every process will be as well. The overall Agile framework is more often treated less like a set of rules, and more like a foundation. A starting place for teams that need to do great work, and do it quickly.
It’s why most of Nelnet’s development teams use this framework – and why so many professionals are turning to it as well.
Looking for a software development job (or know someone who is)? Check out our openings.