When we are starting a project, we often need to deal with several people that don’t know each other yet. Based on each person’s experience, each person’s methodology, we might have many ways to conduct the project and organize team’s work. Let’s go through several steps that are going to ensure that your project is well prepared to run efficiently.
People can work on many projects, so before you start, it’s usually a good thing to catch-up with everyone by remembering the purpose of this project. It is more about sharing project’s vision, futures evolution that will come later, what isn’t decided yet and the global ideas for this project.
The very first step of a kick-off meeting should be letting people introduce themselves in a brief manner. The should also share how they will help the project move forward, which duties they are going to take care of, and what is required and expected from other team members.
Whether or not we are about to work with agile methodology, V-cycle or other, we need to have a clear to-do list with input and output expected from each.
So start by remembering the features list that needs to be implemented and above all what are the priorities. If you work in agile mode, these priorities will allow you to adapt the product on the ongoing basis depending on the new insight you might have.
Even during the project, sharing this to-do list with all teammates ensures everything moves forward properly. Letting everyone know inputs, outputs and what is in progress will assure a successful project management (and hopefully, successful project).
Technically speaking, when we start a project, we need to set several tools:
– What is the main communication tool? email, slack.
– What is the task management tool? Jira, Bitbucket Issue tracker, Trello, Taiga, Asana…? Actually, it does not really matter. The point is to ensure that every person on the team uses the same one.
– Documentation repository. Ditto, no matter whether it’s Dropbox, Hubic, OneDrive, Google Drive. Define the most used one by your team’s members and create one directory to share all related documents.
– Code repository. For me, the product owner always needs to have access to his product, even from the first line of code. So do define a code repository on bitbucket, Github or other code repository service, and ask all developers to make code changes on that one platform.
If you have a to-do list for your developer, the best practices should be that for every new feature, bug fix, idea to create a new Git branch with the feature #number, develop and conduct changed on it, and then define who’s in charge of the integration and test, before merging changes on the main branch.
I really recommend to every project owner to ask for demonstration as often as possible. The best way for it is to have a dedicated testing environment to enable the customer to run as many tests as possible without disturbing the developers. This makes it easy when developers need feedback on the project. Usually, I recommend 4 environments:
– Developer environment (each developer should have his own)
– Integration and test environment (used by the product owner to follow changes)
– Staging environment (test environment that could be used for customers demonstration and to show next features)
– Production environment (for real customers)
There are 1000 ways and technologies to come up with a certain result. It does not really matter which technology is the best. In reality, the best technology is the one your team members are most familiar with and are the most effective with. Be sure to share, from the beginning, every global technical aspect of the project. And let every member share how they going to perform their tasks. A good project is a project where team members are well involved and motivated to bring their own knowledge to the project’s success.
Planning is often the most difficult part of a project. There is always something that comes up unexpectedly, that could postpone your milestones. My philosophy is that the sooner the problem is known, the sooner a solution can be found. Take the advantage when every team member is present and discuss milestones with each team member, (and, by the way, engage them in front of everyone) and build the project planning based on that. As Project owner, always keep 10-15% margin for unexpected.
Having a clear plan for project monitoring with all of the required insights allow project manager or project owner to react to almost every unexpected issue.
I think there is always a room for improvement. As I shared my way of starting a project, feel free to share yours, comment or ask any related questions. I would be happy to answer them.