Whenever I see the little red badge pop up, telling me there are app or OS updates ready for installation, I remember: Software never stops changing. Great digital products and platforms must constantly evolve — to meet user needs, stay secure and up to date, and scale to serve ever more customers. And the speed at which a platform evolves says a lot about its health and uptake.
At Postlight, we specialize in building platforms at scale that solve complex problems for large organizations. That work requires a constant dual mindset:
- Delivering the current phase on time, and
- Being ready for what will come next.
When a new client asks, “What do you think of our platform?” we often find telltale signs of focusing too much on no. 1 and not enough on no. 2: band-aid quick fixes and tech debt and cruft that lead to slow release cycles that keep the product a step behind. Here are three ways you can help ensure that your software platform’s design and architecture is ready for the next phase.
1. Make it modular
Whenever possible, create the building blocks versus the whole building. Designing and developing reusable components that you can mix and match speeds up the work for product managers, designers, and developers building new interfaces, features, and functionality. Creating a design system versus just the design builds consistency throughout the whole user interface, and helps a product team iterate and prototype quickly.
For example, when we redesigned The Village Voice, a modular design system made configuring new page layouts right in the publishing system as easy as dragging and dropping.
2. Architect with room to grow
Your platform’s tech stack needs a strong frame with plenty of room to scale up and grow. Software stacks that stick around for the long haul are proven, stable, and pragmatic. They’re not giant monoliths with endless cascading dependencies. They’re not built with alpha or beta libraries or emerging programming languages that are difficult to learn or hire to work in. They’re smartly decoupled, with well-designed APIs that enable clean integrations between the pieces, which can be easily swapped with a beefed-up instance when necessary.
While you don’t want to prematurely optimize, you do want to have a plan for what happens when the database is full or when your site faces burst traffic. When you’re architecting with room to grow, you’re not just thinking about what gets the job done now, you’re thinking about what will get the job done in the future.
For example, if you’re building a mobile app for an iOS but there will likely be an Android release later, there’s an opportunity to leverage and reuse a single codebase (and developer team) with a technology like React Native. A serverless architecture scales easily (and costs less!), or a fat and static approach eliminates maintenance and server time.
3. Lay debt-free foundations
Avoid both design debt and technical debt when you’re laying the foundations of a platform — you’ll reap multifold time and effort savings later. The least expensive time to make sure your platform is accessible, performant, and search engine optimized is before any software has been built. Fixing these issues later can be way more time-consuming than when the foundations are in place, slowing release cycles and work on new features and functionality.
Embracing change in software requires keeping one eye on the horizon while looking toward what the next phase may be. While it’s impossible to see the future in complete detail, designing and building to adapt to it quickly and easily will shorten release cycles and make your stakeholders, customers, and users happier.