The Artima Developer Community
Sponsored Link

Weblogs Forum
Programming as Typing

57 replies on 4 pages. Most recent reply: Jul 12, 2006 3:20 PM by James Watson

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 57 replies on 4 pages [ « | 1 2 3 4 | » ]
Vincent O'Sullivan

Posts: 724
Nickname: vincent
Registered: Nov, 2002

Re: Programming as Typing Posted: Jul 7, 2006 5:32 AM
Reply to this message Reply
Advertisement
Ah, I see made a right hash of reading what you've written and that we're in pretty much total agreement. Sorry.

(I'll get my coat.)

Santosh Dawara

Posts: 1
Nickname: sdawara
Registered: Nov, 2005

Re: Programming as Typing Posted: Jul 7, 2006 8:02 AM
Reply to this message Reply
Dear Bruce, I enjoy reading your blog, been reading your assorted works since 2000.

> From this follows the
> logical ideas that coding is typing, so you want to see
> people typing all the time, and that 10 people can type
> faster than one person so if you can hire ten Indians
> cheaper than one US programmer, you're going to get a lot
> more typing done, so you'll get big economic leverage.
>
> In reality, study after study indicates that success
> comes from who you hire. This suggests that programming is
> not a mass-production activity where programmers are
> replaceable components.

I am not sure if I should be offended or not by the paragraph above being primarily an Indian (programmer) working with my own development team in India. I do realize your gunning for executives who export work overseas purely because it is cheaper. But not all do so with the expectations of simply hiring more typists. I can attest that it is possible to hire competitive programmers who reside in India for less, to gain leverage.

Apart from that - thank you for your post. It validates my thoughts that good programmers are more valuable than just adding pairs of hands and eyes.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Programming as Typing Posted: Jul 7, 2006 8:52 AM
Reply to this message Reply
> I am not sure if I should be offended or not by the
> paragraph above being primarily an Indian (programmer)
> working with my own development team in India. I do
> realize your gunning for executives who export work
> overseas purely because it is cheaper. But not all do so
> with the expectations of simply hiring more typists. I can
> attest that it is possible to hire competitive programmers
> who reside in India for less, to gain leverage.

I have worked closely with some Indian developers for whom I have great respect. I have also worked with Indian developers who were awful. I haved worked closely with some American-born developers for whom I have great respect. I have also worked with American-born developers who were awful.

My hypothesis: There are good developers and bad developers and good developers are hard to come by no matter where you look. Like poker hands, the better the developer, the less likely you'll end-up with him or her.

I think Bruce's point is that having a good developer is a lot more important than having a cheap developer. If you have good developers, it's crazy to trade them for developers of unknown quality. This is precisely what a lot of organizations are doing when they outsource (note that I did not write 'offshore': there is a distinction) regardless of their claims.

In any event, from what I hear from my Indian cohorts, good developers aren't quite as cheap in India as they used to be.

piglet

Posts: 63
Nickname: piglet
Registered: Dec, 2005

Re: Programming as Typing Posted: Jul 7, 2006 10:21 AM
Reply to this message Reply
However you may be greeted with dogma and denial if you suggest that there should be experiments which demonstrate the effectiveness of Agile.
http://groups.google.com/group/comp.software.extreme-programming/msg/3e2dbddfe3ec9416

They are talking about "Misstating the Evidence for Agile and Iterative Development."
http://www.xprogramming.com/xpmag/misstatingtheevidence.htm


Good point, Isaac! Thanks.

piglet

Posts: 63
Nickname: piglet
Registered: Dec, 2005

Re: The Newtonian Moment Posted: Jul 7, 2006 10:31 AM
Reply to this message Reply
"Back to a kids' science project: studying gravity, and repeating Galileo's experiment. Kids (this time about 10-11 years old I believe) climb a garage and attempt to measure with a stopwatch how long various objects take to fall. One girl comes up with the big idea: drop two objects simultaneously, which makes comparison much simpler. Kids are scientists!"

Unless that experiment was carried out in space, those kids should have concluded that the objects don't fall synchronously. But I suspect some grown-ups already told them what outcome to expect. Btw we are all believing a lot of things without ever having seen direct evidence for it, just because they fit into our overall conception of the world.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The Newtonian Moment Posted: Jul 7, 2006 10:47 AM
Reply to this message Reply
> "Back to a kids' science project: studying gravity, and
> repeating Galileo's experiment. Kids (this time about
> 10-11 years old I believe) climb a garage and attempt to
> measure with a stopwatch how long various objects take to
> fall. One girl comes up with the big idea: drop two
> objects simultaneously, which makes comparison much
> simpler. Kids are scientists!"

>
> Unless that experiment was carried out in space, those
> kids should have concluded that the objects don't fall
> synchronously. But I suspect some grown-ups already told
> them what outcome to expect. Btw we are all believing a
> lot of things without ever having seen direct evidence for
> it, just because they fit into our overall conception of
> the world.

If the Objects are fairly dense and round-ish (like your average rock) there's no way they could possibly detect the effect of wind resistance over the span of the height of a garage as they will not reach a significant speed in relation to their terminal velocities.

However, the reality is that with respect to the earth, the Objects fall at a different rate when dropped separately than when dropped simultaneously because the earth is attracted to the Object being dropped and this attraction increases as the Object nears comes closer to center of the earth. Of course this effects is even less detectable than wind-resistance in the given experiment. In any event dropping the objects together isn't really valid as it assumes that dropping them together doesn't affect the result. IIRC the whole story that Galileo did this from the Tower of Pisa is a myth. His experiments were conducted with ramps and rolling balls separately.

On the other hand, they are just kids and the point is to make this stuff fun.

Bruce Eckel

Posts: 875
Nickname: beckel
Registered: Jun, 2003

Re: Programming as Typing Posted: Jul 7, 2006 3:47 PM
Reply to this message Reply
> I am not sure if I should be offended or not by the
> paragraph above being primarily an Indian (programmer)
> working with my own development team in India. I do
> realize your gunning for executives who export work
> overseas purely because it is cheaper. But not all do so
> with the expectations of simply hiring more typists. I can
> attest that it is possible to hire competitive programmers
> who reside in India for less, to gain leverage.

Offshoring would have been a better way to put it -- India is just the most publicized example of offshoring. I also have worked with very intelligent and thoughtful Indian programmers. One of these programmers explained the whole situation to me, how because of the former socialistic approach the educational system produced far more programmers than the socialist economy could consume. And how when this shifted, there were people with advanced degrees driving cabs who were ready to go to work in the field that they had been educated in. But as the Indian economy has heated up, these individuals have pretty much been absorbed and so now wages are going up, so the financial advantage is lessening. At some point, the only incentive to hire particular Indian programmers will be that they will be the best fit for the job.

The real issue is the continuing hope by non-programmer managers that programmers can be treated as interchangeable parts, and that if you can get more people spewing out code faster, you'll produce products faster.

I have since thought of an even better analogy than writing novels, which should have been obvious since I've acted in a number of plays recently and because programming is more often a team activity. One difficult person in a cast can easily screw everything up. And choosing cast and crew must be done with care, selecting each person for the way their skills fit with the need. Actors are not interchangeable; you must get the right ones to do the job.

Jeff Ratcliff

Posts: 242
Nickname: jr1
Registered: Feb, 2006

Re: Programming as Typing Posted: Jul 7, 2006 5:05 PM
Reply to this message Reply
Isaac, I found "Misstating the Evidence for Agile and Iterative Development" and the discussion of it very interesting.

I don't know why some people believe that if it's challenging to come up with real evidence for their ideas we should accept them without any.

I think the problem you're facing is that you are approaching these issues scientifically, but the proponents of methodologies such as CMM and Agile are not.

These days all methodologies are products, they are not the answer to a scientific inquiry. There's a lot of money invested in these methodologies and a lot of money to be made promoting and teaching them as well.

When you look at it this way, it's not surprising that you can't get any acknowledgement of the flaws that the book contains. From the proponents point of view, all that matters is that the book has the potential to enlarge the market for Agile methods. If it does that, it's served its purpose.

You wouldn't expect Pepsi to acknowledge the scientific flaws in the Pepsi Challenge, would you?

To paraphrase "The Princess Bride": Developing software is pain. Anyone who says differently is selling something.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Programming as Typing Posted: Jul 7, 2006 5:22 PM
Reply to this message Reply
> I don't know why some people believe that if it's
> challenging to come up with real evidence for their ideas
> we should accept them without any.
>
> I think the problem you're facing is that you are
> approaching these issues scientifically, but the
> proponents of methodologies such as CMM and Agile are not.

Is it really fair to pick on Agile here? I've never seen anyone provide any scientific evidence for the success of any development model. It's all anecdotal as far as I can tell.

Recalling a previous discussion we had, didn't we kind of conclude that finding meaningful empirical standards for software is a bit of a sticky wicket?

Jeff Ratcliff

Posts: 242
Nickname: jr1
Registered: Feb, 2006

Re: Programming as Typing Posted: Jul 7, 2006 5:48 PM
Reply to this message Reply
> Is it really fair to pick on Agile here? I've never seen
> anyone provide any scientific evidence for the success of
> any development model. It's all anecdotal as far as I can
> tell.

I agree. That's why I included CMM as well. Agile comes up specifically because the incident in question concerned a book about it. I'm sure we could find holes in the evidence of other methodologies as well.

The only thing about Agile that makes it a slightly easier target is that some Agile practices are counter-intuitive, such as pair-programming (I consider XP to be in the Agile category). When an idea seems to go against our collective experience the need for convincing proof is even greater IMHO.

Isaac Gouy

Posts: 527
Nickname: igouy
Registered: Jul, 2003

Re: Programming as Typing Posted: Jul 7, 2006 5:51 PM
Reply to this message Reply
Jeff Ratcliff wrote
> > I think the problem you're facing is that you are
> > approaching these issues scientifically, but the
> > proponents of methodologies such as CMM and Agile are
> > not.

James Watson wrote
> Is it really fair to pick on Agile here? I've never seen
> anyone provide any scientific evidence for the success of
> any development model. It's all anecdotal as far as I can
> tell.

Ummm it doesn't seem like Jeff Ratcliff did "pick on Agile" - he gave CMM as an example as well as Agile.

Jeff Ratcliff

Posts: 242
Nickname: jr1
Registered: Feb, 2006

Re: Programming as Typing Posted: Jul 7, 2006 6:26 PM
Reply to this message Reply
To be balanced, I should have pointed out that at least Agile has detailed practices. CMM is often rather vague which makes it harder to criticise.

Bruce Eckel

Posts: 875
Nickname: beckel
Registered: Jun, 2003

Re: Programming as Typing Posted: Jul 7, 2006 7:07 PM
Reply to this message Reply
> Isaac, I found "Misstating the Evidence for Agile and
> Iterative Development" and the discussion of it very
> interesting.

The whole thread was fascinating. I especially liked the Feynman quote.

I also found Craig's admission that he had written a lot of the book or the chapter while he was on the road to be interesting. I have run the gauntlet of book publishing over the years, and I know that publishers put a lot of effort into trying to control the author and the schedule, and put great pressure on the author to stick to the schedule (which is usually arbitrary). Only by totally digging my heels in, and basically saying "I'll call you when the book is done, don't bother me until then," was I able to establish my own (mostly) freedom and decide if and when a book is done. Most authors don't know they have this option, because publishers don't want them to think this way. However, I feel that this is the very moment when my books went from "functional" to "pretty good."

The pressure to produce and the relatively small amount you get from the actual advance and book sales make it easy to say that it's not really worth putting all this time in. In my case, if I decide something isn't worth putting the time in, I don't do it. But ordinarily, if an author were to say that a particular chapter would take too long to do right, so it's not worth doing it, the publisher would moan and wail about how critical it is, etc. As Weinberg says, "things are the way they are because they got that way, one logical step at a time." So an author has committed to writing a chapter in a certain period of time and it's basically impossible, so what gives? The quality of the chapter.

I'm not defending Larman. I tend to come down on Issac's side of the fence on this one. For example, when I open a programming book and immediately find an error in a code listing, it taints the whole book for me, and this is why I put so much effort into my code verification system (and even then little errors still slip through!). I understand Ron's argument that the rest of the book could still be valid, but I am then left with the job of figuring out WHICH rest of the book to trust and which other parts of the book succumbed to expedience. I believe that it is the author's job to serve the reader, not to give the reader more work to do -- the reader already has enough work just to understand the main flow of the book, without having to wonder what's right and what might not be.

The real problem is that it takes something like 10x the effort to get a book really, really right. And there are all kinds of pressures -- most notably from the publisher, who has a typical success rate of less than 10% and so easily falls into the attitude of just looking at things statistically, therefore the faster you toss books (they actually call them "titles," as if the stuff inside doesn't really matter) onto the shelves, the quicker you'll get to the successful one. So it's very easy to go awry, and very hard to hold to your own truth. My advice: don't do the project unless you can do it right, holding yourself to your own highest standards.

> To paraphrase "The Princess Bride": Developing software is
> pain. Anyone who says differently is selling something.

I love this. I'm collecting quotes about software development for my next book, which I hope will be very different from anything I or anyone else has done (naturally, I hope that). This one is a definite contender.

That said, I still think that the fundamental shift in thinking that has been successfully put forth by the agile methodologies is the tightening of the feedback loop.

Bruce Eckel

Posts: 875
Nickname: beckel
Registered: Jun, 2003

Re: Programming as Typing Posted: Jul 7, 2006 7:15 PM
Reply to this message Reply
> The only thing about Agile that makes it a slightly easier
> target is that some Agile practices are counter-intuitive,
> such as pair-programming (I consider XP to be in the Agile
> category). When an idea seems to go against our collective
> experience the need for convincing proof is even greater
> IMHO.

But what I think is more insidious -- and the point I was trying to make in the essay -- is when we have a set of beliefs about software development that seem intuitive, and at the same time don't seem to be producing good results. But the apparent intuitive nature of these beliefs make us argue them again and again rather than doing experiments. And I don't mean classic scientific "controlled experiments" here, because I think software development falls under the umbrella of complexity theory. But that doesn't mean that you can't get useful information by trying things, even if you can't establish unequivically that this experiment produced that result. I think it's still worth doing the experiments and observing the outcomes, and I think that's generally how we think about things, because we are always working with incomplete information -- this may be the most amazing ability of the human brain, the ability to draw useful conclusions with incomplete information.

Isaac Gouy

Posts: 527
Nickname: igouy
Registered: Jul, 2003

Re: Programming as Typing Posted: Jul 7, 2006 8:11 PM
Reply to this message Reply
Bruce Eckel wrote
> But what I think is more insidious -- and the point I was
> trying to make in the essay -- is when we have a set of
> beliefs about software development that seem intuitive,
> and at the same time don't seem to be producing good
> results. But the apparent intuitive nature of these
> beliefs make us argue them again and again rather than
> doing experiments.

I'll assume you are using belief to mean a firm opinion rather than religious conviction.

We need to ask the childish question: Why?
Why do you believe that about software development?


> And I don't mean classic scientific "controlled
> experiments" here, because I think software
> development falls under the umbrella of complexity theory.
> But that doesn't mean that you can't get useful
> information by trying things, even if you can't establish
> unequivically that this experiment produced that result.

It just means we have to use statistics.

Based on 29 projects at HP and Agilent
http://www.cc.gatech.edu/classes/AY2005/cs6300_fall/papers/maccormack.pdf

Based on 29 projects at 17 companies
http://www.sloanreview.mit.edu/smr/issue/2001/winter/6/

Flat View: This topic has 57 replies on 4 pages [ « | 1  2  3  4 | » ]
Topic: Programming as Typing Previous Topic   Next Topic Topic: Programmers Shouldn't Touch the Source


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us