A core tenant of agile development is moving in quick, successive iterations.
Iterative product development saves time, solves businesses problems, and empowers your teams to pivot and adjust based on feedback whether it be from data, users, or dollars. Central to this philosophy is starting with the right technology and design foundations that allow you to start simple and quickly develop new features and functionality over time.
At Tragic, we focus on iterative product development for our clients as well as our own projects (website, blog, internal applications, and future products).
In fact, when we learned about Blackout Tuesday we were able to update our website to support the #BlackLivesMatter movement in under half a day, from conception to release.
Previously we were able to add new landing pages, which increased our SEO footprint around technologies that we build and the industries we serve. Those pages were added without having to redevelop or redesign any portion of our existing website. The pages also leveraged existing design and development frameworks which cut the release time in half.
Building an Iterative Culture
For the most success, we recommend building an iterative approach at the core of your company culture. This is the best approach when it comes to most things marketing and technology - and essential when building a product. You should test the waters before you go all-in, because it is easier to pivot than to recover from a huge mistake.
Increasingly, all companies are utilizing this philosophy as more business operations are data-driven and supported by digital technology. Whether your product is internal software, a SaaS product, or simply your website, you should build iterative culture into your teams.
Software Changes Rapidly
It can be tempting to spend a large sum of money today, thinking that you are getting the absolute best results. Or that your investment is done and you can "set it and forget it."
But week by week, new data will be uncovered, best practices will evolve, new tools will become available, and better solutions will emerge. If you do not continuously invest in the evolution of your software you will soon find yourself falling behind.
There is a type of 'natural' tech debt that occurs with all things digital, from software to products. Can you imagine trying to navigate the modern web with an early generation iPhone? Painful.
Moreover, even if your software does not change, your users will. There will be new devices and new use cases - as we all learned first-hand with COVID-19. People will request new features and demand that you keep up with the latest web browsers, hardware enhancements, and newest iOS or Android versions.
And this is why building an iterative approach to your digital growth is so imperative.
Evolution Happens in Hills and Mountains
Iteration does not necessarily mean a steady stream of constant updates. Iterations could be released weekly or only a few times a year, depending on your product, industry, and goals.
Every software release cycle is a constant movement upward for the product. But that upward climb happens at different speeds.
A strong technology or design foundation is an investment into reaching your business goals.
The initial mountain to overcome is generally termed your MVP, or minimum viable product. You can't iterate from nothing, you need a strong foundation from which to grow.
Once you have your base in place, most of the next phases of growth are a slow climb uphill at a steady pace. During these times you release new features, adapt based on data and feedback, and grow your product.
But inevitable mountains remain on the horizon. As your product grows, you will encounter steeper climbs that require much more effort to be invested in your releases.
- Overextending Your Design: Design patterns are built around the current content, goals, features, and desired experience. At certain points, a design framework is outgrown and needs to be rethought completely.
- Infrastructure Updates: Whether you use your own stack or run on someone else's, at some point major overhauls are needed. This usually happens when there is a major change to devices, browsers, or operating systems and that innovative impact bubbles up to servers, frameworks, languages, etc.
- New Sections: New sections of an application bring their own set of tools and screens, often causing problems. These should be built as their own "mini MVP" to get up-and-running fast.
- Technical Debt: Whether it was due to ill-informed design decisions, poor coding standards, or neglected software, technical debt can be a mountain to pay down.
It's important to understand that the pace of product development is not equal. Depending on where you are in your growth cycle - and what mountains are looming - your team may need extra time or support to get to the next summit.
In this next section, we will provide examples of strong technology foundations that allow for fast iterations and growth across multiple platforms.
Examples of Strong Technology and Design Foundations
A strong technology or design foundation is an investment into reaching your business goals. There are many approaches to building products, and most people have an opinion on what is best. Ultimately, it is going to come down to the expertise of your technology team.
Below are a few guidelines for developing modern software in 2020:
- Invest in a Strong Brand: Develop a strong brand with proper guidelines and a robust style guide. Defining your brand early will save you time as your product grows, allowing you to quickly expand your features.
- Develop a Cohesive Design Framework: Developing your own design framework keeps your user experience consistent, makes future design initiatives faster, and provides developers with a greater ability to repurpose their work.
- Leverage Decoupled Architectures: If you want to create a great user experience, a decoupled architecture is the smart choice. This approach maximizes client-side control when compared to traditional application frameworks. For example, we recommend that content-driven websites and blogs leverage GatsbyJS, Contentful, and Google Cloud Platform (GCP). For modern applications we often leverage Laravel + Vue or Django + Angular on GCP.
- Utilize Modern Application Frameworks: Frameworks expedite development and provide guardrails for your developers to ensure they use consistent patterns. In the modern development landscape, choosing the right framework can often come down to splitting hairs. In our opinion, it's best to work with the framework that your dev team is comfortable with. Depending on the project, we at Tragic utilize Laravel, Gatsby, or Google's Angular 9.
- Think Cross-Platform: Products often need to serve a broad user base across multiple platforms - like web, desktop, iOS, and Android. These teams should evaluate building cross-platform native apps using Flutter. The future is cross-platform. The faster you can get there, the better positioned your company will be. We have had success building performant apps that work across multiple operating systems from a single codebase.
- Start Small, Build to Scale: The growth of Docker and Kubernetes has changed the way that devops teams build and scale growing applications. It is becoming easier than ever to build a sophisticated infrastructure with a small footprint that will scale on with demand.
Case Studies of Iterative Product Development
Here are a couple of examples of how we have successfully utilized iterative product development.
Skybound is a comic book publisher that was looking for a long-term engineering partner. We were introduced to them as they were re-evaluating their Insiders program.
The project was riddled with technical debt, and needed a refactor before the business could confidently begin to grow the program. We rebuilt their MVP, opening the company's ability to iterate and pivot as their business and marketing goals evolve.
My Italian Family
My Italian Family (MIF) is a family-owned business that helps people learn more about their Italian heritage. Our journey started nearly a decade ago when we moved their website from Miva to Drupal on a shoestring budget. Tragic has supported MIF as their business has grown over 300%, offered new services, and pivoted their main focus.
We have done extensive iterations starting small and eventually tackling larger updates:
- Changing services and focus
- Migration to the cloud
- Responsive design to support smartphone and tablets
- Home page and product redesign
Soon we will be updating the site to Drupal 9, as well as adding additional features and marketing integrations.
MGFD Law Firm
We developed a very small minimum viable product with Laravel. We built and expanded on this offering for more than a year, continuing to add features and automate more back office processes.
Today, MGFD Law has a highly differentiated customer experience and leading to continued growth for the firm.
Our Internal Development
We practice what we preach. In 2017, the Tragic team redeveloped our site using Angular 4. Now, in summer 2020, we upgraded our website to Angular 9.
That upgrade included a redesigned layout to highlight our work and client case studies. Given the variety of our engagements, we found it challenging to find a format that suits our needs.
In addition, we know potential clients can find it difficult to browse case studies to find ones that are most relevant to them. Our recent release brings us much closer to that goal.
Thankfully, due to our modern code base and solid design foundation, these major updates did not require a complete refactor. In fact, our existing projects are still accessible in the new format, reducing the time needed to release our new updates!
Iterative product development is important for all companies. As mentioned, it can be tempting to spend a large sum on money once and think that you are set for years to come.
On the contrary, technology moves fast. Your users will use new devices. Your competitors will release new features. Your cloud provider will introduce new tools. Your tech stack will need security updates and patches.
The goal of iterative product development is to get ahead of these issues. Instead of playing defense and spending money fixing leaks, building the right foundation and building features in iterations allows you to play offense.
Are you looking to improve your product development practices? Tragic Media has a decade of experience building everything from MVPs to enterprise-grade business applications.