I guess that you know that I am writing a business novel, just like Goldratt's "The Goal", but about software development. After 3 years working part time I am nearing the end of the book. I'm writing this note to ask for your suggestions for solving one problem in my book. It's in an area where I don't have specific experience and I'd value some concrete suggestions. In fact, Steve the main character in my book will also seek help from his "virtual network" (cringe) like I'm doing now. This is one of the book's "lessons" - that there's no point reinventing the wheel when almost all problems have already been solved.
So here's the (draft version of the) note which Steve, the book's hero, sends out:
"Hi everyone,
Can you help?
I need to replace or clean up a very old legacy system which has is on its last legs - it is called "CORETRAN".. The CORETRAN code is extremely hard to work with and each change is very time consuming. Nearly every new project and perhaps 50% of my change requests require some CORETRAN changes and the CORETRAN team has a huge backlog of work. The CORETRAN team contains some of my most skilled and most experienced developers - mostly because they're the only folks who can safely work with the system. That said, no one wants to work on the CORETRAN team because it is old boring code, and once you're in the team, it is very hard to get out again ...
I do have some things going for me. My most senior designer - a chap called Ron - has been working on CORETRAN for years and has designed a replacement system, including the work we'd need to do to achieve the replacement.
My problem is that his solution would require us to stop all other work on the CORETRAN system for between 12 and 18 months (we think), which our "business" would never tolerate since it would stop almost all of our new projects.
Can you help me? Have you ever achieved such a transformation? Have you tried and failed? I'd appreciate any advice you can give me ...
Yours, Steve Abernethy, BigFin."
Steve has, by the time he sends this email, already discovered iterative/incremental development.
Any suggestions - especially if you've got some concrete experience or could point me to someone who has - would be very useful! In return I'll name a character after you :)
Can you help?