An interesting conversation was sparked off by this tweet today:
My response to this was:
if you work in a department that has time to revisit code then somethings wrong, too. I rarely get that opportunity.
To round it all off here was Ethan Jewett’s response:
Disagree. Something is very very right in that case. Question is why it never happens in SAP space.
Within Enterprise Software, one important thing to keep in mind is the purpose of the project you’re working on. A lot of my work focusses on Enhancements and Exits in standard SAP modules, another sizeable chunk is in bespoke SAP developments. Whilst the latter tend to be rightfully graced with more design thinking, Enhancements and Exits are very often “one shots”. A functional consultant and /or myself perform analysis and risk impact, implement the enhancement/exit, develop the business logic and test it. Once the work is done and does the job as intended, everyone is happy.
Bigger fish to fry?
Now, some time down the line the code for this enhancement might become dated. This can happen if syntax, tooling or standards have improved. But unless there is a pressing business reason to change the coding, everything is kept as it is. More than often there are good reasons for this: Additional development overhead, new developments, upgrades and the ever-popular regression testing are only a few things that spring to my mind. A keen developer might look back at his code in anger, but let’s not forget that code stability is also important in business. What if your code might be up to scratch with the latest release, but fails to create the invoices it is intended to do?
Does it mean that ABAP development leads should not -even for smaller enhancements- preach things such as OO-thinking, reusability, peer reviews and unit testing? Far from it. In times of shrinking budgets and shorter implementation times it is even more important to apply more design thinking, improve your dev teams skills base and promote better team communication (because that’s what it often boils down to).