The post on why software development projects fail left us wanting to write one or two on successful projects, and what that success looks like.
Today we’ll start with the three elements we believe make a software development project successful, from a project manager’s perspective; next week we’ll wrap it up with elements for success, from a developer’s perspective.
These elements we mention form a triangle; they’re based on three components that rely on each other for prosperous projects and interactions.
Good documentation means that code alone is insufficient: there must be text along with it to describe the various aspects of its intended operation.
Subsequently, the three main actors (client, project manager and developer) will know exactly what will be delivered: customers know what they’re getting, developers know what they’re building.
A good rule to follow when working on documentation: assume nothing.
Assumptions are the difference between “this should’ve been built” and “this is what was built”.
This phase could get tedious, but it’s worth it. If it’s done right, it’ll include mockups, written descriptions, and code documentation for posterity (prepping other developers for later or in case bugs are found).
Good documentation looks successful when: the developer has a full understanding of what to build, or what was built.
Right Time Estimations
Estimations should always be produced by a developer. A project manager assists with experience, but a developer is who will ultimately creates the project and who has the most detailed information.
If you have good documentation, the developer should be able to give an initial estimation based on the outlined tasks.
Some developers are great at estimating, some prefer to be conservative, some prefer to challenge projects, but estimating is more of an art than a sequence and it’s largely based in experience.
The role of the project manager is that of a guide. Based on their experience, they go over the initial estimate and check it against what they know about the client and the current situation (considering any obstacles that might arise).
Tied to our first element: a clear scope of the project will help determine if changes come up while the project is running or if a second phase should be created to avoid sabotaging the current estimates.
Right time estimations look successful when: the team’s time estimation meets the actual development time; this evidently has a direct impact on the budget.
Assigning the Right Resources for the Project
This is directed more toward the project manager: after having the requirements of the project, it’s their responsibility to answer “who can do what?”
Said resources include:
– Developers (how many, skill set, availability of each team member)
– Preparing for possible obstacles to achieve the timeline
– Technology required to build the product
– Picking third party components
Resources from the client’s side are also important, leading with assigning a product owner for the project.
Assigning the right resources looks successful when: communications with the client improves; when someone on the client’s side (the product owner) knows exactly what’s going on in the project, at all times, when the team optimizes their development process for future projects.