If you’d like to boost your performance, you simply must keep up with the best and most commonly used methodologies of project management. There are many such methodologies to choose from, so some people – especially non-technical professionals or beginners in the IT industry – might get confused.
In this article, I’ am going to give you a comprehensive overview of the best best methodologies, together with information about their advantages and shortcomings to help you make the right choice.
The basics of project management
First things first, I would like to clarify what exactly is an IT project management methodology.
A methodology is a set of values that describe different ways of realizing tasks in an IT project that are related to:
A project is a temporary activity with one goal: to create a unique solution. Each IT project includes activities such as:
Many of companies claim to use Agile as their primary methodology for developing IT projects, but ask anyone what exactly Agile is, don’t count on getting a satisfying answer.
In fact, most companies that claim they use Agile tend to miss the point about gile and what it actually is. Agile is a collection of beliefs that teams can use for making decisions about how to carry out projects for developing software.
Let’s examine the differences between Agile and its traditional alternative – the waterfall methodology.
Waterfall methodology assumes in advance that your idea about software is accurate and verification of the solution to check whether it suits your customers’ needs takes place once the entire product is ready. However, this way of thinking might cause problems later on, as a lot of applications don’t initially meet their recipients needs or the requirements of the project might change over time. When that happens, the IT team would have wasted a lot of time, causing the company to lose time and money.
That is why an increasing number of companies turn to Agile.
In a nutshell, the Agile methodology splits the entire work into iterations. Each iteration is a single step in development and lasts 1-3 weeks during which teams work on particular features, testing and verifying them immediately.
This approach helps companies to adjust their product exactly to the specific needs of their customers, and in many cases apply corrections in real time to save time and money, all the while boosting their performance.
The Manifesto for Agile Software Development
Published in 2001, and read by millions of people, the Agile Manifesto states:
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.”
Here are 12 principles of Agile:
- 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.
The Agile methodology commonly uses:
- This is an archetypical use case that relates to an existing customer who is going to use the software in the future. When creating the persona, we need to describe their goals, tasks, needs, age, problems, experience, and features that the persons would like to use.
- User Stories
- This is a short story (description) about features we would like to implement in our solutions. It must answer questions: who will want to use the solution, what kind of features do they expect, and why would they want to use it at all. For example: as a <website visitor> I would like to see <explanations of English grammar> which I need to <pass CAE exam>.
User stories should be:
The Agile family
Now that we understand what Agile actually is, we can delve a little more into its methodologies. The picture below shows the most popular methodologies that belong to the Agile family.
Lean Software Development
Lean Software Development is a methodology that belongs to the Agile family. It is a way of looking at how we carry out work in projects that aims to reduce resource waste.
The main goal of Lean Software Development is delivering maximum value to customers as quickly as possible in the most efficient way. In the end, the customers get the most valuable product.
To understand Lean Software Development properly, you need to grasp its rules:
- Optimization of the entire project;
- Elimination of waste;
- Building quality;
- Abiding by your commitment;
- Respecting and recognizing people;
- Creating knowledge;
- Fast delivery.
Lean Software Development uses Deming cycle that requires constant planning, doing, checking, and acting – as you can see in the picture below.
The name Kanban comes from Japanese and means information board that is often used in connection with another Agile methodology.
Kanban focuses on:
- Visualization of working process;
- Setting the limit of work in progress;
- Work optimization.
Kanban has no iterations, it is a permanent process that helps teams work in a clear way and become more productive. Kanban makes the entire working process more understandable because everyone knows what must be done and what work is in progress.
Below you can see what a Kanban board looks like.
Extreme Programming (XP)
Extreme programming focuses on the best developer practices. It is intended for for small or medium-sized developing teams. XP allows to change product requirements flexibly, deal with obstacles, and adjust software accurately.
The main values of Extreme Programing are:
Developers who work in accordance with this methodology usually work in pairs. Partners can learn from another, share their ideas, test the parts of the code, and carry out code review constantly, therefore it allows to create clean code with a smaller number of mistakes.
Scrum is one of the most popular methodologies for delivering software nowadays.
It allows to deliver software gradually. The main feature of Scrum are sprints thanks to which teams can deliver software that matches customer needs.
Each sprint lasts 2-4 weeks and its goal is to implement some features that were planned before sprint started. This approach allows to:
- Be up to date to customer needs,
- Apply corrections in the easiest possible way,
- Adjust software to changing circumstances,
- Predict the cost and time in delivering software process,
- And boost team performance.
Scrum use a very similar board to Kanban that shows tasks in three statuses:to do, in progress and done. That helps to clarify the process. Moreover, daily team meetings allow to sort out a lot of problems and bring up important issues.
Agile methodologies might seem difficult in the beginning, but a short introduction is enough to make them more understandable.
Plenty of companies all over the world use Agile in order to match their products to customers’ needs and become more efficient. In comparison to traditional waterfall approach, Agile offers many advantages to businesses that carry out projects in dynamic environments.
Even though Agile has its own rules, teams can easily adjust the methodology to their needs, and not adjust their needs to the Agile methodology.
If you are interested in improving your team performance with tailored software, especially Jira, feel free to contact me on LinkedIn.