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]