How to successfully work with a software development agency

Trevor Heath
Novvum
Published in
6 min readJun 10, 2019

--

Building software is difficult and hiring an agency should make that simpler. Unfortunately, it doesn’t always work out that way. Many relationships fall short, products fizzle out and mountains of money and time are wasted.

Prior to working at Novvum, I worked as a product lead for a mobile app startup dependent on multiple agencies to build infrastructure and applications. As with most, the startup struggled and many lessons were learned. Luckily, I get to share that knowledge while helping companies create their own exciting products.

Until now, I experienced the struggles and challenges of working with agencies from both sides of the relationship and wanted to share what I have learned with you. This short list of tips will help you and your company pick the right development partner and ultimately, accomplish your technology goals.

1. Ask the right questions when you vet an agency.

Asking meaningful questions is a critical part of the vetting process for agencies and clients. Technology strategy and product fit are integral topics that are often breezed over. Here is how to ask questions about these topics to help you better vet agencies.

Technology Strategy Questions:

Technology strategy refers to deep technical questions. With limited technical knowledge, it is easy for teams to avoid exploring an agency’s capabilities and preferences when it comes to underlying technical decisions. Having a technical adviser can help make this process easier, but that is often not realistic. Understanding and researching the agency’s preferred languages and frameworks on your own is an important step in avoiding technical debt and poor infrastructure decisions. It’s also important to build a foundation with modern, growing technologies that will entice future developers and partners in the project’s future. Here are a few questions to help you get started.

  • What languages, frameworks, and libraries do you prefer to build with?

Do your homework here. Write down the key terms and try to read reports on trending technology (I’ll share some at the end of the article). Working with frameworks and libraries that have growing communities and established conventions will help with future hiring, maintenance and feature iteration.

  • Do you feel those technologies are the right choice for this project?

With this question, you can quickly gauge if the team is flexible, realistic and adaptable. You will discover if the agency has the ability to simplify and articulate technical details. Having a high-level understanding of how your applications work will help with investors, advisors and future employees.

  • What limitations do you see working with this technology stack?

“None” is an inadequate answer, push for a response. It’s important that a team recognizes that there is no silver bullet. Openness to exploration and discovery demonstrates a deep understanding of successful software development.

Product Fit Questions

Asking pointed questions about the business and product is key to gauging understanding and experience. Asking the agency what they think about the project, is not enough and won’t provide actionable insight. Instead, quiz the agency on the business use case of your product. An agency that can provide insight into the product and even push back on assumptions will prove to be a true product partner. It is important to avoid a team that focuses purely on product development while neglecting the end user and business use case. These questions will help you recognize an engaged and motivated development partner.

  • What core problem do you think is most important to our end users?

The goal of this question is to quiz the team on their understanding of the product’s core value and user problem. Understanding the core value is critical to a team’s ability to imagine and suggest creative solutions.

  • How would you solve that problem?**

This is where analyzing a team’s creativity is key. There is never a single way to solve a problem. And a critical characteristic of a strong product team is creativity and ability to imagine alternative solutions. See how the team analyzes the problem and thinks critically about user-friendly and feasible solutions.

  • What future iterations of this product do you imagine?

It is never good to focus on future features too early, but the answer to this question will help you learn whether the agency is able to think critically about the product’s lifecycle.

2. Start with a dating phase. 🍕❤️🍷

Most companies are looking for a long term software development partner. Because mobile and web applications require consistent maintenance and iterations, a long term partner familiar with the business, users, and stakeholders is key to a project’s success. However, jumping into a relationship too quickly can prove costly. Make sure to go on a few “dates” before getting “married”!

During this “dating” phase, your team should look for a team that will provide discovery & design services on a short term contract. This phase provides a great opportunity to critique three critical factors and agency characteristics.

1. The working relationship

This is pretty straight forward. How do your teams work together? Does working with an agency fit into your process? Keep an eye on your communication process. Often times a relationship with an agency falters during resource handoffs and reviews. Timely communication, from both sides, is critical for a strong working relationship.

2. Ability to think critically and creatively

When working with a development partner it is important to find a team that thinks critically and creatively about your product. Accepting every client’s assertion is obvious in most professions but without push back or creative discussion, software projects can quickly fall victim to poor strategy or feature creep[1]. The discovery and design phase will provide a clear view of the agencies ability to critique and ideate.

3. The engagement level of the key team members working on your project

Engagement is one of the most important characteristics of a successful product team. Engagement is the ability of a team to work with purpose and feel a sense of ownership of the product. Engaged teams will take the time to understand use cases and value propositions, leading to more creative, quality products.

Bonus: Once the dating phase is over, don’t fall victim to the sunk cost fallacy. If you have concerns about moving forward with the team, voice them or find a new partner. Just because you have spent money on a team, doesn’t mean you have to continue with them.

3. Look for and insist on the agile process.

It is common to hear about the agile process when it comes to product and software development. There is a reason for that, it is a proven process for building successful products quickly and efficiently. Unfortunately, many agile workflows fall short in the agency world. Working with an external team means fewer touch points and longer feedback loops. A truly agile process needs quick iteration cycles and without a development team fully embedded with your stakeholders and users, products are exposed to tunnel vision and poor assumptions. However, here are some things an agency should to do build better products and with more agility.

  • Consistent meetings and standups (Weekly or Bi-weekly)
  • Quick product reviews and feedback
  • Ability to adjust priorities based on feedback
  • Willingness to directly engage with end users or focus groups
  • A priority to collect data and analytics early and often

Conclusion

In conclusion, working with a software development agency can provide turnkey access to a full product team. The power and speed in which you can work is an appealing solution for companies of all sizes. Unfortunately, not all agencies and agency relationships are created equal. There is an inherent risk that the level of service will be inadequate or the team will lack the engagement and desire needed to build a quality product.

These tips are based on my personal experience working with and for agencies and not every team will find them relevant. With that said, following these steps can help your team build amazing products more efficiently and most importantly, more enjoyable.

Resources

https://octoverse.github.com/projects

https://2018.stateofjs.com/

[1] Feature creep is the excessive ongoing expansion or addition of new features in a product, especially in computer software, videogames, and consumer and business electronics.

Have any thoughts or experiences to share? Please leave them in the comments!

Looking for an experienced development team to help with your next project? Check us out: novvum.io

--

--