A Checklist to Launch Successful Software Projects
When a new software development project begins, the path forward is often unclear. Often, emphasis is put on launching development as quickly as possible. Yet in most cases, pre-launch planning and preparation speeds up timelines. With all our experience building custom software, we’ve created a simple checklist to help both corporations and startups build successful software from the ground up. For this checklist, we assume that the necessary prerequisite of funding has been secured. For the reader, this means there’s already a capex or opex allocation from the budget, or seed/series A funding in the bank. With funding in hand, this is a checklist to move smoothly from from funding to delivery.
Check Mark #1: Know Your Desired Goal in Detail
Often companies launch new software projects with a goal of producing an optimised system or improving user experience. The principle of improvement underpins the value of innovation, yet may not provide enough detail for a delivery team. The delivery teams need to deeply understand how the software is expected to work in the first release, and what features are considered for future releases. The approach to providing this clarity is commonly called Mimimum Viable Product, or MVP (https://en.wikipedia.org/wiki/Minimum_viable_product).
To understand an MVP, details are required. A general rule of thumb is if you can discuss in detail the goal of the software project, and what is critical for launching it to your customers, you've got a way to ground the project and validate assumptions.
Check Mark #2: Know Your Trade-Off's
With the project’s goal defined, it’s important to understand how trade-offs will be managed over the project’s lifecycle. These trade-offs act as levers, and can help guide decisions around the MVP. There can be many reasons for the need to "trade off", such as a change in the market that requires a change to the MVP, or a reduced timeline based on a potential new customer onboarding. There could also be a need to reduce or increase the project budget based on other projects impacting yours.
In any event, before proceeding with the project, think through which levers exist and how you want to respond when they arise.
Check Mark #3: Know Your Technical Approach
With the details of the goal set, an essential step in launching a new custom software project is determining the technical approach. Increasingly, organisations large and small are modernising their technical approaches with new languages and tools. As a company built on a modern tech stack, we’ve seen many companies incorporate front-end interfaces, infrastructure, and toolsets built on the likes of Elixir, GraphQL, React, and other technologies that are emerging. These decisions often take into consideration the size and scale of the project as well as the company’s appetite for incorporating new technology within their stacks.
One thing to bear in mind during this phase: make sure that the technical approach brings with it a strong developer community. Although some of the modern technologies are growing their communities, they attact great people who love to learn - a great asset for any company. Speaking of capability...
Check Mark #4: Know Your Internal Capability
Understand the people as much as the product. No company is great at everything, all of the time. With limited internal people, i.e. number of developers, scope of expertise, or both, most companies have only a few core competencies. Knowing your core competency should center your focus, and shed light on how sourcing external talent may be required to accomplish the technical approach and end goal of the project.
Check Mark #5: Know Your Path to Completion
We cannot overemphasise the importance of thorough planning. Technology strategy and planning focuses on making short-term decisions that minimise the possibility of unexpected, uncontrolled costs occurring during development. Fully grasping where these surprises may pop up in development entails sitting down and mapping out how each component of the product works together, which aspects are created in-house, which require third-party support, and what the associated risk is for each component. Where troubleshooting is always in response to a problem in the past, knowing your path to completion requires recognising where trouble might occur in the future.
Once the path is set, it becomes paramount to have tools and testing in place to monitor progress, and of course to acknowledge the inveitable conversations around trade-offs.
Check Mark #6: Know How to Test and Measure Progress
The mindset that testing slows down development is outdated. In today’s world, tools to test and track progress are abundant, and positively impact the speed the overall quality of development. As more of the development plan comes into place, determining what tools will be used is key to monitor progress. These decisions tie in closely with determining your technical approach, but warrant a separate check as they can make a big difference in the quality of life of a development team. Better tools means more productivity; something that every developer wants.
Check Mark #7: Know How You Will Deploy
One of our mottos is ‘it’s not software until it’s in production.’ It’s never too early to consider how to get software through testing and into production. The process aligns tightly with development and testing and is foundational for DevOps to be efficient. The quicker you can deploy, the faster you can implement new features -- vital in today’s need to respond to consumers quickly. It's also critical for smaller companies as getting software in to production as quickly as possible supports the desire to get to the revenue stream as quickly as possible.
Check Mark #8: Know Your Governance
This last check mark entails ensuring that the proper structure is set up around project performance against budget, timeline and goals. This governance is fundamental to holding check marks #1-7 together. This can be carried out through many different project management frameworks, and for different organisations there is no right answer. There’s only one higher level right answer: set the laws of governance, and get the project going.
We based this checklist on our own experience leading software projects with our great clients from large multinationals and fast growing tech startups. We hope this checklist helps you think through launching successful software projects, no matter this is your first time through the process or your 100th. We love to hear from the community what everyone finds most important in launching new software projects. Feel free to spark conversation with us on Twitter at @teamalembic.