Competent project management can be called the basis of teamwork. Effective management means that almost any project can be completed on time and at the highest level, if the manager will choose the project management approach that is ideal for the company, taking into account the specifics of the team's work.
1. What does Project manager do?
2. The classic Waterfall methodology
5. Rapid Application Development (RAD)
10. Project management tools and applications
What does Project manager do?
Each project is unique. It's aimed at achieving a specific goal or result, but it has a framework and time and cost limits. Despite the subject of the project, the area in which it will be implemented, you need a managing person. What does the project manager face in his work and what are the main tasks he solves? First of all, he is responsible for:
- communication with clients,
- team work organizing,
- determining the cost and duration of project development,
- planning development stages,
- risk assessment;
- monitoring the process development.
Since building a house and developing an app for a smartphone are completely different projects, the manager's task is to choose the project management approach that will help to implement the task most efficiently.
For convenient classification of project management methods, we can divide them into:
- methods for the project work organizing as a whole (splitting the project into tasks, working with the customer and so on);
- additional methods (for example, for estimating the project execution time or visualizing the project execution process).
Most often in the classification of project management methodologies, there are two main types: classical project management and varieties of flexible project approaches.
The classic Waterfall methodology
The traditional and the most logical project management methodology is the cascade or waterfall model. It's suitable for projects with have clearly defined requirements and deadlines with the clear sequence of actions and expected result. The Software Requirement Specification must be approved at the very beginning, there is no constant contact with the customer and he will see the result at the end of the work.
If we talk about IT projects, then the development of an application using a Waterfall method will have this algorithm:
- Define the requirements, make the Software Requirement Specification.
- Draw a design.
- Perform layout by design.
- Make the functional part.
- Release of the product.
For the most primitive application, this may work, but in most cases, testing reveals a lot of bugs, which leads to the repeating of some stages of development. Also, if the final product is shown to the customers at the very end, there is a high probability that they won't like something and it will be need an additional budget to fix it. This is why more and more companies are choosing more flexible project management methods.
Agile development is ideal for IT projects. This is a model based on the following principles:
- people and their interaction are more important than processes and tools;
- a working product is more important than extensive documentation;
- cooperation with the customer is more important than strict contractual restrictions;
- readiness for change is more important than strict compliance with the formed plan.
The main idea of Agile is iterative execution. The project is divided into stages, and at each stage we supplement the result obtained earlier. This can be compared to drawing a picture. First, the artist draws the outline, then adds details, then begins to fill the space on the canvas with color, and finally adds accents and finishing touches. The same approach is applying with the project that programmers develop when they use a flexible approach of project management.
Of course, this methodology has its drawbacks. For example, it's not always convenient for the client to be connected and fully involved in the project, and the manager must constantly monitor the work done and maintain appropriate documentation for managing the team's tasks.
But there are many more advantages, because Agile greatly simplifies and speeds up software development. When creating the next application or website, the client is shown the result of each stage and immediately takes into account their wishes. In fact, the design is combined, code is written and tested together: the design is changed by edits from the client, changes are implemented and immediately checked.
Agile can be considered the foundation of effective project management methods.
A development methodology that allows you to solve problems as they arise and at the same time create important products. Scrum is a slightly augmented Agile model. Scrum team structure:
- Scrum master – an administrator who creates tasks, assigns them, and monitors their execution;
- Product owner – customer's representative in the company;
- Team – developers, designers, and testers.
In Scrum, a project is divided into parts and the amount of work (Product Backlog) is created for a sprint – a certain amount of time needed to complete these tasks. A sprint usually lasts from 2 to 4 weeks. Every day, the team holds a daily meeting, where each participant talks through the work plan for the day, says what has already been completed and what difficulties has encountered in completing tasks.
At the end of the sprint, the team holds two meetings: a sprint review – a demonstration of the working part of the product, even if not all the planned functions were implemented, and a retrospective, where the team discusses the performance of the last sprint, positive and negative aspects, problems and ways to fix them.
The advantage of the Scrum methodology is that it's client-oriented, adaptive, and easy to implement in small companies. The customer sees the actual product and all stages of its development, and changes in the development process affect the overall budget less than edits to the finished product created using the waterfall model.
Rapid Application Development (RAD)
Rapid Application Development is a software lifecycle model that is used to achieve greater product quality in less time than the classic design approach.
As in the Scrum methodology, the working team in RAD is small. The company also actively engages the customer in the development process at the early stages. The difference is that a limited budget and a short time frame (2-6 months) are allocated for development.
Advantages of RAD:
- fast software development and release;
- the main focus is on creating a user-friendly interface;
- easy adaptability of the project to new requirements;
- ease of development the functionality of the system;
- using typical solutions;
- better risk management, as stakeholders can identify and fix code vulnerabilities while supporting development processes.
RAD uses incremental prototyping with visual modeling tools. In other words, a product prototype is created first, and then development begins. At each stage, the new version of the product complements the previous ones. The RAD methodology encourages the use of ready-made modules, which greatly simplifies development, saves time, and provides fewer errors.
Let's illustrate an example of creating a Checkiant time tracker logo using the RAD method
The development stages for the RAD method will look like this:
- The definition and approval of project requirements.
- Creating prototypes and developing a product based on them.
- Getting user reviews.
- Presentation of the project before the final launch.
This approach is not suitable for large-scale projects with original functionality requirements. For example, for operating systems or programs for managing complex engineering objects.
Extreme Programming (XP)
Extreme Programming is aimed at creating better software and facilitating the work of developers. This approach is the most specific of flexible project management methods.
XP can be used when:
- product requirements change dynamically during development;
- risks may be caused by the use of new technologies on fixed time projects;
- a small team is developing the software;
- the developing technologies use automatic and functional tests.
- an iterative approach to development;
- easy solutions;
- release from 1 week to 1 month;
- common code writing standards;
- team communication and customer feedback.
Inasmuch communication is one of the principles of XP, you need to create an environment where team members can communicate without barriers. Very often, XP uses pair programming – when two people work on the same workstation and write code together. Using this approach, you can significantly improve the quality of your code and reduce the number of errors that a single employee might miss. At the same time, collective code ownership is important – all developers should know the developing technologies at the same level.
Lean is called the thrifty manufacturing – a project management methodology that eliminates all hindrances of production. Lean thinking is an effective management concept that optimizes business processes by focusing on the client's interests as much as possible. By focusing on the main values and needs of the client, you can anticipate possible risks and manage the work avoiding the loss of resources.
This methodology is most popular in manufacturing. The main principle of working with a project using the Lean methodology is that the company's activities are divided into operations and processes that have value for the consumer and those that do not have such value.
In the Lean methodology, extra spending and waste are called muda, mura, and muri:
- muda – useless expenses that appeared as a result of management errors. In industry, this can include logistics miscalculation, excessive movement of raw materials, excess stocks of raw materials, unnecessary movement of people around the workshop, downtime of people and equipment, lack of tools, unnecessary processing, spoilage, ignoring the potential of employees;
- mura – the causes of muda, the uneven workload. In other words, it's a lack of resources at times of demand and idle resources at other times.
- muri – unjustified difficulties in work. When an employees don't do what they can, when the workplace is poorly equipped or there are not enough tools at all, when the employee is given vague, abstract tasks.
Based on all muda, mura and muri, the main principles of lean production are formed, including eliminating garbage, minimizing stockpile, knowing customer requirements, and expanding the capabilities of employees.
The idea of the Kanban approach is to organize the production process into a single thread, where there is no idle time of unfinished tasks. Each task goes from the "To do" list to testing and checking the manager, so errors made at the previous stage of work will be detected immediately. This allows you to avoid unnecessary expenses, increase the quality of the product and reduce the lead time.
If we consider the process of performing a task using the Kanban method in an IT company, it resembles a conveyor belt in a factory. When a developer starts a task, they move it from the “To do” column to the “In progress” column. Each employee can have only one task “in progress” in order to perform it as efficiently as possible. When the task is completed, it moves it to the “Ready for deploy” column. Then the tester moves it to the “QA” column and the task starts testing.
If the test was successful and no bugs were found, the task is moved to the “PO/PM approving” column, where the manager reviews it and marks it as completed – moves it to the “Done” column. If bugs were detected during the testing stage, the task goes back to the “To do” list.
The advantages of the Kanban Board include:
- reducing the time for project development;
- quick feedback from the testing Department;
- high team involvement in the development process;
- early start of testing;
- high product quality.
Critical path method (CPM)
The critical path method allows you to plan project deadlines by identifying the most priority, time-consuming, and mandatory tasks. The Critical path method is a sequence of key tasks scheduled over time that determines the duration of the entire project. CPM is used in various fields for projects with a clearly defined action plan.
For example, you need to calculate the time required to build a house. We will make a short list of works that will make it possible to assume that the house is ready:
- to make the foundation;
- to build walls;
- to install windows and doors;
- to install the roof;
- to conduct all communications;
- to install the floor;
- to put the furniture.
Of course, in order to live in a house, you need to perform all these works, but the calculation of the duration of the construction of the house will depend on the most basic tasks, such as preparing the foundation, erecting walls and installing the roof.
Project management tools and applications
After choosing the project management method, its time to select the appropriate applications that will help the manager to organize the team most effectively.
In any methodology, it is important to do everything on time and monitor how effectively employees use their working hours. Simple time tracker Checkiant is the first assistant for any team, no matter what methodology you use. The manager creates a new project and thanks to the system of subordinates, he can keep track of how much time each employee works and what tasks he worked on for a day/week/month or any other period.
Other advantages of Checkiant include a convenient interval system, flexible settings, creating a variety of reports and a history of rates. Monitor team performance and create transparent reports for the customer using a single time tracking system.
Zoom – video conferencing applications that are relevant for teams with remote employees and for outsourcing companies. Work calls, team meetings, communication with clients – now, more than ever, video communication is popular.
The free version of Zoom service allows you to create conferences with up to 100 participants. Duration – up to 40 minutes. One participant acts as an organizer and invites others to the call.
Online project management application for Agile teams. It allows you to plan sprints and distribute tasks among participants, set priorities and discuss project progress, issue releases and create reports on the work done. Users can use Scrum and Kanban boards, create an action plan, and visualize the entire scope of tasks.
For small teams (up to 10 people), developers provide free use, but not all functions will be available. There are various paid offers for large teams.
What is the importance of project management?
Usually the company chooses the single model the development of the project. But even in this case, it's likely that there will be a project for which the “same scheme” will not be particularly effective. Therefore, it's important for managers to be open to new knowledge and approaches to project management, try different methods, because everyone has the same goal – to do their work efficiently, on time, within the budget and implement the idea that the client asked you to do.
An effective time management for developers