Bob Dylan wrote “The times they are a changin” more than 50 years ago. People have listened to it on vinyl, cassette, CD, iPod, and streaming—same song, new delivery system—accepting these changes without question. Few consider what’s required to deliver any new convenience, the complexities and complications beyond fabrication that include finding talent that can make this all happen: the underlying tech stack.
For the non-tech-savvy reader, the tech stack is a combination of different technologies designed to work together to accomplish a unified goal. Typically, each technology performs a specific function within the stack. Think of it as division of labor among a team of workers.
While there are different schools of thought on tech stack size and complexity, I’d like to offer my perspective on how and why keeping your tech stack smaller and more manageable produces better results in the long run.
More often than not, your project’s key stakeholders are asking for a solution rolled out, like, yesterday. We’ve all been there. That’s why it’s important to clearly communicate that shooting from the hip will cost the company more money in the long run. Choosing the right technology stack can ensure the extensibility of your project and add dollars to your profit margin—but to do so, you must often negotiate extra time to complete the following planning activities up front:
• Discover what end-users expect and how the project owner wants to provide that experience to them. Keep a list of questions that you can standardize and add to with future experience.
• Understand the product owner’s ultimate vision for the project. Creating short term solutions can get the job done, but you’ll incur considerable technical debt in the long run if future requirements aren’t correctly considered.
• During platform selection, thoroughly audit what any proposed new technology can do, how it will benefit the project, and how it will ultimately bring your project owner’s vision to fruition.
• Socialize the requirements, goals, and strategy with everyone on your team to make sure everyone understands their importance. Addressing any confusion up front can help avoid much larger issues moving forward.
New technology is exciting, however, experienced developers know to give new platforms and languages time to prove themselves in the wild with smaller, more self-contained projects before integrating those elements into their larger projects. These folks know that sometimes projects lose steam and wither on the vine, as so many have in the past. If viability and high adoption happens, these technologies tend to experience fundamental changes, as Angular experienced between its first and second versions.
Reliable documentation, community forums, long-established product roadmaps with a schedule for when new versions will be made available—all hugely contribute to how likely a new technology is to integrate into the project. Without these, the likely longevity of that technology in your stack will be limited to how long your team is willing to work with it. The more difficult pieces in your stack, the more team frustrations will spread, creating a ripple effect that destroys morale.
The moment you’ve been dreading has arrived: you need to replace or add people to your team. Finding the right person for the right price is always a challenge, for any position. But if you’ve adopted features based on a flavor-of-the-week technology throughout the course of your product life-cycle, finding that right-price person with the incredibly niched skillset to fit in your stack has increased the degree of difficulty tenfold. In the off chance that you find the skills, you’ll pay an arm and a leg to get them in the door (either because they know their value, or you’ve been working with a recruiter, or both).
Because the talent you are looking for must be specialized exactly for your needs, they will come at a premium. And if you can’t find this talent, you will have to hire someone with gaps in their knowledge, and spend money and company time getting them spun up and on the same page with the rest of your team. Those costs are never completely avoidable, but minimizing skill requirements is best.
In the agency space, it’s pretty common to jump from one project to another without taking time to reflect on completed projects. While this is sometimes unavoidable, taking the time to properly analyze the good and the bad experienced on a project is crucial for making internal pivots. Use these opportunities to refine and improve your processes and approaches to creative problem solving.
We take development seriously at Grafik. We have fun doing what we do, but we’re always looking for ways to improve our own processes and ultimately bring greater value to our clients. Remember to take care of your team, because at the end of the day you can rest assured that a well-cared for team will take greater care of your clients, contributing to your bottom line.