The article analyses the main methodologies for managing IT projects. The methods of their application, as well as as the features, pros and cons of use, are considered. The purpose of the study is to determine the effectiveness of each methodology depending on the type of project and its requirements. Practical application of the research results will help project managers and their teams choose the most appropriate methodology for each specific project and achieve their goals.
The choice and successful application of modern methodologies in IT product development depends on a systematic approach to project planning and control. This includes defining project goals and objectives, content and timing, developing a project plan, determining resources and budget, and monitoring and controlling progress [1]. The manager’s role in project methodologies includes planning the project, coordinating the activities of its participants, controlling implementation and adapting the project to changing conditions.
The most common modern methodologies in IT project management are Agile, Scrum, Kanban, Waterfall.
Waterfall. An approach to project management that involves sequential execution of project phases. When using this approach, all work tasks are linked to each other by dependencies. This means that in order to start work on a task, the task that preceded it must be completed. Waterfall is suitable for projects with clear requirements and low probability of change.
Benefits of the approach:
- Provides a clear structure and sequence for project execution;
- Helps the project team to plan and control their actions;
- Guarantees a high degree of predictability of results.
Disadvantages of the approach:
- Does not allow project requirements to be changed during project execution;
- Ineffective for projects with high levels of uncertainty;
- Can lead to project delays if one of the phases is not completed on time.
Agile. One of the most common project management processes. In fact, Agile is not a methodology as such, but a project management principle.
The term Agile is used in two senses:
- A philosophy and value system that a team adheres to.
- A collective name for several different agile methodologies for which Agile values are common.
Agile values:
- People and interaction are more important than processes and tools;
- A working product is more important than comprehensive documentation;
- Collaboration with the customer is more important than contract terms;
- Willingness to change is more important than following a plan.
An iterative and incremental approach that focuses on flexibility and adaptability to changing requirements is a summary of the main features of Agile. Thus, Agile is suitable for projects with fuzzy requirements and high probability of change [2].
Advantages of the approach:
– Flexibility and openness to any changes;
– Continuous contact with the customer;
– High involvement of the team;
– High speed of reaction to problems.
Disadvantages of the approach:
– The project does not have a clear plan and structure;
– Requires a high degree of customer involvement.
Jim Highsmith in his work focuses on the Agile methodology as a
approach that enables teams to respond quickly to change and provide a high degree of flexibility and adaptability. He emphasises the importance of team self-organisation, collaboration and communication between team members [3].
When it comes to implementing Agile, teams often choose a particular methodology (Scrum, Kanban, XP) to use alongside Agile principles.
Varieties of Agile methodologies
1) Scrum. The Scrum methodology involves the use of short sprints that form the project cycle. Scrum works well in conditions of uncertainty, but requires the absence of external dependencies. This is the main difference from Waterfall, where individual tasks are linked together by dependencies.
Project Participants in Scrum methodology:
– Product Owner – responsible for the product vision and requirements;
– Scrum Master – responsible for implementing and organising Scrum processes and assisting the team at all stages of product development;
– Development Team.
Project Activities:
– Sprint Planning – Sprint Planning;
– Daily Scrum – daily team meeting;
– Sprint Review – Sprint Review;
– Sprint Retrospective.
Product Creation Process in Scrum methodology:
– Product Owner generates a set of requirements for the product – project backlog;
– The requirements from the project backlog are passed to the developers, who divide the work into stages – sprints, forming the backlog of each sprint within Sprint Planning;
– In a sprint, the team performs tasks that lead to the achievement of the sprint goal and the creation of an independent increment – a ready-to-use element of the product;
– After each sprint there is a Sprint Review – a discussion and demonstration of its outcome. And Sprint Retrospective;
– Daily Scrum – daily team meetings that help keep the team from deviating from the sprint goal.
2) Kanban. A visual project management system that focuses on limiting the amount of work in a process and on continuous process improvement.
Kanban is built on six principles:
- Visualise all tasks using a Kanban board.
- Limit the number of tasks in the process – each column of the board has limits on the number of tasks in progress.
- Control the flow – track how tasks move around the board.
- Use explicit rules for adding and moving tasks that all participants understand.
- Gather feedback.
- Improve processes wherever possible.
3) Lean. A methodology that focuses on minimising waste and maximising value for the customer. It uses principles such as removing redundant steps, reducing lead times and improving quality.
Initially, loss reduction referred to physical products (a method used by Henry Ford, Toyota and Motorola). Nowadays, however, it refers to wasteful ways of getting work done. The task of the project manager is to prevent such methods in order to improve project implementation and optimise processes.
4) Extreme Programming (XP). A methodology that manages projects with a high degree of complexity, uncertainty and scalability [4].
XP values:
– Simplicity – development starts with the simplest solution that will fulfil the current need for functionality;
– Communication – the team actively communicates with each other and with the customer;
– Feedback;
– Courage;
– Respect.
5) Feature-Driven Development (FDD). A methodology that focuses on developing product functionality. Also uses an iterative approach.
The principles of FDD include:
- Iterative planning;
- Focus on functionality;
- Communication and collaboration;
- Continuous process improvement.
6) Test-Driven Development (TDD). A methodology that focuses on software development through testing.
The principles of TDD are:
- Writing tests before writing code;
- Writing the minimum code to pass the tests;
- Constant refactoring;
- Communication and collaboration.
A development cycle is used where the test is written first, then code, and then refactoring.
7) Behaviour-Driven Development (BDD). A methodology that focuses on developing software by describing the behaviour of the system. It uses the principles of:
- Writing behavioural scenarios before writing code;
- Writing minimal code to pass the scenarios;
- Continuous refactoring;
- Communication and collaboration.
A development cycle is used where the behavioural script is written first, then code, and then refactoring.
Hybrid methodology
Sometimes hybrid methodologies – a combination of waterfall and agile methodologies – are used in project management. This approach allows you to take advantage of both methodologies and adapt to the specific needs of the project.
How to apply modern methodologies in IT
Bennett P. Lienz emphasises the importance of applying modern methodologies in IT project management in the 21st century. He suggests the use of flexible and adaptive methodologies in projects with a high degree of uncertainty and variability [5].
To successfully apply modern methodologies in IT, it is necessary to:
- Define project goals and objectives and develop a project plan.
- Select a suitable methodology that fits the project goals and objectives.
- Form a team that understands and shares the values and principles of the selected methodology.
- Identify the processes and practices to be used in the team.
- Implement tools and technologies that support the selected methodology.
- Monitor progress regularly and adapt to changing conditions.
Ultimately, the choice of IT project management methodology depends on its characteristics, customer requirements and the preferences of the development team. It is important to remember that effective project management is a key factor for its successful completion. Each of the methodologies discussed has its own advantages and disadvantages that should be considered when choosing the right one for a particular project.
List of references:
- Kerzner H. Project Management: A Systems Approach to Planning, Scheduling, and Controlling. – 12th ed. – Hoboken, NJ: John Wiley & Sons, 2017. – 864 p.
- Wysocki R. K. Effective Project Management: Traditional, Agile, Extreme. – 7th ed. – Indianapolis, IN: John Wiley & Sons, 2014. – 432 p.
- Highsmith J. Agile Project Management. – 2nd ed. – Boston, MA: Addison-Wesley, 2010. – 336 p.
- DeCarlo D. eXtreme Project Management: Using Leadership, Principles, and Tools to Deliver Value in the Face of Volatility. – 1st ed. – Wiley, 2012. – 528 p.
- Lientz B. P., Rea K. P. Project Management for the 21st Century. – 4th ed. – Boston, MA: Butterworth-Heinemann, 2010. – 416 p.