How to plan your project successfully?
Source: Globaldev
For whom?
Both Project Managers and Developers will surely find it interesting. I hope that this article will make lots of readers consider the project planning as a serious and indispensable part of a project.
A project. What’s that?
A project is a period of time during which some product or service is realized. Practice shows that a project can last for 14 days or for over 1 year depending on the number of tasks and project objectives.
Project as a period of time
The first thing to do before unrolling the project is to discuss its timing. However, exceptions are also possible, for example when a customer comes and says, “My product must be ready in 3 months sharp as my business hinges upon it”. Sure, we always meet our clients halfway. So in the given situation, we could use one of the methods of Project Management Triangle, i.e. the project can be started earlier if increasing money and resources verge. More of that later though.
Before starting any project a team makes estimations to have an idea what will be shown to the customer and when. And then project planning takes over. During this period the project is divided into small bunches of features, each of which should be accomplished by some definite time.
As all the tasks are done and project objectives met, the project can be marked as closed.
Sometimes there are situations when a team cannot meet the desired goals or can’t do that in time. In this case, it’s better to review the goals, redo the project planning stage, or put the project on hold.
Planning. What constitutes a project plan?
Planning is an important process in the development of any project which aims at drawing out a schedule of a project and its consolidation by the company management.
Time plan in Jira
Source: Globaldev
The schedule of a project is a document which contains a detailed timetable taking into account weekends and state holidays, as there are discrepancies between Ukrainian state holidays and those in the countries of our clients. Also, note that it is crucial to set a deadline in the beginning or in the middle of the week to leave some time for bug fix if needed. Let’s look at this process in real life. The team that is going to work on the project is gathered in one room and analyzes it. Then the team estimates the volume of work and divides it into a number of logical parts crucial for the project. Based on the character of the project, the dependencies between tasks are also considered.
For example, if we have a mobile project, the tasks will be linked to both mobile and backend development. To make a development process more productive it’s better to start backend development prior to application, as without existing API iOS and Android devs have nothing to work with. Having even a small piece of API written by the backend dev earlier, e.g. registration and login activities, a mobile developer can start doing his work.
When the team has delegated the tasks and agreed upon the concept of the project, picking out clue moments and actions, it means it’s absolutely ready to kick off a new exciting project.
During the planning phase the team should always put one really important question forward, “Will we meet the deadline?”. If the answer is “Yes”, this phase is considered completed. After that a project manager, with dozens of tasks stored in his memory or in e-document (as we do here), adds all the tasks discussed with the team to the tracking system called Jira, which we mainly work with.
Not to forget the importance of planning phase a PM can compile a list of questions (or goals), which are to be solved by the team:
- What are the project’s objectives?
- What can we do to reach them?
- What’s the exact amount of work to do? (in any equivalent you’re used to: hours/weeks/milestones/etc.)
One important point to make here is risk management planning. Don’t forget to leave some time for retrospective. This is an extremely useful, even vital procedure in every project. During retrospective phase all team members share their experience gained during the latest iteration. Using this approach you can identify a problem in the team in time, prevent possible ones, find a common working process suitable for each team member, and use it when working with the following iterations. The last but not the least benefit of retrospective is to knit the whole team together and remind everyone of the common goal. More of that in the articles to come though.
- Is it possible to realize? This question stands for discussion of the development process with a client and a team, as well as finding a compromise for realization of the customer’s ideas.
- Are we allocating all the human resources needed? What is a successful project? Your identification of one.
You should mark in Confluence every decision you make, and every approach you resort to, so that not to lose anything during the development process. As a benefit, every team member has the necessary information ready at hand. So, we covered the notion of a project and looked at its planning. And now let’s look closer at the main parts of a project plan. Any project plan has a number of constituents. Now let’s dwell upon those in more detail. A task is a part of functionality which is to be accomplished successfully during the project.
For example, before starting the development of a product (let’s say a mobile app), you should put together the general requirements, i.e. technical specifications, and business requirements, which will be the basis for mobile development. A project phase generally comprises one or more tasks. Experience has proven that big tasks should be better divided into subtasks for their better accomplishment. But how do you know that this is the task you have to break to pieces? Well, there exists certain assessment criteria. For example, you’d better avoid creating tasks which would take 2 or 3 days of work with 2-3 people engaged in it. This is a perfect case for dividing a task into smaller subtasks, and assigning each of them to separate devs.
After finishing every project phase you should conduct analysis or testing, and after getting results fix bugs at minimum expense. It’s a good practice to eliminate errors and bugs at the initial phase of development rather than before its end.
As a rule, we use Scrum methodology in our company. Hence a new project phase won’t start before the previous one is finished. However, we can’t rule out the possibility of moving on to the next phase without affirming the previous. It is acceptable if the risk level is tolerable.
The majority of tasks, basically all the tasks of a project plan, are interconnected, i.e. they have dependencies on each other. It’s depicted with the help of ‘links’ in Jira.
When the nature of the tasks is clear, and all the requirements are compiled, we can proceed with role assignment. Sometimes there occur situations when you first plan the roles for a project, e.g. the project may need one manager, two designers, four developers, one QA engineer, etc. And after the project is approved these roles are filled with real people. This is called roles role planning.
So as you see there are four basic components in a project plan. It should be stressed as well that every project has its own scope, cost, and schedule baseline. These notions are united to form a so-called Project Management Triangle. You may wonder what’s that?
A Project Management Triangle is an interdependence of three elements: time, money, and scope of work, as provided any change in one of them leads to the inevitable change in the rest. And all these three elements are equally important for the project. However, the element of the higher priority influences the others the most.
Source: Globaldev
How does it work in real life?
Imagine: the application’s new version release date is rescheduled 3 months earlier due to the investment slump into the client’s company. So the only way to right the ship is to cut back on the development deadline. Well, 3 months is quite a considerable amount of time, isn’t it? And it seems challenging to cut down your project plan. The good news is it’s not impossible at all. You can allocate more developers at this project, however, it’ll inevitably lead to an increase in its cost. Another variant can suggest cutting the budget of the project, resulting in deadline delay and an increase in the task number.
One more way out is to increase work scope, which in turn causes cost and timing increases.
There’s also the fourth and the last element situated in the middle of a triangle: quality. Quality is the end result of our work. So any iteration of any element of a triangle cannot but influence the quality of the project. In a nutshell, there are four important factors which can result in a dramatic change in the project.
That’s why after every iteration our team always brushes up 3 important questions which in fact help us asses the project status:
- What do we have up to the plan?
- Can we meet the deadline and budget?
- Do we need additional resources?
These questions let you understand the current affairs of the project, compare the current plan with the general project plan, identify risks, and introduce some changes to the development to achieve the desired objectives.
As a conclusion, we’d like to highlight the following
Project planning is a constantly changing process which will be repeated in the project lifecycle. The result of the project relies on your ability to plan a project wisely. Remember that you have to identify clear goals for your team, and have an understanding of why and what for you’re doing all that. Don’t forget to plan each iteration not to miss a thing and analyze everything you’ve done so far.