Managing all types of projects, incl. software development, can be handled in various ways. There are plenty of methods and theory out there to dig into, to hopefully find the best possible solution for your project. The best one is very much a matter of the nature of your project, as well as you and your team's subjective opinion and thoughts going into the workflow.
Below, we've gathered some of the most popular methods designed solely for software projects. If you're more interested in universal project management methods, we have a similar article on those here.
Extreme Programming is a software development methodology, which is intended to improve quality and responsiveness to changing requirements. XP is continuously running in a planning / feedback loop to ensure the most value is delivered.
XP encourages a set of five values; communication, simplicity, feedback, courage and respect. Communicate the progress to everybody, keep the builds simple to ease maintenance and support down the line, run continuous feedback sessions on the completed work, having the courage to act on things that ruffle your mind and accept and adapt to feedback from others, and last but not least respect everyone on the team, their opinion and work together to find the best possible solutions.
As you can see from the illustration below, the method advocates short development cycles for frequent releases of your software. This is in link with increased productivity and possible frequent changes of requirements, while limiting potential issues to a minimum by releasing in manageable chunks.
The Extreme Programming process
Dynamic Systems Development Method is another software development method with a special focus on limiting budgets, hitting deadlines, and increased user involvement and top-management commitment.
DSDM moves through three main phases; the pre-project phase, the project life-cycle phase, and the post-project phase. Additionally, a life-cycle phase is subdivided into five phases; feasibility study, business study, functional model iteration, design and build iteration, and implementation.
The DSDM process
Adaptive Project Framework is specifically constructed for software development. The problem it was made to solve is the constant change of requirements when dealing with software and clients at the same time.
The key component of the APF process is to split work into several cycles. These cycles are prioritized based on the work breakdown defined in cooperation with the client itself. This ensures that you always take on the most important tasks, and manage to build the cycles which are of highest value to the customer and end-user.
The APF process moves through 5 phases. The process begins with the definition of scope, where you in cooperation with the client define the Project Overview Statement, you prioritize the work and requirements to match what brings most value to your client, which finally leads to the Work Breakdown Statement, i.e. cycles to build.
Next step is your first cycle. Cycles are the chunks of work you're planning to do. First up is to plan the upcoming cycle. Which tasks need to get done? Third step, you begin the actual work. Schedule the cycle, assign people to tasks, and ensure everything will be delivered on time. Build the cycle, and continuously monitor and adjust the build.
Just before ending the current cycle you reach the Client Checkpoint. The point of this step is to ensure a sufficient quality of build before the cycle is delivered to the client. This step also highly encourages you to include the client in testing of the finished work to ensure proper value has been delivered.
If there are more cycles in your project, you move back to step 2, and continue with the next build cycle.
When all cycles are completed, you move to the fifth step, the Project Review. The purpose of this step is to review the project on a general level. The completed work is reviewed as a whole, and if the delivered product is sufficient, the project can be closed.
The Adaptive Project Framework process
Crystal is one of the most simple methodologies, meaning that it advocates a more lightweight process rather than a strict step-by-step approach. Crystal is really a family or group of methods, incl. Crystal Clear, Crystal Orange, Crystal Yellow, Crystal Diamond, Crystal Sapphire, and various others. All adjusted to fit different kinds of projects. The first three often used in more simple projects, and the last two for projects with higher risks.
The Crystal methods have 6 areas of attention. People, interaction, community, skills, talents, and communication. Crystal purposefully puts these six factors above the process itself. Simply, it suggests that those are the foundation of the project, and should thus be the foundation of the method used as well.
No matter the subset of Crystal methodology, there are seven commonalities between all of them.
FDD is another agile and sorta lightweight method for managing software development. The process is driven by features prioritized in cooperation with the client. Again, the FDD methodology promotes a stable and continuous shipment of builds.
The process consists of 5 phases. The process is kinda split in two. The first two phases are on the version level, while the last three are on the feature level. Meaning, you run through the first two one time per release, while running through the last three for every new feature being developed.
The PRINCE2 method is definitely one of the most comprehensive methods out there. It consists of 7 principles, 7 themes and 7 processes.
PRINCE2 focuses on continued business justification based on a proper business case, learning from experience, specifically defined roles and responsibilities, breaking work into stages, management by exception, defined product requirements, and finally tailoring the processes to your business environment.
There are three overall bodies in the PRINCE2 method; the project board, the project manager, and the project team. The project board is only concerned about the top-level tasks and the overall business case. The project manager speaks for itself, they're managing the project, reporting the current status to the project board, taking care of potential problems, etc. Finally, the team manager, if appointed, works as the communication channel between the project manager and the project team.
The Rational Unified Process is a software development method developed by IBM. The process is a two-dimensional process broken into 6 activities, with an additional 3 supporting activities running vertically, and 4 phases symbolizing time running horizontally. Additionally, RUP promotes a list of 6 best practices for better management.
The RUP process
The following disciplines are in place to simply keep the project on-track. Make sure everything moves according to plan, and with as few as possible issues along the way.
There are of course more options out there, but the ones mentioned above are some of the most popular, and are all widely recognized by software development companies, big and small.
Again, if you're more interested in universal project management methods - we have an article on that here as well.