The development process
At lean-forge, we're dedicated to helping our partners develop outstanding products. With the latest release of appli.dog, we successfully created a product to assist dog trainers in educating dog owners and their furry friends. We achieved this through a web application for dog trainers and a native Android and iOS app built with Flutter for dog owners.
This blog series explores how we built appli.dog here at lean-forge.
The kick-off
All great products begin with a great team. So we gathered to brainstorm the product and ensure good chemistry. In short: The team is fantastic! Since a product requires expertise at all levels (technical development, design, product-market fit, etc.), it's essential to cover all areas. This was definitely the case, which encouraged us to embark on the journey to build appli.dog. Read on for more details!
The cooperation scenario
Creating great products takes time. When developing a new app, it's crucial to narrow down all the features to
"... that version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort" [taken from Eric Ries' blog]
So the first step is to determine which version of the product idea aligns with the Minimum Viable Product definition of the lean startup methodology. This is much easier said than done. As implementation partners, it's vital that we assist our customers in prioritizing their product development efforts. This often means advising them on what NOT to implement, which can be challenging but is necessary for optimizing their resources and achieving success. Making these decisions early in the product's lifecycle is crucial, as it allows for more time and flexibility to focus on the most important features and functionalities. By making tough choices and providing guidance, we can help our customers create the best possible product.
In several team meetings, we discussed the requirements: How potential users might interact with the app, what data is needed when, which information is essential to provide valuable insights, and many other aspects. The more information we gathered, the more complex the app became, making it harder to trim the features down to the absolute minimum viable product. This is the challenging part of product development. However, it saves time (and money) in the overall process and enables the team to gather insights for future improvements once the app is launched.
The MVP
After getting a rough idea of the core features for the MVP, we sat down and designed a mockup with Figma. As engineers, it's always tempting to dive into our IDEs and start developing a Flutter app immediately - but we took a step back, sketched the core functionality, and designed screens. We had many productive discussions and generated new ideas to refine the initial MVP concept, making the product usable and valuable for future users. These discussions were crucial for identifying areas for product improvement and smoothing out any rough edges to create a more polished and effective solution. By continuing to iterate and enhance the product, we aimed to add even more value for our future users.
And this process is best supported by visual prototypes to help all team members and potential users grasp the product.
Above, you can see the app screens and numerous (many, many) comments from the team (comprising potential users, domain experts, business analysts, and developers). Everyone collaborated with a shared vision for the product and examined how the features could be optimized in functionality to the absolute minimum to create value for the app's users.
And this is the starting point for the next phase: the prototype.