The Artima Developer Community
Sponsored Link

Java Community News
Programming Alone

6 replies on 1 page. Most recent reply: Jul 16, 2007 7:50 AM by Jiri Goddard

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 6 replies on 1 page
Frank Sommers

Posts: 2642
Nickname: fsommers
Registered: Jan, 2002

Programming Alone Posted: Jul 3, 2007 3:03 PM
Reply to this message Reply
Summary
In a recent blog post, Jeff Atwood discusses some of the problems that can result from a developer working alone, without substantial peer input into his work for long periods of time.
Advertisement

One way enterprises attempt to reduce operating costs is to offer employees the opportunity to work from home. High-speed, reliable broadband connectivity is far cheaper than the expense of maintaining offices, or even cubicles. In addition, the ability to choose one's work hours can result in improved employee productivity.

A potential side-effect of telecommuting, however, is the possibility of not meeting face-to-face with other developers working on the team and on the same code-base, for longer stretches of time. In some situations, a highly effective developer may be appointed as the sole maintainer of fairly large portions of a code base, requiring little, if any, day-to-day input from colleagues and peers. And in the extreme, some smaller businesses or departments employ but a single developer, affording that developer even less chances of getting technical feedback from others.

In a recent blog post, In Programming, One Is The Loneliest Number, Jeff Atwood comments that working alone for longer periods of time has potential hazards:

Working alone is a temptation for many desperate software developers who feel trapped, surrounded by incompetence and mismanagement in the desert of the real. 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...

What good are nifty coding tricks if you can't show them off to anyone? How can you possibly learn the craft without being exposed to other programmers with different ideas, different approaches, and different skillsets? Who will review your code and tell you when there's an easier approach you didn't see? If you're serious about programming, you should demand to work with your peers.

Do you agree with Atwood that working alone is potentially a "debilitating" experience? Or do you prefer calling your own shots even if that means few around you can appreciate your technical opinions? How do you balance working alone for longer periods of time with the need to interact with other developers?


Achilleas Margaritis

Posts: 674
Nickname: achilleas
Registered: Feb, 2005

Re: Programming Alone Posted: Jul 4, 2007 3:00 AM
Reply to this message Reply
If you work from home and others don't, then soon you will be 'forgotten' in some ways, unless your contribution is vital to the business. The working-from-home model is good when everyone works from home.

Mark Thornton

Posts: 275
Nickname: mthornton
Registered: Oct, 2005

Re: Programming Alone Posted: Jul 4, 2007 5:54 AM
Reply to this message Reply
> vital to the business. The working-from-home model is good
> when everyone works from home.
In that case everyone has to use electronic means to interact. When only a few work at home, most interaction occurs directly amongst those at the 'office' and this is not accessible to the remote workers.

Even so, I find that some particularly complex tasks are better done whilst temporarily isolated from the general activity of the office. Whether this is achieved by means of a "Do Not Disturb" sign on the office door (assuming you have one) or by working from home, doesn't matter.

Merriodoc Brandybuck

Posts: 225
Nickname: brandybuck
Registered: Mar, 2003

Re: Programming Alone Posted: Jul 5, 2007 12:02 PM
Reply to this message Reply
>
> <p>What good are nifty coding tricks if you can't show
> them off to anyone? How can you possibly learn the craft
> without being exposed to other programmers with different
> ideas, different approaches, and different skillsets? Who
> will review your code and tell you when there's an easier
> approach you didn't see? If you're serious about
> programming, you should demand to work with your
> peers.</P>
> </blockquote>
>

The funny thing is, most of this stuff I've learned has been from books, magazines, trade journals or online forums such as this one. I am usually then imparting this knowledge on to other folks who don't take the time or effort to do such things. There are very, very few tricks and 'honing my craft' type things I have learned from peers. Maybe I just read more than most people I work with and thus get exposed to these things before other people, but even stuff as old as Duff's device I've shown people relatively recently (within the last 9 months) and they've never seen that before.

Given the constant connectivity that is available one may be able to work alone and still interact reasonably well with other developers. It isn't the same as having them in the same building, but if you are the 'expert' in any or all of the technologies you use in your environment, you are pretty close to being alone anyway. At least, that is my experience.

I certainly don't mind imparting what knowledge and wisdom I've gained over the years, but unless I radically change my field, I've found over the past 5 years that I am coming into contact with fewer and fewer people in my day job that can show me anything I haven't seen already. If I'm hungry for knowledge my time is better spent online at sites like this one, picking up the latest book, hitting a usenet group for a new language I'm interested in or going to a user's group meeting. I can still work alone and do all these things.

Also, the growing plethora of 1 man shops and microISV's out there would put a pretty hard challenge to this notion. I think that there is a subtle yet very great distinction between programming a project or working a job alone and writing software alone in the general sense. I think you can go to your day job and perform very well not being around peers if this is supplemented with your own contact with other developers. If you are totally disconnected from the rest of the software universe, you'll likely be in a world of hurt.

The funny thing is, all the problems posted in http://eddiesguy.blogspot.com/2007/06/creating-my-own-personal-hell.html, which is referenced in the coding horror post, I've experienced in teams of many developers. Maybe these problems are exacerbated when you are a team of one, but I've been on plenty of projects where there was only 1 person that had the required knowledge to complete a certain task and you were dead in the water if they weren't available for whatever reason. People on teams are always late on checkins or getting files delivered. It's not like the people holding you accountable, in the end, have much real teeth to enforce this behavior even if they chose to do so. You don't ever get fired over this thing and maybe you get a 'met expectations' instead of an 'exceeded expectations' on your review and get a 2.9% instead of a 3.2% raise a the end of the year. Yeah, that's worth making sure you hit every unrealistic target date that is set before you.

I've also seen all the issues of impossible schedules, torrents of work, nobody to pick up the slack, etc. on multi-person teams. It sounds like the posters are just in bad environments and a bad environment is completely orthogonal to the number of developers that are on staff. I'm sure most of you would cringe at the working conditions I've got in my current job and there are probably over 100 developers here. I interact with very few of them and when we do, it's usually to play cards at lunch or collectively lament our piss poor situation.

Maybe I'm in the minority, but I really don't think working alone is that big a deal as far as these concerns go. If you are disciplined and given the authority to do so, you can put in a process and have it followed. If you are treated as a glorified typist who can happen to make the computer 'do stuff', well, again, that's a crappy work environment. It'd probably crappy if there were 10 other people there with you. Instead of one of you being pushed beyond the limit and having to deal with stupid decisions there would be 11 of you. You'd at least have somebody to go drinking with at the end of the day, I suppose.

Brunee Brunee

Posts: 1
Nickname: brunee
Registered: Oct, 2006

Re: Programming Alone Posted: Jul 9, 2007 4:13 PM
Reply to this message Reply
You need to be sensible, and balance this requirement.

I work from home one day a week, and I find it extremely productive, and refreshing.

With the right tools, working from home can almost be like working in the office, if not better.

Skype with camera
GotoMeeting for desktop sharing
SVN/VPN/Email access of course.

Infernoz Infernoz

Posts: 6
Nickname: infernoz
Registered: Nov, 2005

Re: Programming Alone Posted: Jul 10, 2007 2:30 PM
Reply to this message Reply
Quite frankley, I'd prefer alone, if possible in an air conditioned office with a door (I wish!), no stinks from smokers breath, noisy, childish or bored people, then maybe I would have less stress so could really concentrate on being more productive. The whole idea of pair programming horrifies me and team coding can actually delay project delivery. I have no need to get my ego stroked by boasting about a new 'trick'.

Jiri Goddard

Posts: 54
Nickname: goddard
Registered: May, 2007

Re: Programming Alone Posted: Jul 16, 2007 7:50 AM
Reply to this message Reply
I think that game developers should have their say on this. It is almost impossible to make something creative and new without the others. There are teams working only "online", but the chance to not have it done (ever) is far greater than in teams working at one place. I have never heard about a game dev. team making AAA titles and cooperating online only.

Flat View: This topic has 6 replies on 1 page
Topic: OpenDS 0.9 Provides Java Implementation of LDAP, DSML Previous Topic   Next Topic Topic: Bear Bibeault on jQuery

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use