I have been a part of many successful (and some not so successful) software projects since the start of my career. Overtime I have observed some techniques that make significant contribution towards healthy execution of a project in addition to maintaining a good team chemistry. This post briefly discusses those techniques with the hope that some of it, if not all, will help new managers and leaders in better project execution.

1. Get A Head Start

Before the official project kickoff there is usually a period where high level requirements are iteratively refined, some of the team members are locked down, and a technical direction is set. When a project manager makes use of this time window productively, it yields high returns during initial phases of the project. Use this time to overcome any technical deficiencies the team might have in the technologies that are possibly relevant to the project. If the project contains a technically complex problem with an undecided solution, use this time to do prototyping of possible solutions. Start resolving any hardware or software dependencies. In short, don’t wait for the project’s official kickoff. Instead, proactively think about actions that can be taken to give the team a head start.

2. Do The Selling

Tell a story, paint a picture, and show the vision of the project to the team during the project kickoff. Make sure that everyone understands what is the purpose of the project. This may include answers to questions like who are the stakeholders, what is the business impact, what does a successful outcome look like and why is it desired, what will be on the line in case things go south, what is in it for the team as well as for the individuals. A great project manager ensures success of the project is a win-win for everyone involved.

3. Find Early Wins

Early wins are equally important for the project’s sponsor as well as for the team. It boosts the sponsor’s confidence on the team and the project delivery. It also creates a positive impact on the team. Therefore, a project manager should strive towards getting some early wins. The possible options for an early win depend on the nature of the project. If the project involves some aspect of a user interface, then an impressive and stunning theme, UI, UX, and/or design concepts can be an early win. If the project involves lots of data processing through a data pipeline, then an end to end implementation of a single use case can achieve the goal.

4. Actively Manage Expectations

One of the major causes of failure in a project is unrealistic/mismatching expectations among the project stakeholders. It is the project manager’s primary responsibility to set an agreed upon achievable expectations. These include, but are not limited to, timelines, feature set, technical debt, external dependencies, potential risks, and maturity of UI/UX. This is not just for the start of the project, expectations needs to be managed throughout the course of the project. In my experience, a project manager who goes with the philosophy of under committing and over delivery is generally more successful.

5. Solving Problems You Do Not Have (hint: don’t)

Do not spend time on the problems you do not have. I have seen many efforts in projects that do not contribute towards the success of the project and result in a lot of time being wasted. Project manager should have a super focus on tasks that contribute towards the project goals combined with a ruthless prioritization scheme. If the project’s aim is to build a proof of concept then don’t spend unnecessary time in premature performance optimizations. If you are building a new product or service, target a minimal feature set that is absolutely needed by the end users to get the job done. Skip everything else for later iterations. In short, a project manager should continuously assess the tasks at hand to make sure whatever is being done is contributing towards project goals and if taken out will impact the project’s success.

6. The Only Constant Thing is Change

As the saying goes “the only constant thing is change”. Priorities and business realities change. As a result, the project might change its direction and may require throwing all the progress made in the bin and starting over, or it may even cause the project to terminate. However, many individuals/teams do not like change. It can cause frustration, uncertainty, and demotivation for some. It is the responsibility of the project manager to address the situation. Be as open and transparent as you can, and prepare the team for the next steps.

7. Own The Crunch Times

In a non ideal world, a.k.a the real world, many projects face some critical points. It could be a very tight business deadline the project must meet, a major bug at the last minute, a production system going down over a weekend, and when you least expect it, the Murphy’s law might show up (uninvited). This is the time for the project manager to roll up the sleeves and lead from the front. Help the team in any meaningful way such as deciding what is important and what can be deferred, what is the minimum feasible solution, resolve any external dependencies, etc. This enhances the team’s chemistry, improves the project manager’s authenticity and credibility, and helps resolve the problem faster.

8. Continuously Improve Through Retrospectives

After every milestone (which may be as small as the end of a sprint), the project manager should gather the team for an all hands meetup. The agenda should be to discuss what were the team’s major wins and accomplishments in the recent past, what did not go as smooth as it could have been, and what measures can be taken for improvements. Teams that are continuously learning from their shortcomings, openly sharing feedback, and brainstorming ideas for improvements and enhancements, have a far greater probability of success than the ones that do not. The project manager should ensure that the discussed points are incorporated in the team’s processes. Sometimes, it helps people in opening up if the retrospect meeting is conducted at a different place than where the team usually meets.

That is it for now, I will continue to add more tips as my learning grow. Meanwhile, if you have some relevant tips, please feel free to share them in the comments.