Developing software in early stage companies is challenging because of the inherent uncertainty of new products, combined with limited resources. With experience gained in hundreds of projects, we have created a lean development process which lets us quickly and efficiently develop products.
We start with user-focused product definition to make sure we are solving real problems for customers and focusing on the most important results. We define user personas and high level goals, then create user stories which identify how the product will help make them successful. Next we define the operations use cases which describe how the business "system" works and define the ideal user experience.
When that's clear, we prioritize stories and create an initial product iteration. We build on this base, adding use cases until we reach the product which we can bring to market. You can use the product in development to validate the solution with customers, raise funding, and sign up business partners.
This gets you to product-market fit with the maximum speed and minimum budget. We focus on the key milestones for your business to maximize your value at each funding stage, helping you to establish credibility by showing that you can get things done and giving you more leverage. You need less (or no) outside money, preserving control in your company.
Our promise
Following is the process we define in our contracts:
Software development is a creative process, and it is rare to have a complete understanding of the requirements and solutions at the beginning. This is particularly true when developing new products, as they evolve as we build them and get user feedback. The ethereal nature of software itself lends itself to misunderstandings and miscommunication.
To enable you, the Client, to control the work while maintaining flexibility and efficiency, we will follow a step-by-step process where work is defined, planned, estimated, released, implemented, and then accepted. The goal is to ensure that we are clear about the work and how much time it will take, giving you control over your budgets. This process can be lightweight, but all steps should be followed to prevent misunderstandings.
In the definition phase, we work together to determine what exactly should be done, creating a written specification. These business documents describe how the software will work from the perspective of users and other stakeholders. It might be a simple user story or a document that describes a complex business process step by step.
After the requirements are clear, the Company creates a technical design, implementation plan, and effort estimate. The Client can then prioritize the roadmap based on the required budget and business value. The Client then releases tasks for implementation, and the Company schedules and executes them.
Estimation is not an exact science. Many details only become apparent after starting implementation. Creating extremely accurate estimates takes significant effort, akin to actually doing the work. To make the overall process more efficient, the Client and Company will determine an expected level of estimation accuracy, e.g., plus or minus 20%.
During implementation, the Company may find that a task will take significantly more work than initially estimated or require more senior staff due to unforeseen issues. The Company will contact the Client as soon as possible, and the Client will decide how to proceed, e.g., by continuing based on a new estimate, changing scope, or canceling the task.
The Client will review the work based on the specification and approve it or specify modifications. After approval, the Company will invoice for the work. The Company relies on the Client for timely review, or the project will be delayed. If the Client does not perform an acceptance review promptly, the Company may stop work, and work done to date will be considered approved and billable. Characteristics not defined in the specifications will be considered approved.
The Company will bill on an hourly basis for actual work done. The Company may commit to a fixed price for specific work items if the work is sufficiently well-defined. Upon request, the Company can limit the time used for creating requirements, designs, and estimates, e.g., spending an hour writing a spec.