As engineers, we're constantly torn between the excitement of experimenting with the latest tools and the pressure to deliver fast, reliable results. It's tempting to dive into the newest frameworks or experiment with novel technologies, but doing so often comes with risks—slower delivery, unforeseen issues, or compatibility problems. Yet, staying stagnant and sticking only to familiar tools isn't an option either, especially in a fast-moving agency environment where flexibility is key. So how do we balance innovation with efficient delivery? Let’s explore how we approach this trade-off and share the strategies we use to balance staying ahead without sacrificing our deliverables.

Navigating the Cutting Edge

Sharing knowledge across projects adds value to all our clients, but to maximize that value, we need to keep learning and pushing forward. That said, the cutting edge of software often comes with its own set of challenges: breaking changes (changes that require developers to rework existing functionality), limited support, and small community backing. Working with a stable, well-documented platform means we're more likely to find quick solutions when we hit a snag. On the flip side, adopting the latest tech too early can slow us down, which is where our discretion comes into play.

Take our experience with Next.js's App Router. When it was first released as 'stable' in May 2023, we were excited to explore its potential. But after some testing, we realized it wasn’t production-ready for the complexity of our projects. It had breaking changes, not enough documentation, and dependencies that weren’t fully mature. For us, it wasn’t just about jumping on the bandwagon—we decided to hold off and keep an eye on how it evolved.

Fast forward 18 months, and we’re now starting to make the switch. The ecosystem has matured, and larger dependencies are supporting the App Router as the 'preferred' method of implementation. By waiting for it to stabilize, we've been able to transition confidently, knowing we can offer clients improved performance without sacrificing project timelines.

Beyond technical readiness, we also keep an eye on the cost implications of new technologies. Some platforms, especially in the cloud and SaaS space, have been known to introduce unexpected price hikes, which can hit clients with unforeseen costs. By being familiar with alternatives, we insulate our clients from these risks, ensuring we can pivot to more cost-effective solutions if needed. It’s about balancing cutting-edge benefits with the long-term stability and financial predictability our clients count on.

Dedicated Learning Time

We know that staying on top of trends requires continuous learning, but we also understand that learning takes time—time that can be hard to come by in the middle of client projects. That’s why every two weeks, we carve out 'learning hours' for our engineers. This is dedicated time to explore new technologies, experiment with proof-of-concept builds, or dive into something they’ve been curious about.

However, what really sets our team apart is the passion for technology that extends beyond work hours. Many of us enjoy experimenting with new tools and frameworks outside of regular working hours, purely for the love of learning and building. This isn’t something we expect or require, as Ample values work-life balance—it’s simply a reflection of our team’s enthusiasm. By the time a new technology makes its way into a professional project, someone on our team has likely already experimented with it, learned its quirks, and figured out the best ways to apply it.

But it’s not just about individual learning; fostering team-wide collaboration is key to keeping us aligned and adaptable.

By being familiar with alternatives, we insulate our clients from these risks, ensuring we can pivot to more cost-effective solutions if needed. It’s about balancing cutting-edge benefits with the long-term stability and financial predictability our clients count on.

Encouraging Flexibility and Redundancy

In our team, redundancy isn’t just about coverage—it’s about creating opportunities for continuous learning and team growth. We aim for flexibility, so no one is tied to a single task or technology. Instead of always giving a developer the same type of task they excel at, we intentionally rotate assignments. This allows others to step in and take over, even if it’s not their strongest area, with the original expert available for guidance.

For instance, we recently required a search integration for a client, which was picked up by a developer unfamiliar with the specific implementation. Other developers were quickly able to share prior implementations that they had done for a similar task, with a voice-over to set the developer up for success. By doing this, we not only ensure the work gets done but also create space for skill development across the team. This kind of cross-training ensures that multiple people are capable of handling a task, which makes us more resilient to unexpected changes like someone being out of the office.

But beyond building redundancy, it’s equally important that developers spend time working on tasks that captivate and motivate them. Everyone has areas of development that spark their interest, whether it’s creating beautiful, interactive UIs or diving deep into backend logic. By balancing team flexibility with opportunities for developers to focus on what excites them, we not only ensure project success but also foster genuine learning and growth. When a developer is engaged in something they’re passionate about, they’re more motivated to push the boundaries, learn new things, and ultimately improve their craft.

Building redundancy is a key factor in ensuring we can adapt quickly when something urgent comes up. Our clients rely on the knowledge that their projects won’t stall if a single person is unavailable, because we’ve created a team structure where others can step in without disruption. But it’s the balance of learning, growth, and engaging work that keeps our team moving forward together.

Fostering Communication and Collaboration

To maintain our flexibility and ensure we can overcome challenges together, we’ve cultivated a strong culture of support and open lines of communication. Our team regularly connects outside of scheduled client meetings, whether through quick calls, check-ins, or informal chats. This allows us to address issues in real-time and keeps us in sync, no matter where we are located.

Many of us work remotely, spread across different time zones in the U.S., so fostering an environment where everyone feels comfortable reaching out is essential. We want our team members to feel confident asking questions, no matter how small, and to never hesitate when they’re stuck. But just as important, we respect the need for heads-down time—when someone needs to focus on a task undisturbed. We make sure to accommodate that space, understanding that sometimes the best work happens when we’re allowed to concentrate without interruptions.

In addition to informal communication, we emphasize team-wide knowledge sharing through 'dev labs,' where engineers from different teams come together to present new technologies or tackle challenges as a group. These labs ensure that no learning stays siloed and that the entire team benefits from one person’s experimentation and discoveries.

This balance of open communication, respect for focus time, and cross-team collaboration ensures that we’re able to innovate and solve problems efficiently while supporting each other’s growth.

The final balance

At the heart of it, finding balance is about adaptability—being ready to pivot to new technologies when the time is right, while maintaining the stability and predictability our clients rely on. By fostering a culture of learning, collaboration, and support, we ensure that we’re delivering high-quality work and staying ahead of the curve.

Interested in moving to the JAMstack? Let's talk.

Want to stay in the know on what we know?

Sign up for our email newsletter. Nothing spammy about it. Just a monthly rundown of what we’re sharing.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.