News for hackers. Stuff that matters.
Re:"Planning" is highly overrated. The best performers seesa... by DanielBMarkham on Wednesday October 03, 2007 @08:28AM (#62557)
Wow. I like this article a lot. I think it captures the essence of what we're all talking about.

Having said that, it's not a one-size-fits-all kind of deal. I certainly wouldn't want my brain surgeon saying "Hey. Let's just cut this schmuck's head open and see what we get, okay? Where's that can opener?"

A startup looking for user desires and aligning them with economics is a simple system. Act more and plan less to do it right. Brain surgery, creating the space shuttle code, or integrating all of GE's client software is not a simple system. Here's the kicker: some of these are complex because of the underlying nature of the problem (brain surgery) and some are complex because of the underlying nature of the _people_ (GE). Still, the end is the same. No amount of fast prototyping and "users love me" is going to fly in a complex environment. Now you might invent it and sell it to GE, but that's a different story. Simple environments mean you have to plan to answer simple questions, like "am I making something that users want?". Complex environments mean you have to plan to answer all kinds of other questions, like "How do I communicate what we're doing to 30 important stakeholders, some of whom may not like our project?" BTW, I hate complex environments.

So yes, by all means make something quickly and adapt. But know when that strategy works and when it doesn't.

Re:"Planning" is highly overrated. The best performers seesa... by imgabe on Wednesday October 03, 2007 @11:25AM (#62608)
It is a one size fits all kind of deal. You just have to try putting it on the right appendage. The difference here is that surgery is a service and software is a product. I think that basically they're the same. You "develop" a service the same way you would develop a product. You practice. In effect, practice is the iterative design of a service, just like rapid prototyping is the iterative design of a product.

Now, the surgeon can't just crack open your head and see what happens, but before he ever does that he's going to have practiced cracking open heads and mucking about with them somewhere (probably on a cadaver). He's probably going to have made some mistakes doing it too, and learned from them the right way to go about cutting up people's brains.

Likewise, you don't just ship the first piece of software you scribble out and see what happens either. Now, certainly with a web 2.0 AJAX calendar-organizer-automated-fish-feeder there's a greater margin for error than brain surgery, but it's a difference in degree, not in kind. If you launch a site that just returns "Internal Server Error" when someone surfs to it, you're going to be about as successful as a brain surgeon who never learned how to handle a scalpel.

So the surgeon cutting up a cadaver seems to me to be the same as a programmer blasting out a broken version 1.0 of his software. They're both trying something out in a situation where they can fix mistakes and reincorporate them to product. The surgeon makes a cut, looks to see if it's in the right place and is the right size, if not he keeps trying until he gets it right. When he can make the right cut every time without thinking about it, his service of cutting people is finished being developed. Likewise, the programmer writes some code, and checks if it produces the right output. If not, he tweaks the code until it does. Same thing. You can't compare a finished version of one product (performing brain surgery) to the development process of another product (writing software).

Re:"Planning" is highly overrated. The best performers seesa... by geebee on Friday October 05, 2007 @01:30PM (#63674)
Oh yeah, his won't work for all fields. Iterative development is excellent in software because the cost of construction (ie., running the code) is nearly zero. You can let constant feedback from application guide where you are going.

This is why interviewers like to ask about languages that aren't in the corporate playbook. If someone says "Ruby? Python? Lisp? No, I haven't had the opportunity to use any of those yet," you know you can pass. Not because all good programmers use ruby, python, and lisp, but because all good programmers know that you don't need to "have the opportunity", you just need to install the language and write some code.

It would be unconscionable to learn brain surgery this way, so if someone says "I haven't had the opportunity to operate on a brain yet," that's a reasonable statement.

I actually suspect that writing software is one of the most complicated things a person can do. If we didn't have the advantage of iterative development with cheap compile cycles (or run cycles, if you don't compile), then no system of any real complexity could be built.

Re:"Planning" is highly overrated. The best performers seesa... by davidw on Wednesday October 03, 2007 @08:34AM (#62559)
Actually, I would bet that brain surgery is difficult, rather than particularly complex. Indeed, your scope for action is probably pretty limited compared with writing a huge program.

And... brain surgeons probably practice (start doing) on animals or something else before trying it on people. At least I hope they do.

Re:"Planning" is highly overrated. The best performers seesa... by DanielBMarkham on Wednesday October 03, 2007 @08:40AM (#62561)
I've always heard the brain was the most complex thing that we know about. And I've always heard that brain surgeons spend a considerable amount of time planning some operations due to the complexity involved (although I am sure not all operations).
Re:"Planning" is highly overrated. The best performers seesa... by davidw on Wednesday October 03, 2007 @08:59AM (#62565)
The brain being incredibly complex is probably right, but my guess is that our ability to slice and dice it in beneficial ways is probably much more limited.

Still though, yes, in some activities you must do your utmost to get it right the first time.

Re:"Planning" is highly overrated. The best performers seesa... by DanielBMarkham on Wednesday October 03, 2007 @09:05AM (#62569)
It's also not an either-or choice. Sometimes you can plan to do two weeks of work, then observe, then do it again.

I think it's a mistake to view the spectrum as only having two spots, total planning and completely inductive. Learning how to mix and match is probably a better skill than blindly following either extreme, imo.