Well, lately I’ve been spending a lot of time on the rework of Rapier. I’m sure you’ve noticed some of my posts in the past. My original baby, Rapier, started as a crazy idea I came up with on a plane ride home from my project in Boston. Rapier started as a BSP application, then when I realized that BSP was a dying technology, I moved to ABAP Web Dynpro. Now, I’m moving to add a ton of new functionality to the application that started it all.
Now, with all of these new ideas, it forces you to revisit what you originally designed, and come at it from a new perspective. While that sounds obvious to any developer, it comes with a price that I’m not sure everyone realizes (I didn’t at the time). When I first converted to Web Dynpro, I left most of the original structure intact, and focused on the web dynpro conversion and understanding that new coding. Now that I’m full blown into version 2 functionality, I’m realizing there are a lot of pieces that could be designed better.
This post is to remind you that a simply adding new functionality comes with a lot of additional work. For example, I’m looking at adding a new product designed around the field service engineer. There is a lot of shared functionality between the 2 products. So that required me to reevaluate all of my tables and classes, so they could easily shared. Suddenly, this meant that all of my tables, classes, etc. needed to be created under a new shared namespace. All of those items then needed to be swapped out of the existing code, etc. Get the picture? simply letting my code be reused, caused a huge chain reaction that took almost a week to reconcile. And all of this wasn’t changing any functionality. Just renaming things.
So, the word of advise for today is to remember that when you redesign, add plenty of time to your schedule. If you choose to do it right, it’s gonna take longer than expected. It’s worth it in the long run, but everything comes with a price.