Question

Implementing agile in projects requires the ability to do refactoring. It is not really a must, but code refactoring has proven to be a good engineering practice.

In an agile (Scrum) project on the iSeries platform, which requires development (new code and modifications to legacy code) in RPG, RPG LE, is it possible to implement refactoring? If so what are the techniques to do it?

If someone who has tried it could share their experience or just point to references, I would greatly appreciate it.

Was it helpful?

Solution

Refactoring can be done on a wide variety of languages, whether OO or not. See Refactoring for a discussion on refactoring from a language agnostic point of view.

OTHER TIPS

Just don't try it on the payroll system unless you want to make a lot of people very unhappy all at the same time. Often times, trying to retrofit abstract ideas into 20 years worth of standing code is just an invitation to big trouble. Try it first with something small and new if you can. I would imagine that a fair amount of the code on your iSeries is package software that has been modified. DON'T start there.

This is an old question that keeps resurfacing in many different flavors over the years. Often time it centers around whether you rewrite an old and badly put together program which works but is difficult to maintain. Only you can answer that question but generally it is a good idea to wait until there is a major revision needed and then put in the time and risk to make it better. Don't underplay the risk part of this. There ain't many feelings in professional life worse than trying to put humpty dumpty back together again while under the gun while knowing that you caused it all yourself in the first place.

In the end, really stick to cost/benefit and don't amble into theoretical considerations. Nobody cares about them when critical business functions are not working properly.

There is also this book:

http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672/ref=sr_1_1?ie=UTF8&s=books&qid=1276528002&sr=8-1

Although largely from an OO perspective, it also provides a process that can be applied to any language.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top