Respect For All Trades
July 23rd, 2007I was chatting recently with Ian Baird about the benefits and demands of running an independent software business. It seems a lot of people are excited about the prospect of going solo, and I can’t blame them. I’m excited, too! Working for yourself means you answer to nobody. Except, of course, when you’re answering to all those people, customers and business partners, who you gave yourself permission to answer to.
But! You do wake up excited to pursue the day’s pressing problems. Some days that might mean the boring art of turning a profit, but on other, less strenuous days, your attention may turn to timeless questions such as “really, truly, what’s the ideal cascading behavior for new document windows?”
Working for yourself means a neverending list of outstanding questions. How do I improve my marketing? Can I streamline my quality assurance? Do I need a customer relationship management system? Maybe I should rent office space. When do I hire somebody? Is the printer ink deductible, even though I printed a couple concert tickets? How many free copies of my application should I be giving away? Should I be granting interviews? And if so, what’s my title, anyway?
In most “real” jobs you answer a much smaller set of focused questions on a day-to-day basis. In many ways, this is good. Being expected to fill a well-defined role is not only comfortable, it’s also efficient. I guess that’s why business evolved that way. After all, why should you spend time on questions that don’t pertain to your primary talents?
The best answer I have is that it’s really fun to run the show. As an independent developer, you learn a ton about all aspects of running a business, which is both challenging and rewarding. In some ways, this ambitious journey is like a long, strange approximation of earning an MBA. (And I don’t mean “Mister Bad-Attitude!”)
It’s not like I’ve earned the right to call out mistakes in this pursuit. I’m just getting started, myself. But I am opinionated. If there’s one shortcoming I spot in other developers who are intent on being self-employed, it’s a lack of respect for non-engineering aspects of the job. These developers seem to think that indie software development is all about software development. They quit their jobs convinced that they’ll do the same programming work as ever, only sell it directly to users for majillions of dollars and be happy and rich. If the software business was this simple, the companies these developers used to work at wouldn’t need all those other people, the passionate and talented folks who don’t do the programming! What does it take to run your own business? Take a look at every single job in your old company, you’ll be doing it from now on.
Every day brings new challenges, which is of course a huge part of the excitement. But the majority of these challenges fall outside our conventional areas of expertise. What are we to do? It’s relatively simple: learn as much as you reasonably can about all aspects of your business. Marketing, design, quality assurance, accounting, legal protection, payment processing, customer relations, and yes, software engineering, should all be topics of interest to you. If you’re not somewhat interested in these fields, I don’t see how you can run an indie software business. You’re better off in a real job, where you’ll be allowed to specialize in peace.
But the good news is that mere interest in these varied fields will carry you a long way. You don’t need to be an expert to recognize where your expertise ends. By learning enough about your business and the limits of your own abilities, you’ll be well-positioned to do as much as you can do yourself, and to outsource the rest to more capable hands. Just like a real business!
While I do enjoy the romantic image of the successful indie developer as jack of all trades, I’m convinced it’s both impossible and unnecessary. You’ll go much farther in this pursuit by developing a respect for all trades, instead.
July 24th, 2007 at 1:30 am
Good post, thanks for the insights.
Ever get lonely, just being by yourself all day? And do you feel like you’re missing out on the growth/learning that comes with working with other talented engineers, or for a great manager? Those are the two things that give me pause whenever I get the itch to work for myself (and I think any passionate software developer probably gets that itch from time to time).
July 24th, 2007 at 2:38 am
Good speech. Well taken. I always wondered what all those other employees do. The engineering support alone is overwhelming — docs, QA, istallation, etc. Then you have to build a business around it.
The good news for developers is that our biggest talent is often our laziness. The minute we find ourselves doing the same thing twice, we can’t help but write a script. The business aspects are no exception. They can be broken into tasks, many of which the machine can do for us.
So while it is daunting to assume all the responsibilities of a corporate climate, at least we do so with a huge advantage over most folks. We know that once we teach the machine, we can forget about it and move on. With this ammunition comes confidence. Every business challenge becomes a programming challenge. And that’s what we do best.
July 24th, 2007 at 3:03 am
Re: Joe Cheng
That was by biggest concern when leaving a real job. Fortunately there are online communities that you can hang out with, whether it be the #macsb IRC channel, or something do with your personal interests outside of work. They can provide you with the same opportunities for banter and information exchange. That’s the start and perhaps enough for some techies. Of course you take it from there, meet these guys at conferences and user groups, find out who is in your area and meet up with them. You just have to adjust to the new way of personal contact.
July 24th, 2007 at 3:29 am
From my experience, I’ve learned two things:
– Good engineers are often promoted to being managers without showing any talent or interest in management.
– Engineers scoff at managers, thinking they are too stupid to understand their job and feel that managers believe they are more important than the engineers.
The truth is that a good team needs a leader who appreciates that all members of the team, including themselves are equally valuable.
When you’re working on your own you have to have a good business head, a good engineering head and have the discipline to trust & listen to your own boss.
July 24th, 2007 at 5:23 am
Pretty much what Eric Sink and Bob Walsh said also. I recommend reading their books (as was recommended to me in #macsb also). Wish this blog and others, I feel more comfortable standing on the backs and advice of others. MacSB is a great resource!
I think as you grow older, you get a sense for what business is more like from working at companies, where you notice the world around you and take part in more of the company. I do at least. I also have a desire to be in control of the direction of a company and work for it to be a success. It is a big shift from being a basement hacker coding and learning new things about coding to building and ensuring the success of a business venture.
When my business is up and running, hopefully this just won’t be ramblings of yet another vaporware vendor ;)
July 24th, 2007 at 7:18 am
Twenty-six years ago I hung out my shingle as an attorney. I loved practicing law, but found that the bulk of my time was spent managing my law business. I resented the business side because it kept me from devoting my full attention to law. Now I’m retired and developing a Cocoa app, and I fear that the same thing will happen when I start selling my product. How do you guys handle this? Wouldn’t you rather be writing code than making phone calls?
July 24th, 2007 at 9:13 am
Ross, if you just want to develop for the love of it, go with open-source. People will love your app and make it even bigger. But if you want to make money, then you’re not gonna get out of handling the business.
I personally spend only 10% of my time doing actual coding (including research for the coding), the rest being support, marketing, website and Warcraft III-ing.
July 24th, 2007 at 10:41 am
Good post, Daniel.
When I first started doing shareware I used to hate things like marketing, etc. But over time I grew respect for them and it’s even gotten to the point where I actually have fun with the various tasks that make up indie development (not all, but most and that’s where the outsourcing you mention helps).
For me personally, I just couldn’t go back to the grind of corporate development where I’d just be coding all day. The variety is what really makes this career interesting to me and jumping around from project to project and task to task keeps it all fresh and enjoyable.
If you truly love what you do, it makes it a lot easier to be successful at it. Otherwise you’re just fighting it and the constant struggle gets in the way of progress.
July 24th, 2007 at 1:04 pm
> […] How do you guys handle this? Wouldn”™t you rather be writing code than making phone calls?
Selling the app to Daniel :-)
July 26th, 2007 at 11:16 am
“Working for yourself means you answer to nobody. Except, of course, when you”™re answering to all those people, customers and business partners, who you gave yourself permission to answer to.”
—————-
Good point. Here is a comment that was posted on the MiniMSFT site, which echoes your own comments.
—————-
I have my own business, growing, and profitable. I know that many of you are “thinking” of starting your own business/start up. Here are some thoughts/comments to think carefully before taking the leap. You have heard these many times, but here are the real twists.
1. I answer to nobody, but myself.
Truth: You answer to everyone.
Your customers, your employees, the city, the state, federal govt, your vendors, your suppliers, your family, the competition, your allies, your friends, your enemies, your community, and the wonderful thieves.
2. I make my own hours.
Truth: Sure, after you take care of your customers, your employees,
the “man”, your vendors/suppliers, family, business planning. Employees calling sick, irate customers, the “man” hassling you,
your vendors/suppliers not following through.
3. I make money from my own efforts.
Truth: After you pay, See answers #1 and #2.
4. I am happy working for myself and following my own dreams than following someone else’s dream.
Truth: 100% correct. If you are not thinking this every 30 minutes (even after working 16 hours a day for 7 days straight), then you are not ready for your own business/start up.