IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Are you a Duct-Tape Programmer?
http://jeremy.zawodn...hives/011337.html
http://www.joelonsof...s/2009/09/23.html

This is the art of knowing when complex code is your enemy.

Wade.

Q:Is it proper to eat cheeseburgers with your fingers?
A:No, the fingers should be eaten separately.
New Yep
New Re: Are you a Duct-Tape Programmer?
That's an awesome read, and reminds me of all of the managers I've been interviewed by in the past half dozen years. Every one of them believed the "Microsoft-think" and wanted these excesses in code from everyone they hired.




"Chicago to my mind was the only place to be. ... I above all liked the city because it was filled with people all a-bustle, and the clatter of hooves and carriages, and with delivery wagons and drays and peddlers and the boom and clank of freight trains. And when those black clouds came sailing in from the west, pouring thunderstorms upon us so that you couldn't hear the cries or curses of humankind, I liked that best of all. Chicago could stand up to the worst God had to offer. I understood why it was built--a place for trade, of course, with railroads and ships and so on, but mostly to give all of us a magnitude of defiance that is not provided by one house on the plains. And the plains is where those storms come from."

-- E.L. Doctorow
New I see this in Java-land.
On the other hand, duct-tape programming is good to make things happen: but it's useful to know how to (later) turn duct-tape into black-boxes. Otherwise, you're just a type of cut-n-paste programmer.

I've also seen programmers who could not understand the concept of 'black-boxing'. I gave them an API that was absurdly simple but did complex 'under-the-hood' things for them with predictable, high-level effects. Because they knew what it was doing, they were expecting to "see the duct-tape".

Wade.

Q:Is it proper to eat cheeseburgers with your fingers?
A:No, the fingers should be eaten separately.
New I see that Joel still has the same effect on me...
He still rubs me the wrong way.

I'm more in line with this guy's take: http://developers.sl...2191&cid=29539983

The linked article is full of colourful metaphors about go-karts and WD-40. Making your argument by metaphor is usually a bad sign - you use them for people who would have trouble understanding the subject if you just stated the case plainly. I hope that's none of us. The article writer seems to see some great division between those who "wield their WD-40 and duct tape elegantly even as their go-kart careens down the hill at a mile a minute" and those who "are still at the starting line arguing over whether to use titanium or some kind of space-age composite material". Well the division between those two groups isn't normally one between two sets of people, but between two environments and resource levels. In an ideal situation, I'll create a rigorous specification and use that as the formal basis for my unit tests and do things by the book. Sometimes I find myself "careening down the hill" because I'm suddenly dumped a big, live system and told "make these vaguely described modifications by yesterday". And I'm the same individual. I'll tell you what I want to see if you're in that latter environment - I want to see someone who understands what corners they are cutting and when to do so and when they can't. Same goes for some of the project management methodologies. You don't have to do things by the letter of the law of Agile development or whatever, but if everyone in the group understands the principles, it can streamline things.

[...]

Some articles are stupid. This is one. It's a load of overblown metaphor and hypotheticals. Ironically enough, it falls into the trap of dealing only in hypothetical and idealised situations that it lambasts some programmers for. Sure - if you're up against a tight deadline and in the midst of a melee of programmers, don't waste two weeks drawing UML diagrams and Gantt charts. But that sort of judgement has nothing to do with not knowing the principles of software design or project management. Banging out a quick website might be a case of shifting images left and right from day to day based on customer feedback. But real programming is most definitely not a "downhill go-kart race". It's about producing maintainable, reliable code that meets the customers' needs. And if you see someone who looks like they're gluing brilliant code together on the fly with "duct tape", you'll probably find they're someone with a lot of experience and who understands the theory well enough that you don't notice them using it. As Ovid said: "Thus by art, is art concealed." In other words - they make it look easy, because they're good.


Cheers,
Scott.
New And playing to his audience
Don't you love at the end where he says the duct-tape guys are the beautiful people of the software world? Sure, let's just describe the bad habits a lot of people are legitimately criticized for, and explain how no, that actually means they're good at it. "Gosh, he really nailed it. It's like he's been watching me at work."
--

Drew
New this guy in acedemia?
But real programming is most definitely not a "downhill go-kart race". It's about producing maintainable, reliable code that meets the customers' needs.
hasnt looked under the hood of a LOT of shipping products
New Yabbut, he's started a discussion.
And *that's* really the more important point. I don't completely agree with him, either, I like your quoted post better. Programming is indeed an artform and many people don't approach it like that and then wonder why things tend to go pear-shaped.

Having thought about it for a few days I think "Duct-tape programming" is misleading. A better term would be "Lego programming". A good programmer knows how to build blocks in his work that are easy to re-use and have nice, neat abstraction boundaries. He also knows how to fit blocks together to get things done. Sure, some programming duct-tape might appear, but this is almost entirely in the glue logic. If it needs to happen elsewhere, a good programmer will tend to black-box it in a better way.

Lastly, a good programmer knows to code in the design phase, because effective programming is not a waterfall, but a spiral. Joel's article is actually attacking non-programmers who are still stuck in the waterfall development model. "Duct-tape programmers" are *one* antithesis of that, but if you aren't careful, you get a "copy-n-paste programmer" which is also bad, but for a different reason.

Wade.

Q:Is it proper to eat cheeseburgers with your fingers?
A:No, the fingers should be eaten separately.
     Are you a Duct-Tape Programmer? - (static) - (7)
         Yep -NT - (jbrabeck)
         Re: Are you a Duct-Tape Programmer? - (lincoln) - (1)
             I see this in Java-land. - (static)
         I see that Joel still has the same effect on me... - (Another Scott) - (3)
             And playing to his audience - (drook)
             this guy in acedemia? - (boxley)
             Yabbut, he's started a discussion. - (static)

Well, after thinking it over for a few hours, the toilet decided to work.
61 ms