If you’ve ever worked for a software development agency, you know that it can be challenging. Software Development Agencies have a “churn-and-burn” stigma attached to them, and rightfully so. Most agencies have a high developer turnover rate. What is it about that particular business model that drives such high turnover? And should you work for a software development agency? Those are the questions that we’ll tackle in this article.
The Software Development Agency Model
Working for a business that has its own product and development team is different than working for an agency. The agency does not have their own product; they survive by building applications for others. The benefit of that model is that you’re not stuck with promoting the product and pushing it out into the wild. The disadvantage is that you must have a constant stream of clients in order to survive.
The absolute best type of client for a software development agency is the time and material client. You set certain financial limits and then you try to meet them. During downtime, you can add additional developers into the project. The business and the client will both benefit from it.
The SOW (Statement of Work) client is the more difficult client. There are many variables that could go wrong, such as underestimation of work or build out of features that are not within scope. The company can easily lose money if the SOW is not reviewed periodically.
Developers are Difficult to Train
The main reason that the company loses money is due to either the project manager or the developer promising something that’s not in the SOW. This sounds straight forward, but it’s more difficult than it should be. Sticking to the SOW takes years of practice. Developers naturally want to solve problems. It takes experience to say “that’s not in the SOW” instead of just solving the problem. The company needs to charge for additional features and not give them away for free.
Developers underestimate work frequently. Most completely forget about deployment, testing, etc, that’s involved in completing a task. This is where the agency should always add buffer to developer estimations. Backlog grooming sessions and retrospectives should go over estimation in detail. This is to help train developers to estimate work properly.
Finally, developers naturally want to accomplish tasks the “proper way.” These are standards that are great for established companies, but are frustrating within agencies. Developers need to be trained to think with the MVP mindset. Most companies want to launch the product as quickly as possible. That means that over-optimization is actually frowned upon.
Should You Work For an Agency?
We get to the topic of the article. With tight deadlines and a high-pressure environment (sometimes), should you work for a software development agency? My personal opinion is yes, you should work for an agency at some point during your software development career.
It teaches you estimation. With constant estimation on various types of projects, you’re going to naturally learn to estimate your work better. By being exposed to numerous different technologies, your estimation skills will soar.
MVP Model. Once you realize that the MVP approach is what both the company and the client want, you’ll have a difficult time turning away from the MVP approach later in your career.
Teaches Discipline. There’s accountability associated with tight deadlines. Your project manager will communicate with you daily about where the project stands. You won’t have an opportunity to slack off. Do it a couple of times and you might have to explain to the client why the project is behind schedule.
Exposes you to different technologies. There are software development agencies that focus on a single stack or a couple of stacks. But most will bring in any type of work that they can. Although this can be stressful, it’s also one of the only times that you’ll be forced outside of your comfort zone and forced to test different technologies.
Teaches you to think like a business owner. If you have the opportunity to speak with the client, you’ll notice that the client does not care about your code. They just care about the functionality and the way the product looks.
Give it a shot and see what happens. Even though it can seem like the most stressful job that you’ve ever held, if you look at the positives, the agency can provide you with knowledge that’s difficult to obtain elsewhere.