Posted by Charlie Recksieck
Mostly Pros (Some Cons) About Small Software Firms
My father was in advertising, so I was raised to never pass up the opportunity for a cheap pun. This post's title is prompting me to think about what it's like to run a small software development firm (as opposed to a larger one).
Here's the one that will make you want to work for a small company, not just hire one. The amount of bloat from a large company to keep all necessary people (plus another five-plus unnecessary people) in the loop is incredible. Getting 10 people in meetings and emails instead of 2 has the potential to turn what should be a $300k project into a $500k project that also misses its deadline by three months.
Everybody Has To Be A Jack-Of-All-Trades
There's an inefficiency trade-off for employees. When I first started this company, I had to be my own contracts lawyer, accountant, office manager, etc. There are also concerns when hiring an independent when you hire them: Do they have somebody to do your graphic design, are they pushing a software architecture that isn't right for you?
Programmers Are Not As Specialized
This is a double-edged sword. Large companies develop specialists so if you're project is on Ruby, they have somebody coding Ruby 40+ hours a week, every week. But if you're not careful, specialists can be a danger when they always propose their specialty as the solution - "when you're a hammer, everything's a nail." Small company programmers have to be more versatile by necessity, for better and worse.
Personally, I think this is the most dangerous factor when hiring a small firm. How are their testing practices, both for unit testing and system testing? Do they have an easy, practical method to run regression testing? Is the developer testing his/her own code instead of someone else?
Not Pulled Off To Other Projects
I'm a little biased since we are pretty lean, with usually only 6 people to throw at a large project (that's the downside). But in my experience, I've found that when clients instead go with a huge software firm, you think you're getting better help since the personnel pool is deeper. The reality I've encountered that the large developers have to keep people constantly working on projects, they can't have dead time waiting around. If you, as the client, can't get back to them for a couple of weeks, you may have lost the availability of your development team for a few weeks. That said, when a large company knows what they're doing and is dedicated to customers, in some situations it’s hard to beat. (Luckily for us here as a small software company, that’s not as commonplace as one would think.)
Personally, I think customer service has very little to do with the size of a firm. I've seen one-man operations be incredible at jumping on problems right away, while some solo developers won’t return a phone call for a week. Conversely, with large companies, the great ones are dedicated to customer service with unmatched quality while businesses with poor customer service often stick their worst, most unemployable people in Customer Support.
Self-Starters Roll With New Technologies Better
Solo practitioners or coders at small firms have freedom to explore new methods. Even in a 10-person development firm, the individual developers have so much more autonomy to try something new. See how that goes at SAP Consulting when you think something novel is required.
Standards Aren't As Great In A Big Company As You Think
The idea would be that in large companies, there are more professional standards. Granted, I started in software with a 25-person firm that was bought by Autodesk which got me excited at the prospect to finally work in an organized environment with proper procedures. Smash-cut to my first month and I was shocked to see that things were drastically more standardized with that 25-person company.
Startup Workers Are Less Bored
I can't argue against the idea that good specialists at a large company are the ideal. But sometime in the real world there can be a flip-side: If somebody's done a lot of the same work, it can be soul-sucking and incredibly boring to do this job. Which is fine if the scope of the project is right in that same wheelhouse of the regular work. But beware when 10% of the project requires something unusual, these bored coders can have a problem.
Longevity, Reliability Is Better In Large Companies
There is a huge trust factor when picking a software development solution. You want somebody who's been around for a while, somebody's who's done something like this job before. In 3-person company you might be depending on their app developer and if he/she just won the lottery and took off, you're in trouble. When choosing a company, no matter if large or small, make sure they've been doing this for a while. Don't be anybody's guinea pig on a new technology or architecture.
Overhead Translating To Price
This cannot be overstated enough. In a small firm like ours where each employee works at home, you're probably paying for what would be a decent developer's rate plus a 25-to-50% markup. So, let's say this will cost $100-170 an hour. For a major company to hit their numbers and feel like every job is turning a profit, that markup goes to about 250-300% (even $400/hr in their internal calculations) to pay for other company departments that don't generate revenue, office space, branding/advertising, so many things. Seriously, I used to price our estimates for the services section of the 4th-largest software company in the U.S. The warm fuzzies you get from having a large company at your beck and call, they all come with a significantly larger pricetag.
Top Management Usually Involved
It's not uncommon at a major software company to be turned over to a "specialist", which sounds great. It is wise to consider that the developers on your project may be fairly junior, and your project will actually never be discussed or examined by that company's most experienced, top management. With smaller group of employees (under 10 to be considered small), if you get a good feeling from the person you meet with to spec out your project, it's likely going to be that person who's in charge of doing the job. (On the flipside, if you talk to that person and don't like what you're hearing at a small firm ... run!)
Final Thoughts - Small Boat vs Freighter
There's no perfect answer for "What is the right sized company?" An easy analogy to grasp is to think of the 2-to-8-person firm as a speedboat, and a huge software firm as a freighter. Both can go plenty fast, but it depends if you're goal is to go waterskiing or ship cars to China. Your project and goals should dictate what’s best.
Hopefully this article gave you something to consider. And, again, Happy Independence Day! "No implementation without documentation!"
- Seamgen Guide To Hiring A Software Development Company
- When Overstaffing Can Be A Problem
- Is 7 The Magic Team Size?