Rewriting not recommended

50 %
50 %
Information about Rewriting not recommended

Published on December 10, 2008

Author: dhaun



Why you shouldn't rewrite an existing application from the ground up (English version).

Rewritingnot recommended Dirk Haun

Google Summer of Code• Google pays students $4500 to work on Open Source projects• 175 projects involved• Deadline: April 7•

Rewriting ofApplications

Vita• Electronic Cash• PDAs & Smartphones• Service Level Management• Document Conversion• Open Source CMS

Agenda• Motivation• Dont do it!• Remedy• Prevention

Why do we want to rewrite something?• Rational: Problems with the architecture• Irrational: Programmers Ego

Motivation: Architecture• Started out with a clean design• Change requests after initial release➡ Loss of clarity➡ Solution(?): Rewrite!

Motivation: ArchitectureIdeally:• "Nicer" architecture• Easier to maintain• Learned from mistakes

Motivation: Ego• Old code just isnt "sexy"• Having to maintain other peoples code• Personal preferences vs. existing code

Agenda• Motivation• Dont do it!• Remedy• Prevention

Rewriting takes (more) time• What do you ship in the meantime?• Losing customers, market share, and money

How do you avoid a standstill?• Two teams? ‣ Where do all these people come from? ‣ "Moving Target"

How do you avoid a standstill?• Putting the old application in "Maintenance Mode"? ‣ Whats a bug?

Losing details• Reinstating the original functionality ‣ Do you really have everything documented? ‣ Workarounds for real-world problems

No software is an island• Software doesnt exist in a vacuum• Compatibility with 3rd-party applications• Your software as a part of a process

Can it really only get better?• Sometimes there isnt a better solution• Old mistakes ‣ Environment, Time pressure• New mistakes ‣ Learning process

Exceptions?• Change of technology• In-house tools• Refocussing

Agenda• Motivation• Dont do it!• Remedy• Prevention

Personally I believe that somesystems just require some love,and radical refactoring, tobreathe new life into them. -- Tim Penhey

Refactoring• (Re-)Identify modules• Identify problematic areas of the code ‣ Bottlenecks ‣ Cluttered code

Refactoring: Tests• Unit / Component Tests! ‣ For every bug➡ Benefits for current development• Rewrite modules, one after another

Benefits and side-effects• Better understanding of the current system• Better estimates for changes / fixes

Agenda• Motivation• Dont do it!• Abhilfen• Prevention

Specifications?• Better specifications? ‣ Yeah, sure ...• Cant do without them but get away from fully-fledged specifications• Be flexible! ‣ TDD, Agile

Planning is an importantlearning exercise, (...)Plans, on the other hand, areoverrated. -- Mary Poppendieck

Rotting Code• How did that happen? ‣ Pressure, Lack of time? ‣ Incompetence?• Cause study ‣ What can you do about it?

More communication!• Internal (project)• With customers / users• Development ↔ Marketing ↔ Customers

To summarize ...

Risks• Loss of ... ‣ Customers / Market Share / Money ‣ Functionality ‣ 3rd-party applications• repeating old mistakes• new architecture, new mistakes

Remedies• Refactoring instead of Rewriting• Test Driven Development, Agile• Cause studies: ‣ What went wrong the last time?• Improve communication

Resources• Joel on Software (Book and website)• Agile Software Development• Lean Software DevelopmentP.S. Keywords are links.

Credits• Photos via, thanks to: Hopkinsii, striatic, paul goyette, Kazze, adrenalin, ikelee, Auntie P., Regorio, frozenchipmunk, Kevin Labianco, fallsroad, photo.bugz, tim_d, lagiuspo, Nathan James, ladyphoenixx_1999, Grim Reaper With A Lawnmower, re-Verse, amuk2006, Pathfinder Linden, Gigglejuice, manukiPhotos and Flickr usernames are links.

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages


ACCU 2010 Conference. At the ACCU Conference 2010, ... Rewriting not recommended - Why it's not a good idea to rewrite your application from the ground up
Read more

Rewriting not recommended -

Credits • Photos via, thanks to: Hopkinsii, striatic, paul goyette, Kazze, adrenalin, ikelee, Auntie P., Regorio, frozenchipmunk,
Read more

mod_rewrite - Apache HTTP Server

When mod_rewrite is triggered during these ... To disable the logging of rewriting actions it is not recommended to set Filename to /dev/null ...
Read more

URL Rewrite : The Official Microsoft IIS Site

URL Rewrite also supports Failed Request Tracing for enhanced troubleshooting of application logic ... Rewriting within the content of specific HTML tags;
Read more

ScottGu's Blog - Tip/Trick: Url Rewriting with ASP.NET

Is that not recommended for simple rewriting? Corey Roth - Wednesday, ... Any word about the loginstatus control not working with the url rewriting?
Read more

php - CakePHP 2.4.3 URL-Rewriting module not working ...

CakePHP 2.4.3 URL-Rewriting module not working. ... As recommended by another poster on this ... I don't / can't use URL rewriting – wickd Dec 24 '13 at 7:20
Read more

ASP.NET Routing -

ASP.NET routing enables you to use URLs that do not ... setting it to true is not recommended, ... ASP.NET routing differs from URL rewriting.
Read more

Apache URL Rewriting Module: Configuration - TU Dresden

Configuration Directives RewriteEngine ... It does not even update the ... To disable the logging of rewriting actions it is not recommended to set ...
Read more

Rewriting the book on recommended reading - Zone

Rewriting the book on recommended reading He may be a very big fish, ... the fact of the matter is that not many people read a great many books.
Read more