Jason Whitehorn

MarshalByRefObject.net
posts - 48, comments - 26, trackbacks - 6

My Links

News

Archives

Post Categories

.NET

Java

Proud Member Of...

XNA

The Design Of Code

UPDATE (12/17/2007): My blog has moved. This post is now located at: http://jason.whitehorn.ws/2007/12/07/The-Design-Of-Code.aspx




Jonathan Starr in a recent post, asked his readers:

"As we software engineers refactor someone else's code [...] at what point is the new application essentially not the same as the legacy application that you improved?"

Software rarely occurs in isolation, especially enterprise software. Often years of business rules, legacy systems, and even unjustified rational guide and shape the applications we work on.

When you are involved in a massive re-engineering of an existing application, you typically work you way piece-wise through the code. It is in this fashion that you systematically rework entire subsystems of the application. During this process we are hardly aware that, despite our best intentions, we are not truly guiding the design of the application. The legacy design is guiding its own redesign.

We often have to shape our ideas to fit into the legacy mold the application presents. This, coupled with the same business needs and environment that shaped the application originally, is precisely why most applications never truly change. The source code may look different, however the differences is purely cosmetic. Much the same as how an adult is still the same person as they were as a child. The adult has a few new behaviors, some they don't perform any more. The adult even looks, walks, and sounds different. But the adult is still the same person they were as a child.

An application can only truly be reborn, when it is clean room re-engineered, as anything short of this would re-introduce the "spirit" of its predecessor.
  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

Print | posted on Friday, December 07, 2007 10:35 PM | Filed Under [ Random ]

Feedback

Gravatar

# re: The Design Of Code

I appreciate your response, and certainly think your view is a valid one.

My question was meant to stimulate conversation... Personally I think that a spectrum of answers are possible.

For instance, if I write a small dll, and you use it in your solution as the first component used, noone would argue that I architected your entire solution. I certainly am due some credit, however.

Also... I think the reason why your response was not captured on my blog is that I checked the moderation option checkbox in the options section of the blog. This feature did not work as I hoped.... It's been unchecked now, and new comments should be captured now...

Thanks again,

Jon
12/8/2007 7:58 PM | Jonathan Starr
Comments have been closed on this topic.

Powered by: