Comments

Building roads versus building skyscrapers

What do you do for a living? If you answered "I am a programmer", or , "I am an application designer" or "I am an IT architect" or "I am an engineer" or "I am a tester" I would reply "Me too." How odd. How can I be all of those things? You are thinking the same thing I suspect. Maybe you too do all of the above too - and more? How odd!

View full article »
Chatter

Metaphors between

Metaphors between engineering in its traditional forms and software engineering are often used to argue for or against the maturity of the industry. I agree that we don't have the several hundred years of experience that went into the development of civil engineering practices, and even the civil engineers are occasionally defeated by "the user". The recent levee failures in the USA as a result of flooding weren't engineering failures: the flood levels were simply higher than their design could cope with. The user, presumably, decided that the cost of handling a "hundred-year event" flood too high.

Given the parallels and your comments however, I'd be interested to know what you think of the extreme programming "do the simplest thing that could possibly work" mantra and the shunning of "big up-front design". Extreme programming is a way of maintaining forward progress, but it's less likely to result in engineering standards. In short, everyone might end up with their own individual railway gauge. What's your opinion?

PS: Your blog's extraction of a title from the front of a comment isn't terribly meaningful, in preview at least.
| reply

Steve, My take on extreme

Steve,

My take on extreme programming is that it works best when the participants are the sort of multi-talented folk alluded to in the article. Without the vision that comes with concern for the big picture, extreme programming can be high on activity but low on progress.

Progress requires activity but not all activity leads to progress. Re-factoring is a fantastic tool for keeping code clean and validated as the path to progress is traversed but re-factoring activity of itself, does not guarantee progress.

I once saw a worked example of XP where the author said "every time I do this example, it comes out differently".

The non-determinism of that makes me think "art", not science!

In short, I think XP has some great ideas for making multi-talented developers even more productive. However, in this industry, the bottomless pit of need for multi-talented developers is the key bug that needs to be fixed.

regards,
Sean

| reply

I do hope skyscrapers aren't

I do hope skyscrapers aren't loosely coupled Sean!
| reply

Dave, To heap metaphors on

Dave,
To heap metaphors on metaphors : All metaphors collapse under their own weight eventually :-)

Sean
| reply

There are dependencies from

There are dependencies from top to bottom.
-- snip --
That is fundamentally why motorway building is much more likely to be a "loosely coupled", decomposable activity than skyscraper building.


When it comes to developing large software systems the general architectural (no pun intended ;-) goal is to reduce coupling and dependencies. This is covered in detail by Robert Martin:
http://www.objectmentor.com/resources/articles/granularity.pdf

and on the c2 wiki:
http://c2.com/cgi/wiki?CouplingAndCohesion
| reply

Ger, Absolutely. Loose

Ger,

Absolutely. Loose coupling is desirable in its many forms. (I like the coupling classification given in http://en.wikipedia.org/wiki/Coupling_(computer_science).)
Just as "low load stress" is desirable is physical construction.

The very concept of a skyscraper - existing in Earth's gravity, possessing mass, vertically arranged - limits the degree to which low load stress can be achieved.

It seems to me that some application domains are similar. The very concept of a WYSIWYG word processor (for example) - limits the degree to which its components can be loosely coupled. Contrast it with, say, web searching (for example) - it is obvious that the spidering action can be comprehensively decoupled from the searching action...

regards,
Sean
| reply
Post a reply
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
Free books

Build your tech library with our book giveaways.

Hacking Exposed, Sixth Edition
By Stuart McClure, Joel Scambray, George Kurtz; Published by McGraw-Hill/Osborne

The original Hacking Exposed authors rejoin forces on this tenth anniversary edition to offer completely up-to-date coverage of today's most devastating hacks and how to prevent them. Using their proven methodology, the authors reveal how to locate and patch system vulnerabilities. The book includes new coverage of ISO images, wireless and RFID attacks, Web 2.0 vulnerabilities, anonymous hacking tools, Ubuntu, Windows Server 2008, mobile devices, and more. Enter now!

Featured Sponsor

AISO founders envisioned a Web hosting company that was environmentally friendly. While the company employed energy-efficient innovations like solar panels, its infrastructure produced unacceptable power and cooling requirements. Find out how AISO leveraged AMD technology to overcome their challenge in this case study white paper.

In this whitepaper, Scalar explores the opportunity to change the landscape with respect to mission critical databases built around Oracle. Leveraging technologies such as Linux, high-end commodity processing power and Oracle RAC technology to architect, design, build and maintain database infrastructure that delivers maximum availability, reliability and performance at a fraction of traditional cost.

On a typical day, weather.com, the Web site for The Weather Channel in Atlanta, serves up between 15 million and 20 million page views. But in September 2004, when back-to-back hurricanes ransacked Florida, the peak traffic on one day more than tripled: over 70 million page views by more than 7 million unique visitors. Read the full success story now.

Marketplace