The delivery of any product or service can be split into two phases. The first phase, "research and development" is achieved through a learning and discovery process like the scientific method, where the goal is to learn how to make it work. The second phase, "production", is best achieved through detailed planning and control, where the goal is to maximize output and quality.
Usually the second "production" phase takes much more effort. Building, manufacturing, or executing a plan is usually much more complex and time-consuming than making one. Most of us spend the majority of our working lives organizing or completing well-defined production processes.
As a result, everything we learn about how to manage a project or run a business is geared towards "production" thinking. We then run into problems when we apply our "production" way of thinking to a "research and development" project. These projects often relate to intellectual property. For example, Writing, Design, Investing, Music, Films, Scientific Research, and of course, Software.
Software has no production phase, the computer just clones a bunch of bits. 50% of software projects fail and tiny startups routinely steal industry leadership from powerful corporations because people always try and fail to fully scope a software project upfront and work backward to complete it - as if it were a 100% predictable and controllable process.
Software is not predictable or controllable, it is built on the fly out of thoughts and decisions about how to connect, channel and display information. Without a feedback loop of build, test, learn, a software project is dead. The idea that you can start out by learning everything you need to know in order to build a complete software system is an illusion. That's because it's easy to estimate what you know, it's hard to estimate what you know you don't know, and it's impossible to estimate what you don't know you don't know.
There are two solutions, the first one is based on trust and transparency, the second one is based on us taking all the risk. In the first option, we basically charge hourly, tell you exactly what we did, what was learned and we'll ship whatever is completed at fixed intervals. In the second option, we'll price the entire project upfront but it will include a large margin of safety to cover our ownership of setbacks, rewrites, bugs, and minor changes.
To get a higher rate of success in our projects we follow the following principles:
We'll need to get a little more information about your project before we can give you an accurate quote, so please contact us and we'll make an appointment for a call or face-to-face meeting.
We'll discuss your project, and explain what we can do for you. We'll also ask you a number of questions about your goals for your product or service and discuss how to use digital technology to create the types of features you'll need.
After the meeting is over, we'll create a quote and email it to you for review. The quote will contain
When you're happy with the quote, we'll sign a contract and start work on your product or service.
We'll take some time to think about the strategy and requirements for the product or service. This might include an audit of your existing operation, a review of the competitive landscape, or research into the best ways to meet your goals for the product or service.
We'll create a solution architecture and tech stack for the product or service. This will include making decisions about the architecture, and the technologies we'll use to build it. We'll also need to make decisions about the design of the product so that it meets your goals for the product or service.
We'll begin work on the user interface design for the product or service. We'll work with you to agree on the user flow, layout, and structure of the product or service before we begin work on the visual design of it.
We'll start building the product or service. We'll produce regular updates and send them to you, so you can see how we're progressing.
When we're ready to launch the product or service, we'll work with you to plan the launch schedule and identify the goals for the launch, before we start working on the rollout.
Rather than trying to build your final product in one big risky and ill-informed leap, we would rather evolve it through multiple separate phases, each one building on all the lessons before. Remember, software is much more a process of learning and discovery than planning and control. It's better to make sure something works and improve it than it is to spend a huge amount of time and effort only to find out that a core assumption was wrong.