Achieve your Minimum Viable Product to test your concept.
The perimeter of your MVP must be limited while allowing you to market your product.
Bet on Early Adopters and get a maximum of feedback.
Your MVP is deployed and usable in production.
Fail fast to learn fast.
Quickly experience the solution (a few weeks), collect feedback from your users and learn from your mistakes.
Do not be afraid to change everything.
Do not forget, you will fail!
Keep It Simple and Stupid.
Why make it complicated when it can be simple?
Avoid over-engineering, if a "paper" model or a Google Form is enough to test your concept, do not go further.
Keep it simple! Both technically and functionally.
Less specification, more development.
Limit your specifications to the bare minimum, focus on the "what" rather than the "how".
The product must be self-documented as much as possible.
Documentation must be versioned in the same way the code is.
Always consider SaaS solutions.
SaaS solutions are sustainable and cost-effective.
In some cases SaaS can speed up the MVP implementation.
Think of the target economic vision regarding alternatives in terms of total cost (TCO : Total Cost of Ownership) and not only in terms of license cost.
The core business should not hinder the construction of new services and applications.
The pace of evolution and delivery of the core business must be compatible with the agility of its consumer services.
The core business must expose services.
The core business must adopt an Event-Driven principle, it reports management actions in the form of events.
Deployment in production is a non-event.
Take advantage of continuous deployment to adapt deployment in production to business constraints and requirements, and not the other way around.
Deployments across all environments, up to production, must be automated and frequent.
A perpetual beta approach allows you to involve your users in the development process.
Feel free to use the perpetual beta principle in which users participate in development.
The term perpetual beta refers to an application developed just-in-time, constantly evolving, not to an incomplete product.