Is software development an activity preferred by anti-social, misanthropic individuals who'd rather deal with computers than other people? If so, does it then follow that all software projects are best performed by a single person, working alone?
This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2007/06/in-programming-one-is-the-loneliest-number.html
Definitely experiencing this exact situation at the moment - mainly due to resourcing levels, rather than a deliberate decision - and it’s not very pleasant.
I’d never thought of the internet in the ‘Hive mind’ sense before, but it’s a good description.
Agreed that being the sole developer on a project is a lonely (if not painful) experience. Yet, there are also very successful 1-person mISVs out there. Those business owners happen to be usually quite talented as coder as well.
Not sure how it fits with your thoughts.
There are many conflicting view points on this one, personally I have worked in teams and alone and prefer to work alone for the following reasons:
- Full ownership of design decisions.
- No communication overhead with other team members.
- Responsible for the project schedule.
- Can set my own high standards, and do not have to encourage others to live up to these.
- No “babysitting” of less experienced developers (sorry, but I’ve been there and it does take time and energy).
- Can use a project to explore a new technology, without having to justify the decision to other team members or project managers.
- Can communicate directly with customers without having to work through any middlemen (for example project managers or dedicated analysts acting as a conduit of communication between you and the customer).
- Don’t have to deal with other developer’s legacy code, as all of the code is mine my familiarity levels are higher.
- Get to choose what language and database to use for new projects, assuming that the customer does not care so long as they get their web application.
- No time required for regular team and progress meetings with managers!
I could probably come up with more, but you get the point. The only reason I miss working in a team is for the peer review of my work, but for any projects were you are able to open source the code and release it publicly, the “hive mind” (to use your term) of the open source community will review the code for you, and will quite happily and vocally point out areas where you can improve.
Maybe I am just a control freak
Small teams are nice because they allow you to bounce ideas off people. I know that’s an old programming trick, the old “bobble head” that you talk to but it’s much better with real people. Sometimes just saying an idea outloud will make you realize it’s flaws or where you could improve it.
On the other hand, you do have to have the right group of people. Some people just suck all your energy and they end up asking you to write their entire program for you, regardless of how subtle or firm you’re with them. As far as when you do need to get into heads down mode I’ve found noise-canceling headphones work the best. Pop’em in, turn up the music and that’s a sign that you have your Do Not Disturb sign on.
To be honest, I must confess that I really hate open-space hells, where the undisciplined guys are walking around, screaming loud just near my desk, when I am trying to solve one of programmer’s daily puzzles. Maybe, just this made me misanthropic.
To John: On the other side, as a freelancer I am to deal with trade and marketing stuff which doesn’t belong to my hobbies.
I can see both sides, because I both work solo and as a team.
The Biz itself is a team effort.
The Computing is done solely by myself.
If I want to work with other people, that could be arranged. However snags would arrive fast and furious.
“What do you mean you can code in xhtml”
“What do you mean you need your IDE, whats wrong with a text editor”
“No I do not want trash flash on the website”
“No you do not need a database to store everything, its called fopen()”
The list is endless . . .
Working with somebody else is only possible if I lower my standards.
“What do you mean you dont do Unix !”
This is tricky, and yes, I am feeling the solo work problem. But I’m a self-employed freelancer. How do I get all those benefits when I can’t afford to pay someone else’s salary?
I think there is a huge difference between working by yourself FOR YOURSELF (freelance or mISV) versus working by yourself for an employer fulltime. I was recently employed as the only developer and sysadmin (sysadmin was not the role I signed up for) in a company of over 40 people. In this situation I had no control over the project. In fact, the project that I was hired to work on was never started. Thus I was banished to fix bugs in a legacy system and do sysadmin for 8 months until I finally resigned. Now I couldn’t feel better!
I find it too easy to get off task or thrash when alone.
classic post … I could relate to this from my previous years as a lone-ranger consultant / developer…
What truth! I had this same misconception for a job I quit coming up around a year ago - I wasn’t the sole developer for the company - but the sole developer for the organization I was in (not IT but Engineering). I had to come up with standards that only I would have to go by, and it was fun up to a certain point. I really craved interaction with other developers - almost anyone other than the boss (who interestingly enough only managed me).
After quitting, it was offered to continue doing it by contract hour which I am doing at night. Still - I really almost still long for the day when someone actually gets hired (they did hire someone but he quit I don’t think more than a month or so after he started - probably for this exact reason) that I can go over the code I had done that she/he would continue and I would just be assisting on. Well - I doubt that will ever happen since I just don’t see them ever hiring 2 developers.
Looks like I found the perfect contracting setup though!
I seriously dislike working alone on projects, for the sole reason that when the inevitable delays/setbacks happen, you have to take all the heat yourself. With a group, when everyone is late, its much easier to put the blame where it belongs.
Heh. I’m sorry, but every time I see the title “Evangelist” I picture this image:
I don’t suppose you have a really big beard, do you?
I absolutely agree. I greatly prefer working in a small group if only so you can QUICKLY get an answer to:
Have you ever tried to do such-and-such?
There are an awful lot of issues that are impossible to dig out of something like Google or Ask unless you know JUST how to phrase the query.
Thats my story. Being sole developer sometimes just pain in ass. I dedicated whole myself to recent big project, I couldn’t fuck up. I worked at home to meet deadline, I managed to do this, but still it hurts.
Looking forward to find teamwork job, but now I get used to be lone wolf. In software development, in life. Thats not very effective way of doing things, so I decided to build social skills.
For now - thats picking up girls for me. It has nothing to do with coding, but it builds communicational skills.
Technical skills are great, but social skills are more valuable.
So make a decision: reverse your introverted self to the world: become extrovert.
One of the very few advantages of working alone is that when one is motivated, he can try things out all the time and learn from them all the time as well. It has been my personal experience, anyway.
In part, I think working alone is a bit similar to the guy who is working on his PhD, and in both cases one ends up becoming a crude expert at what he has chosen to study.
When you need to convince others to join you and when your work output becomes a responsibility as in “maintenance”, you might not go as deep as you could have otherwise.
Many folks have their sole moments when they might create what thousands or more people will use as soon as it’s released. Of course, months by yourself is better than years by yourself.
And while working with others might bring a lot of inspiration, it’s quite rarer to be able to use that inspiration in your actual job. Sometimes, folks would rather you left your inspiration at home so you kept your “focus on the job at hand”.
It seems like your last two blogs were taken from the pages of my life. I’m definitely on an island by myself right now.
I’m working on a side project by myself right now. That’s in addition to my full-time job. I never thought it would be so hard to work 8 hours and then find the motivation to work on my side project at home. It would be a lot easier if I wasn’t the only one coding, but then I wouldn’t get as much money.
I think I might have to decline the next side project until I can find someone willing to split the workload with me. It’s great to do freelance projects when you don’t have a full-time job but it really sucks the life out of when you do. I haven’t had a day off in 3 months and it’s starting to stress me out.
Just curious why you chose this topic to comment on, since I was under the impression that you were part of a development team.
What brought this subject up?
I’m so glad there is someone else out there that has felt and knows my pain. I worked as a developer of one for a small company for almost 2 years. Initially, it was very cool as the company was a startup and it was a chance to be in on the groundfloor type of stuff. Then as time dragged on, so did the work, the b.s. built up, I had no one to bounce design ideas off of, no one to ask about bugs, it just sucked. It was the suckiest suck that ever sucked. It just plain sucked. I’m convinced its how I got ulcers. Thank you for hearing about my plight.
This could be true in business, but in school it’s a recipe for Evil, like teachers assigning a totally incompetent student to work with me. He was in his 11th year of a 4 year education and with good reason. I still ended up doing it by myself and having to make him look busy. Then you have your teams of 8 people with 5 total slackers that later accuse you of not involving them with the project.
I’d hope there are more motivated programmers and less dumb unmotivated slackers out there in Real Business than here in kindergarten university, but I think I’m already too cynical for hope. Who can you trust?