How To Deal With 200k Lines of Spaghetti Code 236
An anonymous reader writes "An article at Ars recaps a discussion from Stack Exchange about a software engineer who had the misfortune to inherit 200k lines of 'spaghetti code' cobbled together over the course of 10-20 years. A lengthy and detailed response walks through how best to proceed at development triage in the face of limited time and developer-power. From the article: 'Rigidity is (often) good. This is a controversial opinion, as rigidity is often seen as a force working against you. It's true for some phases of some projects. But once you see it as a structural support, a framework that takes away the guesswork, it greatly reduces the amount of wasted time and effort. Make it work for you, not against you. Rigidity = Process / Procedure. Software development needs good processes and procedures for exactly the same reasons that chemical plants or factories have manuals, procedures, drills, and emergency guidelines: preventing bad outcomes, increasing predictability, maximizing productivity... Rigidity comes in moderation, though!'"
Re:stackexchange. (Score:4, Informative)
I knew I read this before:
http://programmers.stackexchange.com/questions/155488/ive-inherited-200k-lines-of-spaghetti-code-what-now [stackexchange.com]
That article is linked in the first sentence of the summary.
Re:...no (Score:5, Informative)
A break-fix policy is simply stating you will support code to fix any breaks in functionality, while denying any enhancement requests. In short, the only changes you make to the old code would be to fix production issues.
It lets you focus efforts on implementing new code while avoiding supporting enhancements on the old code.
Re:in my experience... (Score:2, Informative)
Usually when the inxperienced programmer does the rewrite, "initial results are promising".
That is, it is possible to quickly build a basic framework with badly designed error handling and
only part of the requested features.
When it is tested in real life, lots of omissions and problems are found.
Once these are fixed, the result is as messy and unstructured as the initial system was before
it was rewritten.
Re:...no (Score:5, Informative)
G2 is being called virtually obsolete. I looked up G2 in Wilipedia comparison of programming languages http://en.wikipedia.org/wiki/Comparison_of_programming_languages [wikipedia.org] and it is listed as:
Language: G2
Intended use: Application, inference, expert system
Paradigms: common graphical development and runtime environment, event-driven, imperative, object-oriented
Plus the search on G2 shows there is a G2++. So what does obsolete mean to those calling it obsolete?
btw, I'm an RPG programmer and I've been writing tons of new business software every day for the last 23 years, the whole time the language has been declared obsolete.
Now get off my lawn.
Re:...no (Score:4, Informative)
Isnt this how Netscape died?
According to Joel Spolsky [joelonsoftware.com]...