Arrow icon
Key to Lightning-Fast MVP/MMP Development: DRY Code and Zero Technical Debt

Key to Lightning-Fast MVP/MMP Development: DRY Code and Zero Technical Debt

At Apexive we prefer to work with MMP that refers to a minimum marketable product. MMP is also focused on the User Experience of the product and how to fulfill the expectations of the target customers at large. The keyword here is ‘early’. In this article, we would like to share our secret formula to success and speed in software development: DRY code and zero technical debt.

Ziya Suzen

Architect

August 8, 2023
Technology
Table of content

Great business ideas need to be implemented and validated as quickly as possible. Product owners should decide the minimal feature set they can get away with and act before the competition launches a similar product/feature. Yes we are talking about a minimum product. 

At Apexive we prefer to work with MMP that refers to a minimum marketable product. Basically MMP is everything as MVP and more. Unlike MVP, MMP is also focused on User Experience of the product and how to fulfill the expectations of the target customers at large.


The keyword here is ‘early’. As we have developed many successful products, MVPs and MMPs at Apexive, our experience taught us that not only do our customers expect the perfect software, they want it yesterday. Here we would like to share our secret formula to success and speed in software development: DRY code and zero technical debt.


Let us explain what these principles mean to us by starting with the basic definitions. 

DRY (Don’t Repeat Yourself) is a well-known, fundamental software development principle that encourages developers to reduce repetition in code. 


Technical debt on the other hand is a concept introduced to explain the implied cost of taking short-cuts during software development. It’s like anything else in life: If you don’t do it properly, it will cause headaches later. As you can see there is a natural link between the DRY principle and technical debt. If you don’t apply one, you end up with the other. Let’s explore these concepts in more detail.


Don’t Repeat Yourself

At Apexive we remind ourselves every day we must develop DRY code. For us, it’s more than just simply being able to reduce the amount of repetition in our code. It is part of our culture. Why do we do it? After all, isn't the product we are working on just an MVP or MMP? It might never see the light of day after its first release.

Well, we think differently:


  • DRY makes it easy to create a consistent feature set. If you have a specific function in one area of your product, your users would expect that to work the same elsewhere too.
  • We can implement new features with ease because DRY makes the reuse of components possible.
  • DRY leads to better design and architecture in our solutions.
  • We can truly embrace change and fix bugs and issues in one place, effectively solving them everywhere.
  • Last but not least gives us a sense of pride in what we do.

That’s all well and good but how do we do it? These are the enablers of DRY for us:


  • We are experts in the technologies we use. We can see the solutions and potential future problems quite quickly.
  • We have decades of experience and a successful record track of software development and delivery of products.
  • Our technology stack consists of proven products, software frameworks, and tools.
  • We use almost exclusively open-source software products with vibrant communities using cutting-edge technologies.
  • We follow industry best practices, tools, and frameworks to reduce the complexity of our solutions and future-proof them.
  • We are passionate about software development and writing the best code we can.

Hopefully, you can see why such a simple principle can encompass a wide spectrum of software development concerns for us and lower the costs now and in the future. That brings us to our next important concept.


Zero Technical Debt

Nobody wants to get into debt, technical or otherwise. But why do we do it anyway? Why don’t we avoid it in the first place? 

That is exactly what our motivation is: we avoid the technical debt by paying it forward because it is far cheaper and easier to eliminate the issues whilst you are working on it than a few days, even weeks or months later where you have spent time to remind yourself what you or someone else was working on at the time. 

Simply put, do it when it’s fresh in your mind. Following the same pattern let explore some of the reasons why striving for zero technical debt might be a good idea:


  • Not leaving messy code behind, makes it a lot easier to hand over and share the workload among team members increasing efficiency.
  • The team can truly own the code as a whole rather than having key persons owning different components. (How many times did you hear people saying ‘So and so wrote that part. We need to ask him.’)
  • By paying attention to detail we pay a small cost (and as it’s practiced, a negligible cost) upfront which means we avoid costly rework as much as possible.
  • Since not everyone is an expert in every area of the development process and technology, to achieve zero tech debt we find ourselves working better as a team, communicating more effectively, and being proud of and enjoying what we do.
  • Well-designed and implemented solutions mean fewer unexpected surprises and happier customers.

Reasons not to have a technical debt

The list goes on and while you might be convinced that it can lead to wonderful results, you might also be asking yourself ‘how is this different from old, inefficient waterfall software development where you design everything upfront?’.

Well, it is and it isn’t. Let us explain:


  • Our delivery times are typically measured in weeks and days. That means we iterate several times a week and usually during the day. This doesn’t leave much room for revisiting past development. Refactoring has to happen in real-time.
  • Having said that, we value good design principles and best practices highly and always have a proper analysis before we start any task. Just like in the old days

As for the enabling factors of zero tech debt, they are almost identical to DRY as we mentioned before. We won’t repeat ourselves here, but summarise: We explained how we view and implement our two code development values, DRY and zero tech debt which allows us to deliver new products at lightning speeds, with solid features and functionality, in turn leading to cost-effective and future proof solutions provided to happy customers and product owners.


Wrap up

Ultimately, Apexive approach to the development is not a set of best practices. This is the company vision. It’s about striving to do work that we all can be proud of and make partners to achieve the best results, while genuinely caring about the people we’re working with.

Game Changers Unite

We are the software development agency and we love helping mission-driven startups in turning their ideas into amazing products with minimal effort and time.

LET'S TALK