By Bob Walsh
Joel Spolsky has a great essay today on why traditional software companies don’t understand the need to let developers develop called The Development Abstraction Layer. He argues a good software company should take care of all the mind-numbing business admin marketing stuff so that the developers can do their magic.
But what happens when you are a software company of one, two or a few people? Who takes care of business so you can design and code the program damnit!
If your micro-ISV partnership has developers and non-developers, you’ve got a good structure to work with: but what if there’s just you?
You have to learn how not only do these things yourself, but how to switch modes, hats and mentality between them. Sometimes you get to wear your developer hat, but you’ve also got to wear your marketing hat and your business manager hat and so on.
The trick to this bit of magic is compartmentalization in time and space. It’s knowing when you sit here you’re a developer and between 2-5 pm Fridays sitting over there you’re a marketer. It’s drawing thick black lines between your roles, and shifting venues even if it is only 2 feet to support those lines. It’s realizing that mashups are for web sites, not your brain or productivity. And it’s realizing you don’t have to be a genius level marcom person to get the job done for your micro-ISV as long as you get the job pretty-good done.
So what are you right now? Software Architect, software tester, web site designer, administrative assistant? It’s all good as the saying goes, and necessary. But even in a one man show you’ve got to keep your lines straight.

6 Comments

  1. As a one person show, the challenge of building the requisite infrastructure is immense. In fact, one of the factors of success for small software companies is how they succeed on balancing the various tasks that are necessary.
    In my opinion, the one person (or few people) software company has to learn to work at multiple levels of abstraction based on the task at hand. You also have to be reasonably good at all those levels (not the best, just reasonably good).
    One additional way to address this (if you at least have some cash) is to outsource the non-core stuff. If you’re doing your own accounting, logo design, etc. then life is probably pretty tough. Ideally, you focus as much time as possible on the product (i.e. work at a high level of abstraction) and find other ways to get the lower-level stuff done.
    Much easier said than done. This is what makes the life as a software company founder/CEO/janitor so interesting.

  2. Thanks For Nothing Reply

    You have to admit that Joel is a brilliant self publicist. He should certainly be spending all his time marketing and none of it coding because that is what he seems to do extremely well. It is amazing how he writes articles like this, pointing out the blindingly obvious, and then half the programmers in the world fall over themselves with gratitude for the insights.
    His examples of other companies is completely bogus and there are far bigger issues going on in the Detroit car makers than the command and conquer management model. Their problem with union agreements made over 20 years ago is the root of the issue and certainly not the command and conquer management model. We could talk about his user inteface book and how the entire contents are obvious and had been published in earlir books, but hay, why spoil everyones rosy glow.
    Joel, keep developing a nice bug tracking system and telling us about the process. But please drop the pretence your an expert on how to run every company in the world. Because your not.

  3. bobw Reply

    Thanks for Nothing – Time for that happy pill, yes? Last I heard, no one was forcing you to read Joel’s writings.
    But thanks for commenting, I think.

  4. Bob, it’s nice to find someone who seems to really understand. I have a 2-person Micro-ISV called Zugg Software. I’ve been in business for 10 years, and have over 60,000 customers. I really enjoy Joel’s site, but when I read his article on Development Abstraction Layer, I had the same reaction as you.
    Sure, maybe sometimes I don’t like wearing all of these “hats”. Sure, setting up my own SubVersion server takes time away from my programming. But you know, I *like* being directly involved with my customers. Via my discussion forums and blog, I gain a ton of information about what my customers want. Sure, that’s “distracting” and takes time away from my coding. But it enables me to create a much better product for my customers.
    Also, sometimes switching hats and doing some other job is just what I need to trigger that “A-ha” needed to solve some programming task. I rarely come up with these “A-ha’s” while I’m programming…it’s always when I’m doing something else (and often when taking with customers in my discussion forum).
    Finally, it’s just more fun! Who wants to just sit and code all day. I’m doing it right now, 10 hours a day, 6 days a week, just to get a new product released, and it’s not a lot of fun. I enjoy being able to take a break now and then to focus on a different job that needs to be done.
    I personally think that having your own Micro-ISV is the best “job” in the world. In fact, most of the time I hardly think of it as a job. I’m doing work that I enjoy and working directly with customers who enjoy my product and keep me motivated to continue improving it. It’s harder to get that kind of personal satisfaction buried beneath some sort of Development Abstraction Layer.

  5. Bob,
    You did a great job of making Joel’s writings more relevant to the micro-ISV. It is tough to time slice and do things that are less desirable / efficient when we have plenty of work to get done in the area we are most proficient. But, they must get done for company viability.
    As far as Joel’s article, the truth is that you could have found this same article repurposed for people in a sales position, support position, even the HR team. Every team in a corporation has the same mantra, “just set me up for success and let me do my job without worrying about all this stuff”. A good company leader will minister to that by letting each team feel special, but foster collaboration and corporate focus.
    As for our company, I am thinking of developing circular desks for my business partner and I. We will mark the desks off in 10 segments with electrical tape, each segment representing one part of our many jobs in the company. We will then build software that controls our desk chairs and ratchets the chair to face the next job/segment every hour of our 16 hour days. (For our prime job segments, we will get 4 hours). This will force us to have to deal with a balanced work life. Any attempts to stop the rotation to the next step will result in an electric shock to the prisoner, uh, I mean partner.
    Gosh there might be a business opportunity here, I wonder if I can partner with Ikea and Microsoft. ……..
    Keep up the great work!

  6. bobw Reply

    Jim – I’d be your first customer! I could put my 47 hats hat rack next to it! Great comment!

Write A Comment