Fog Creek Software
Discussion Board

waiting for distributed dev

Looking at the old outsourcing debate, I thought about a recent experience where I worked with a pal across an ocean on a tiny util, and even that failed.

Basically, he wanted a "not" operation on a directory tree, and thought I might be interested in coding it.  Simple, but he used more words than this, and I didn't get the "not" part, and sent him the wrong thing.  Now, I know this guy down to his perversities (not particularly perverse), and still it was really easy to get a "not" lost in the communication.

In real life, we'd have exchanged a few sentences, maybe he'd show me something, and I would've winnowed down his spec to something really easy to implement.

IM is also frustrating.  Diagnosing a problem over IM is an exercise in typing.  Phones can be used, but weren't phones supposed to be a problem in productive work environments? 

Many big opensource projects buy hotel rooms so people can productively hack together.

I think a number of things are needed before this can work, short of VR.  Broadband for vnc and broadcasted audio, tablet pcs for sharing diagrams...  Am I getting the wrong impression from limited distributed dev experience? 

Thursday, May 15, 2003

"Am I getting the wrong impression from limited distributed dev experience?"

No, you're not.  I personally couldn't live without my whiteboard.  I've yet to find a reasonable substitute.

Thursday, May 15, 2003

I think your experiences are not uncommon. Distributed development does take some getting used to.
But as you yourself remark, the technology is getting better and better.
Basically we already have the tech to give you a large window on your desk wall that looks out into the next office, only the office is not the next cubicle, but located on the other side of the continent. You share screens share whiteboards etc. It is not exactly 100% as "being there" but maybe close enough?
Right now this is a very expensive setup, but prices for these things are plunging as we type.

Just me (Sir to you)
Thursday, May 15, 2003

If you don't strive to communicate your specification, you probably never had to share specs. You are always juggling between too little spec detail verses too little time to share. But if you've been burn by project delay due to reimplementation or lack of specs enough time (most of us have).. you'll learn to take that time. Code Complete from Microsoft Press talks about this.

Li-fan Chen
Thursday, May 15, 2003

I think this is where the heavy weight methodologies and UML comes in.  They seek to provide a formal process for describing the program in its smallest detail so that the writing of code is a creativity free, methodical process that can't possibly go wrong.

I think this is where the out-sourcers just don't get it.  They're applying non-programming logic to the problem.

In one of his articles Joel says that a software house is a factory that converts cash, through developers time, into code.

The decision makers look at it this way, and they apply the logic of physical construction to the problem.

"All we're doing here is making stuff," they say to themselves, "this is just like with trainers.  We can save lots of money by getting poor people in developing countries to do all the grunt work for peanuts."  They then do that 'kerching' motion they always do.
Of course, they just don't get it.  Just as the fail to see the exactly what the programmers don't on the 4th floor are really doing, they sell short the highly skilled developers in India or Eastern Europe.

They don't realise that if a problem is sufficiently understood so that it can be expressed using a high level notation and then converted to code using a creativity free, methodical process then you don't need to send the specs halfway across the world.  You just write yourself a program that does the conversion on your desktop.

Ged Byrne
Thursday, May 15, 2003

I can be impatient when using instant messaging: if someone wants to write to me, I sometimes prefer that they sit down and compose a proper email.

Speaking as a developer, I didn't expect that all my clients can write specifications that I find unambiguous; if they can't, then after a "chat" (by phone or instant messaging) my next step is to formalise the requirements: write down my understanding of the requirements, and email them for review.

Broadband helps. Supporting a site on the other side of the world, I used pcAnywhere extensively (to remote-control their computers, see what they're doing, get their log files, upload new software); I also used the telephone whenever necessary. Given an adequate internet, it's also possible to save on telephone costs by using audio-capable software like Netmeeting.

"Telephones being a problem in a productive work environment" ... are you talking about your voice disturbing your neighbours in nearby cubicles, or about your being interrupted by incoming calls? Incoming calls from a customer are a good thing, not a bad thing: an important and welcome "interruption". In any case I use a cell phone with a hands-free earpiece and throat microphone ... which leaves my hands free to type, and/or I can move away from my neighbours to somewhere quiet and private, and in any case the conversation will be quieter than if I were using a "speakerphone" (I would use a speakerphone only if there were more than one person at my site, talking with another party).

Getting back to my "impatient with instant messaging" problem, in my experience almost everyone types more slowly than they talk. If there are more than two sites, occasional voice conferance calls are more productive (I won't say cheaper) than instant messaging and emails. As a developer, I haven't yet seen a need for video conferencing.

Fundamental to the process is knowing what must be shared (defining the work, and deciding how to partition it and integrate it), and what work can be done by each site individually.

Christopher Wells
Thursday, May 15, 2003

telephone = bad????

no, interruption = bad. (though sometimes it's nice to be interrupted). and most people treat all phone calls as a high-pri interrupt.

so if a phone call is the way to go for something, say "let's talk at 12:30" via email or chat or whatever. then pick up the phone and talk.

Thursday, May 15, 2003

My daughter's First School now has electronic whiteboards in every classroom and the main hall.  Right now the teachers are just discovering the kinds of things it means.  (It also means the blinds have to be down so they're starved of natural sunlight now).

What's certainly true is that the kids are all over it like a rash,  I'm waiting to hear that they've worked out themselves how to conference to other kids in other schools.

Simon Lucy
Friday, May 16, 2003

"They don't realise that if a problem is sufficiently understood so that it can be expressed using a high level notation and then converted to code using a creativity free, methodical process then you don't need to send the specs halfway across the world."

Exactly. I've seen specs that had to be filled with so much ridiculous detail so the programmers in India will get it right, that it could be easily converted into a working program by a $10/hr computer science college student. In the time taken to write such a detailed spec, the designer could have written a higher-level spec and coded it themselves.

It all boils down to bandwagon jumping and how managers are rewarded.  If they get a bonus for sending $X worth of work overseas, that is what they will do even if the ultimate reality is that it costs the company more to do so.  If everybody else in the industry is doing it, they'll do it too regardless of whether it makes sense in the short or long run. Just like Lemmings.

T. Norman
Tuesday, May 20, 2003

*  Recent Topics

*  Fog Creek Home