This saying fits the software development world like a glove. Recently ran into one of my mentors who said that his opportunity with a startup didn’t work out because they were looking for a cowboy coder. This is not a knock on cowboy coders as I’ve been hired to produce features cheap and fast in the past (it didn’t work out well). Now I know that experienced programmers don’t do cheap and fast. My mentor handled the situation by stating he was a craftsman and would not compromise his process for speed and business deadlines.
From a business perspective I completely understand that you have a limited budget to survive. I can’t count the times I’ve heard “Tests, Refactoring, and development of employees doesn’t matter if the company goes out of business”. This is true, but what happens when you’re still in business. I got news for you barely surviving means you’re still in business. There’s obviously a delicate balance on how to operate a business so this blog is not about how to run your business.
As a contractor in the local Denver market I’ve charged about $60+ an hour for 2-3 month projects ($75+ for shorter contracts). Working as a contractor by myself is fine but after witnessing the exponential productivity of a software development team I understand now why there is no comparison. For example, when I get stuck on a hard problem it may take 4hrs to figure out a solution and another 8-16hrs refactoring or arriving at a better design/performance solution. A team around me that can theorize design ideas, answer questions, and mob program has increased my productivity about 4x. I understand now why brand name consulting companies can charge $250+ per hour on average (this is not what Zinc charges).
Recently I joined a consultancy called Zinc technology, Inc started by my mentor in the Bay Area. After a couple of weeks of work I can understand the value to clients of hiring experienced consultants. So far I’ve seen two kinds of clients in Zinc. Those that want to clean/upgrade the code that a cowboy coder wrote and those that want to build a well designed and implemented MVP. I’ve come to love cowboy coders and their war stories because these companies (if they survive for a year or two) can become potential clients. Once a client has seen you untangle dirty code and build new features you’ve earned a client for life.
It’s an interesting dynamic because once a business has millions of dollars in revenue then they don’t care to throw $100k-300k at solving a dirty code or refactoring problem. Although a lot of companies don’t do this because they’d rather distribute this money in profits to shareholders. If they do cleanup the code then they also understand the value of having code be flexibly designed from the start.