A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.md 2.0KB

4 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. title: The Big Rewrite
  2. url: http://chadfowler.com/2006/12/27/the-big-rewrite.html
  3. hash_url: e1911ccf82335e72f78e6e6328c01cf3
  4. <p>You’ve got an existing, successful software product. You’ve hit<br/>
  5. the ceiling on extensibility and maintainability. Your project platform
  6. is<br/>
  7. inflexible, and your application is a software house of cards that<br/>
  8. can’t support another new feature.</p>
  9. <p>
  10. You’ve seen the videos, the weblog posts and the hype, and
  11. you’ve decided you’re going to re-implement your product in
  12. Rails (or Java, or .NET, or Erlang, etc.).
  13. </p>
  14. <p>
  15. Beware. This is a longer, harder, more failure-prone path than you
  16. expect.
  17. </p>
  18. <p>
  19. Throughout my career in software development, I’ve been involved in
  20. Big Rewrite after Big Rewrite. I suspect it’s because I have an
  21. interest in learning eclectic computer languages, operating systems,
  22. and
  23. development environments. Not being just-a-Java-guy or
  24. just-a-Windows-guy
  25. has led to me becoming a serial rewriter. I’ve been on projects to
  26. replace C, COBOL, PHP, Visual Basic, Perl, PLSQL, VBX (don’t ask!)
  27. and all manner of architectural atrocities with the latest and
  28. greatest
  29. technology of the day.
  30. </p>
  31. <p>
  32. In many cases, these Big Rewrite projects have resulted in unhappy
  33. customers, political battles, missed deadlines, and sometimes complete
  34. failure to deliver. In <em>all</em> cases, the projects were
  35. considerably
  36. harder than the projects’ initiators ever thought they would be.
  37. </p>
  38. <p>
  39. This is not a technology problem. It’s not at all Rails-specific, but
  40. being in the limelight these days, Rails implementations are both very
  41. likely to happen and very risky right now.
  42. </p>
  43. <h2>
  44. Why So Hard?
  45. </h2>
  46. <p>
  47. So, why, in software rewrites, when you’re traversing exclusively
  48. <em>familiar</em> territory are the results so often unpredictable and
  49. negative?
  50. </p>
  51. <p>
  52. For the next week, I’ll post specific reasons I’ve seen things
  53. go wrong. The following is a list which will eventually be made into
  54. links:
  55. </p>
  56. <p>
  57. Stay tuned.
  58. </p>