SAP & ERP Consulting from the Customer Point of View

SAP implementation ROI, SAP architecture, & SAP business solutions

An SAP ABAP Innovation Revolution Beyond HANA

December 12th, 2011

ABAP Development Revolution

ABAP Development Revolution

Some time back I wrote about Opportunities for INNOVATION SAP, HELLO? At the time I wasn’t really expecting a lot and I’m guessing I didn’t have a lot of influence but I do find it coincidental that many of the suggestions I offered have been adopted. Some of them, like the switched framework to improve order management processing is included in ECC 6.0 EP4.

So, one thing that I have been chewing on for a long time is how to dramatically improve ABAP development and overall application enhancements.  My own requirements were to find a way to make ABAP coding simpler, improve code quality, provide better overall system performance, and make it easier to troubleshoot. Tall order I know. Impossible? No!

Welcome to the “Big Data Revolution”

This post is more about a technical issue which SAP can “easily” address that would completely revolutionize its own internal development as well as external customer development.

The New SAP Development Revolution

I’m not an SAP ABAP coder but over the years I’ve had enough exposure to it to see some great tools, resources and improvements. This development effort has been mostly on the usage side of the existing syntax.

  • What if there was a way to revolutionize the way ABAP is coded that is 100% compatible with current syntax ?
  • What if it dramatically improved coding quality and solution development?
  • What if it improved the performance and consistency of customized ABAP solutions?
  • What if it simplified the entire coding process AND made troubleshooting easier?
  • What if it opened up a whole new world for coders to develop dramatically improved solutions?

You say that sounds crazy? Not only is it possible it would propel SAP’s place in the entire business application space to new levels.

Where Did This Crazy Idea Come From? And WHAT IS IT?

After many years working in SD (along with other modules) I had a client who needed help creating a new “smart” trade promotion execution solution. The solution had to do a LOT of things no standard SAP process handles. It needed to dynamically determine complex offers, with discounts, free goods, limits, caps, quotas, perform dynamic best price processing, provide loyalty points, etc. –, all while dynamically evaluating the customer segment and strata for offer eligibility.   The solution had to be done across a large population of order items, with multiple promotions based on the mix of products and the number of discounts or promotions that had already been given to a customer over time. The mix of products or offers could bundle multiple free goods, multiple offer discounts, or other special items, in a many to many relationship, based on the customer purchase and purchase history.  And performance HAD to be good because of the huge order volume.

The client had been asking for someone to deliver this for some time. A previous system integrator who did their upgrade couldn’t do it. I ended up spending 6 months working on a new custom coded ABAP “mini-module” in SAP that allowed them to achieve their goals by using mostly master data.

That process taught me more about ABAP programming and SAP coding than I ever anticipated. As I went through this process I was amazed at one simple thing that was completely lacking from all of this coding effort –, the amount of “VIRTUAL” SQL syntax for internal data processing in the form of loop, sort, read table (with key), append, move, move corresponding, index, etc.

Why not develop the syntax to handle all of this in the background through “virtual” select statements?  Create a new “iSelect” syntax which performs all of these functions that can be exploded.

SAP already uses internal tables in memory for processing data during the transaction stream.  By creating a new “iSelect” syntax much of this coding, looping, moving, etc., could be masked by fairly common SQL type commands. Since this would be compiled syntax the performance would likely be better and the quality would be FAR better while needing fewer lines of code to accomplish the same thing. For simplicity I will call it “internal SQL” or, iSQL.

This would be the perfect complement to SAP’s HANA in memory processing, and would help with reporting extractor and programming development of all kinds.

This type of iSQL could be developed to allow inner or outer joins on internal tables, external tables, or any combination of them. The normal SQL statements like Select Sum, Select Distinct, etc., etc., etc., could be employed throughout the entire ABAP processing stream. With internal tables in memory as well as the tables read from the database.  Still more interesting would be the ability to “explode the code” underneath this new iSQL syntax. When finer detailed control, processing, or calculations are needed, within or across joins, the underlying loop, sort, append, etc., could be exploded out and adjusted to fit the specific need. This would speed up development efforts by being able to quickly rough-out a data processing framework and then explode the code to make more detailed adjustments.

By focusing on syntax that is like SQL for the internal loops, sorts, reads, sums, append to table, move, etc., the coding complexity is reduced WHILE also providing more flexibility and options. SAP would have greater control over the development of the internal / external table processing standards and programming knowledge around actual data processing would improve.  This would be the perfect complement to SAP’s HANA in memory processing.

It would allow for faster, more reliable coding efforts with a higher performance result. Small performance tweaks or changes to the underlying compiled iSQL statements, along with that ability to explode the underlying code would create a revolution in the ability to more quickly and consistently deliver SAP solutions.

What is most important of all is this could be rolled out piecemeal and stay 100% backward compatible with no negative downstream effects. As new iSQL syntax is developed the original coding standards could remain in place without change. It would just add an additional set of power processing options. Think about all of the areas this would radically affect, custom coding, data conversion, SOA development, report development, function module creation, you name it. This could create HUGE customer benefits for outstanding development.

I’m tired of crappy, poor performance, system choking code from poor development, aren’t you? Come on SAP, YOU CAN DO THIS!!!!

Related Posts:

Where Does SAP Offshore Development Make Sense?

October 10th, 2011

SAP Return on Investment or ROI

SAP Offshore Development Cost

If you are capable of providing detailed design specs where there is almost no deviation or thought required then this is a great option.  The instant your SAP design requires a measure of experience and insight to make judgment calls, or to look for data or processing that is not explicitly spelled out in detail, you are headed for huge hidden costs. 

The level of detailed spec design work by SAP functional consultants merely shifts the development time and costs to the higher priced resources where it is “hidden” from TCO and sales quotes.  If you are capable or writing “functional” specs that are really more like technical specs with specific table and fields spelled out in detail, program pseudo-logic defined, every possible alternative anticipated, and no detail left out then SAP offshore development works well.  If you are not prepared for that level of detail and “perfect specs” then you are likely headed for a much larger invoice in change order costs and hidden functional time than you ever anticipated.

Offshore resources are often smart, industrious, and hardworking but the ugly reality no one talks about are the real rates because these resources do NOT have any significant amount of SAP experience.

This is the final post in this series.

A quick “test” for the SAP outsourcing or SAP offshore fit is the nature of the work.  “Commodity” services are a perfect fit for SAP outsourcing or SAP offshore work. 

If the effort involves any type of innovation, business transformation or needs any level of change management then SAP outsourcing or SAP offshore development may be dangerous and it WILL cost you far more than you are led to believe.

SAP Upgrades Might Support SAP Offshore Development

One area I have seen where SAP offshore development work makes sense is with upgrade projects.  Much of the development work there is re-working existing objects where the requirements from previous projects have been well tested and adjusted.  Or, if there are enhancements the gaps are well-known and understood so that the detailed SAP development requirements can be easily defined.  From this standpoint SAP offshore review and adjustment of existing code makes sense.  There is little in the way of experience needed to use the syntax checker and to do the occasional program adjustment.  And other than poor coding which causes performance problems the risk is lower.

SAP Production Support Might Work With SAP Offshore Development

In a fairly stable production environment, where there are not a lot of enhancement or new functionality requests SAP offshore support might work well.  The “fix” requirements are very specific and limited so that these types of small adjustments or corrections work well in an offshore environment.  Even for some of the smaller and less complicated enhancements or improvements SAP offshore support might work well.  However, for more extensive troubleshooting, or very complex requirements, you are likely better with some sort of local or onsite support. 

For a more details see Outsourcing Your SAP Application Support.  This provides some insight and a little framework for understanding the SAP outsourcing or SAP offshore fit.

Conclusion on SAP Offshore Development

Regardless of the hype and sales pitches SAP Off Shore development has far more Total Cost of Ownership than anyone has been led to believe.  There is a place for it but that is rarely in a new project or an extensive rework of complex processing requirements.  While you may not see the costs, the offshore project model will cost you unless you are fully aware of the requirements and hidden costs that are never defined in any of the sales pitches or materials.  Of course they will never tell you SAP offshore development might cost you far more than higher priced local resources in many situations.  If they had that level of integrity you would never engage with them for those services. 

For more information and insight on this topic see IT Outsourcing, Off Shore Support, Cost Cutting and IT Department Changes.  That post provides some additional insight on helping to understand where SAP internal resources should focus as well as where offshore support might make sense.

Related Posts:

Hidden SAP Offshore Development Costs

October 3rd, 2011
SAP Offshore Development

SAP Offshore Development

My experience with SAP offshore development is that no matter how detailed your spec is their lack of experience with standard SAP transactions and functionality means they will never properly test their own creations.  Their results are more than just full of bugs, often times they crash when attempting to do even basic testing.  Repeat testing by expensive functional resources happens so frequently and consumes so much hidden time from parallel project activities that entire project timelines are frequently affected. 

Functional resources have to babysit and handhold these SAP offshore resources through the whole process because of the language barriers and lack of experience.  More functional time, more project management time, more unplanned distractions from functional Realization activities and your entire project timeline can be wiped out.  If that happens you have to pay even more for a missed development date because you have to move your go-live date.  And that cost is completely hidden from you by some of the shell games they play on their supposed efforts.  All of that functional time and the risks to the project timeline point to some of the real hidden costs of SAP offshore development. Develop, test, bugs, fix, develop, test, bugs, fix, rinse and repeat at least a dozen times.

A common SAP offshore practice is to keep throwing “crap” at you saying it is “done.”  With all of the crashes and bugs that are so common with offshore development, and especially all of the program crashes, how much testing could they have done?  The bigger question is how much is this really costing you and how do you find the hidden costs?

SAP Project Timeline and Budget Due Diligence

Because of the nature and pace of SAP project work whenever the issue of blown budgets and blown timelines come up most companies rarely perform root cause analysis or due diligence.  Instead the accusations and recriminations fly in the heat of the moment.  Meanwhile the offshore developers keep saying “we finished x development on y date… the functional teams didn’t support us…” or “the specs were bad and we had to make 20 changes…”  You name it, the extent of the excuses are never ending.

Evaluating Hidden SAP Offshore Development Costs

Because of how SAP “functional” consultant time (needed to support the offshore development) is hidden from you it never shows up anywhere in the rates you were quoted.  You really have no idea about the real Total Cost of Ownership (TCO) for that offshore SAP development.  The offshore company constantly claims the “specs were not detailed enough” or every microscopic change and adjustment becomes a “change order.”  I’ve even seen this where standard SAP functionality was completely broken by the development and the developers insisted because there was nothing spelled out in the design spec about allowing standard functionality to continue working a change order would have to be separately paid for!

On new SAP implementations the functional time premium can easily cost you 50% to 75% (and in some cases even exceed 100%) of the total development hours.  Think about that for your next quote as you try to put the pen (or your spreadsheet) to the numbers.  Have you really factored in the amount of high priced functional resource time needed to support those “inexpensive” offshore developers?  Between writing “super enhanced” specification documents, repeated endless functional testing of buggy SAP development, “training” of inexperienced developers, language barriers, “babysitting” the actual development, and the lost opportunity to focus on other functional Realization activities can kill any supposed savings.  It’s all a shell game.  You pay just about the same amount (and on many occasions even more) with far more headaches and lower likelihood of making your go-live date.

Even after all of this, there is still one more hidden cost that is not realized immediately at go-live–, the cost of poor coding.  You may have significant performance problems, constant bug fixes, and a whole host of other maintenance activities that you never planned or budgeted for.  Now this is true of any development but because of the language translation issues and the modest (at best) quality of coding you are likely to have incrementally more production maintenance costs with the offshore development.

Some Considerations to Help Reduce The SAP Offshore Development Shell Game

First and foremost NEVER accept the offshore development group’s code review options.  One way you can help to combat so much of this is to budget for at least one local developer, even at premium rates, to serve as a quality checker.  They do not have to review all of the code from all of the developers but they should look for the “tells” of experience over inexperience.  And your SAP statement of work (or SOW) as well as your contract with the offshore developers should include various protections about the quality and expectations of the development work and functional consultant time and contributions.  That SAP SOW should also include some definition around what a “change” is and what a “defect” is.  Without that everything will be considered a “change request” and destroy any supposed savings.

Next week the wrap-up part 3 of this series:  Where Does SAP Offshore Development Make Sense?  There are some situations where it is a great cost saving alternative.

Related Posts: