Friends Don’t Let Friends Develop Software Alone

Given a chance, would you rather work alone, or as part of a team? Right now I’m the sole software developer employed by my company – and I can tell you there is nothing I would like more than to have someone here to kick my ass, scrutinize my code, scold me when I cut corners, and advise me when I’m in a bind. Developing software alone is not a good idea – always try to work as part of a team, or open source your project and seek outside input.

Listen to this man because he speaks the truth:

In the future, if a company offers me a job and tells me I’ll be the sole developer, I’ll walk away from the offer. I’ll never do this again.

Some folks have claimed that it presents the great opportunity to establish your own process. In my experience, there is no process in a team of one. There’s nothing in place to hold off the torrents of work that come your way. There’s no one to correct you when the urge to gold-plate the code comes along. There’s no one to review your code. There’s no one to ensure that your code is checked in on time, labeled properly, unit tested regularly. There’s no one to ensure that you’re following a coding standard. There’s no one to monitor your timeliness on defect correction. There’s no one to verify that you’re not just marking defects as “not reproducible” when, in fact, they are. There’s no one to double-check your estimates, and call you on it when you’re just yanking something out of your ass.

There’s no one to pick up the slack when you’re sick, or away on a business trip. There’s no one to help out when you’re overworked, sidetracked with phone calls, pointless meetings, and menial tasks that someone springs on you at the last minute and absolutely must be done right now. There’s no one to bounce ideas off of, no one to help you figure your way out of a bind, no one to collaborate with on designs, architectures or technologies. You’re working in a vacuum. And in a vacuum, no one can hear you scream.

(…)

If anyone’s reading this, let this be a lesson to you. Think hard before you accept a job as the sole developer at a company. It’s a whole new kind of hell. If given the chance, take the job working with other developers, where you can at least work with others who can mentor you and help you develop your skill set, and keep you abreast of current technology.

I agree with everything above 100% – I can feel this man’s pain, I can totally understand his position – because it is the same one as mine. Best advice I can give to anyone who is looking for a job right now, is to stay away from solo projects. They might seem great, but slogging it alone is a masturbatory experience which doesn’t help you grow as a programmer.

Jeff Artwood seems to agree as well:

Working alone means complete control over a software project, wielding ultimate power over every decision. But working on a software project all by yourself, instead of being empowering, is paradoxically debilitating. It’s a shifting mirage that offers the tantalizing promise of relief, while somehow leaving you thirstier and weaker than you started.

Not only does it make you weaker, but it also may mean that your product will have some weird birth defects – a sure sign of mental inbreeding. Every single one of us has gets those oddball ideas which initially seem awesome and brilliant but turn out to be embarrassingly stupid and difficult to maintain. If you are working in a team, someone is bound to look at your code and call you on your bullshit sooner or later. But if you work alone, these eccentric little nuggets of pure crazy may slip through to production code before you realize how bad they really are.

Of course it’s not all bad. You get full creative control over the project, you are free to use the technology you want without the need to justify it to anyone, you get to set your own schedules, you have the job security angle covered, and no one can short-change the value of your work.

And working in a team can have big downsides too – for example, the project lead might be an idiot, and you may end up working with the “Briliant Paula Bean”.

Still, I think that having someone else around to bounce your ideas off, and call you on your bullshit is extremely valuable.

What do you think?

[tags]programming, solo programming, jeff artwood, paule bean, brillant paula bean, programming alone[/tags]

This entry was posted in programming. Bookmark the permalink.



5 Responses to Friends Don’t Let Friends Develop Software Alone

  1. Dax UNITED STATES Opera Windows says:

    I can’t imagine being the sole developer at a company. I find that I work best when I can constantly interact with other developers. Being able to toss ideas out at other developers who will most likely approach a problem in a different manner is invaluable. Of course, all of this is dependent on whether you can take criticism or not. If you don’t like people telling you that your idea isn’t the best or that your code sucks, a team environment is not for you.

    Reply  |  Quote
  2. mike CANADA Internet Explorer Windows says:

    I agree, more brains = better code.

    unfortunately for me im the Technical Director at a small agency. I have NO OTHER F/T developers and besides my daily tasks of co-ordinating project tasks with PM’s, monitoring live sites, consulting with clients, etc. i have to develop (or at least architect) the vast majority of all our projects. Every day i beg for a FT programmer. But not just a junior programmer i want someone who can literally kick my ass at programming. Sometimes i feel like im never learning anything new and just falling into old patterns that are more than likely not “Best practices”
    However Deadlines are always the determining factor.

    That being said i do have some extremely brilliant sub-contractors, who over the course of my career have helped teach me. Unfortunately most sub-contactors do not like to work at the office, they prefer to work from their offices or at their homes (understandable), but reading nightly builds helps me learn.

    OH TO HAVE A FT PROGRAMMER!
    (PLUS DBA, PLUS SERVER GOD, PLUS [INSERT IT ROLE HERE])

    mcm

    Reply  |  Quote
  3. Luke UNITED STATES Mozilla Firefox Windows says:

    Oh man… I wish I had a DBA, a real sysadmin and a network engineer at hand. This would make my job like 98% more awesome. :)

    Reply  |  Quote
  4. Matt` UNITED KINGDOM Mozilla Firefox Windows Terminalist says:

    [quote post=”1683″]This would make my job like 98% more awesome[/quote]
    What would it take to make it 100% more awesome?
    Donuts?

    Reply  |  Quote
  5. Luke UNITED STATES Mozilla Firefox Windows says:

    Donuts would make my job 2% more awesome. Combined with a DBA, sysadmin, and network engineer it would make a 100%.

    Another 100% of awesome would be if I could delegate end user support to someone. :)

    Reply  |  Quote

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>