The consulting firm or agency model in application development is based on programmer hours. We the agency have X developers we want to sell at Y margin. You the client either need development done urgently or are unable to competently run projects internally. The agency makes money by leasing development ability to the client on an hourly basis. Our developers work on the application, our project managers keep track of progress so that you the client have visibility and we bill you for each hour we spend working on the application. Our margin is a flat rate depending on seniority and skill set.
Well, how do we scale this agency to maximize profits? We can either increase our margin or increase our revenue by selling more development hours. The rates agencies can charge are based on demand and how much value the client expects to get per engineer. In general application development can bill around $100-200 an hour, specialized talent might bill out up to $300 an hour. Billing beyond $300/hour requires very specialized skill sets that are hard to find people for. Most agencies will be billing in the $100-300 an hour range and have a mix of experienced and inexperienced engineers on staff.
Once you have capped out your rates for the talent you can get, what does an agency do? Well, investors want their returns so you either need to expand or sell. If you are privately owned you might be able to grow to a sustainable level, but that is easier said then done.
Instead of focusing on rates an agency can change its billing model to fixed price per project. Bidding a fixed price for a project lets you increase your margin by competing on efficiency with other agency bidders. Typically, fixed bid contracts are common in government and large corporations. The risk is that if the agencies estimates are bad you can lose substantial amounts of money on the contract. If your estimates are good you can potentially have bank busting margins.
The final means of increasing profits in an agency setting is to increase billable hours. This typically means growing headcount and hiring a sales team to keep everyone busy.
What is the best way to scale billable hours? You get a team of cheap junior developers or offshore developers and have them supervised by senior developers. Maybe you give the babysitters a fancy title like ‘Software Engineering Manager’.