The basics of delivering a software project on time and on budget
Delivering a software development project on time and on budget is a complex task which requires constant reviews and iterations at a management level.
Introduction
Delivering a software development project on time and on budget is a complex task which requires constant reviews and iterations at a management level. By applying the methods below your project delivery will have a better chance to succeed.
Plan and Review your Development Roadmap Frequently
"Failing to plan is planning to fail."
Ensuring the project gets done on time and on budget the software product needs a detailed UI/UX design and a specification document. All front end and back end features need to be surveyed and confirmed by the client, the software architect and the project manager.
Once the specification is done a roadmap needs to be created with the major milestones and alpha / beta / production release dates.
It is almost certain that both the specification and the roadmap will change during development due to reasons such as technology limitation, user acceptance test results, third party library or API changes etc.
Ideally, the changes and its effects are confirmed between the client, the software architect and the project manager and the updated documents are communicated across the team.
In conclusion, having a specification document and a timeline is absolutely necessary in order to avoid unexpected circumstances or discoveries during delivery. The plan will very likely change as the project progresses, but that is expected and happens in most cases.
Recommended tools based on our experience:
- Axure RP and/or Illustrator for UX design
- Word processor for specification documents
- Float for high level timeline planning
Adopt Scrum, Kanban or a hybrid approach based on your needs
The software product needs to be broken down to building blocks / features as deliverables. Based on the project the development should follow a plan which is done either on a Scrum or Kanban board.
What we found over the years is that the most reliable way to deliver projects is to start with a Scrum based approach where the MVP version gets done by delivering features in weekly sprints.
Once the MVP is done and the product is mature enough then moving onto a Kanban board helps visualise and manage advanced features, improvements and backlog tasks.
Recommended tools based on our experience:
- Jira is the industry standard. At the same time there are many alternatives such as Azure Boards, Trello, SmartSheet etc.
Daily reviews with developers
In order to ensure the weekly sprints or Kanban board items are delivered, short daily meetings with the developers are recommended.
Discussing the finished and upcoming daily tasks while reviewing the code improves the delivery efficiency dramatically.
Recommended tools based on our experience:
- Slack for communication across the development team.
- Jira with Tempo or any other issue tracking system integrated with a timesheet system.
- Float for resource planning.
Connect Version control and Timesheet entries for measurability
Reviewing the developers code frequently is a key component to ensure the project moves forward at the desired pace and quality.
It is recommended to connect the version control system with the timesheet entries for measurability. From a planning and future reference perspective the project manager and software architect can learn how long it takes to implement a certain feature by looking at the metrics.
The simplest way to measure the delivered work of the developers is if the version control commit description is written in a way that it can be copied straight into the timesheet system by the developer. The version control and the timesheet then can be compared which gives a clear view of how much resource was needed to deliver the given feature.
Recommended tools based on our experience:
- Git
- Tempo, Toggl
Weekly reviews with client
On a final note we recommend having weekly or fortnightly reviews with the client. This ensures all parties are on the same page and all possible changes can be addressed and agreed on.
If you want to explore how your development process can be streamlined or if you need development resources, ask us at sales@teambrookvale.com.au. Also if you have any immediate questions, feel free to contact us.