This is a very interest blog entry from Mark Lucovsky here about shipping software. He was one of the original DEC engineers that defected to MS, where he was responsible for significant chunks of NT, and other developments on that code base. (OS Engineers assure me that NT is VMS for Intel, and there was even some rumours that NT contained VMS code and comments, but that must be mistaken. He is now at Google, and drinking the Google blog cool-aid, so that's a good start. He is very definite about the fact the MS development model is running into trouble.
I wrote a slightly throw away comment about all the software at SAP being developed by Elves, which is rather like saying "where do all the children come from as I have never seen a woman giving birth in the streets?" This blog entry made me think about why the development at SAP works as well as it does, and how the development environment supports it.
Basically, SAP internally works on an open source like principle. The code in SAP is written mainly in the ABAP coding language that the SAP development environment uses.
The development tools at SAP are now in what is called the NetWeaver platform. It is a huge middleware layer that completely creates the development run-time and user environments completely independently of the underlying technology platform. This is written in C and C++ mainly, and is platform independent
The development environment is now quite complex, and includes an Eclipse based Java development environment, but all the business process heavy lifting is done with a 4GL environment called ABAP. (This comment is a simplification of a pretty deep piece of tech...)
The environment has a complete data dictionary, so the language references the data definitions that are established in the DDIC, and never attempt to define them directly, except in limited circumstances, during actual processing, and certainly never attempt to create the definitions at the time of data write operations. This does two things, one it means that the developer actually has to make a disciplined attempt at a creating a coherent data model, and so that the data model used is available to others for re-use.
The user interaction is also handled outside of the process code, with a screen painter in the old days, and now a webDynPro, which is basically a block mode HTTP mechanism that shoves the screen out over the Internet Browser. Again, this has the benefit fit of taking all the screen handling code out of the processing logic, except for reaction to user actions, such as pushing a button. Again, the screens are then clear in form to the developers, not just for personal use, but also to allow other developers to see what is going on in the other transactional elements.
Finally, the logic code itself is written in the development environment, and is able to access the DDIC and the screen painter to carry out its actions. The code is therefore a much simpler proposition, with only the business process logic being carried out in the code.
So what cry the non-SAP developers, once it compiled, I have no chance of seeing that anyway! And this is where the beauty of the development environment is evident. The code isn't compiled until run-time. What SAP ships is the NetWeaver environment, and all of the ABAP source code, still sitting in the same development/run-time environment that the developers used. When you start the transaction (mainly = program) from the user menu, if the code is not currently in use, then the system compiles it into P Code, and sticks it in memory, and it is executed.
Now, this explains why SAP admins spend time making sure that alike loads are on alike application servers, because then the transaction is compiled by the first user, and then all others that call the transaction have the P Code. If the number of users calling different transactions eventually causes that P Code to be shoved out of the system memory, then it has to be compiled again, which is not very efficient.
But, every SAP system in the world has to have the source code, and because of the way that the code is developed, it is generally comprehensible and with clear and distinct mechanisms for delivering screen and data models. In other words, any competent SAP developer is totally capable of looking at all the source code in the system and understanding what someone else was doing with it.
This to me has elements of the open source development approach. The code is open and can be read, understood, and modified by anyone with the right permissions. (As of about 1997 or 98, SAP locked end users from modifying the code without an unlock key for the appropriate objects, just to stop idiots going in and mucking about with programs they didn't understand. These codes are readily available from SAP Support, and so a competent end user can still change the system. It is also to prevent SAP spending months debugging bad modifications, which should not be done in the main code, but using other techniques.)
But this approach works. The developers in Germany and elsewhere are all very good at finding the structures and needed information in the development environment, and soon develop that kind of noodling archeology mindset that allows them to understand anther's work, perhaps even having never met them or spoken with them. In that sense at least there is a kind of overlap with the open source approach to code development, where the code speaks for itself.
Now, as to NetWeaver in general being an open environment from the GPL and Richard Stallman viewpoint, then of course this is clearly nonsense. But given the aims of having large development groups all working on code together and co-operating on a single product, then parallel evolution has come to the same answer for the day-to-day development model.
As an aside. A lot of people in the ERP market are scratching their head about the Peoplesoft acquisition. Three code bases, three development teams, three competing business process models. That is a nightmare. As a private individual Ii know what I would do (For the Hard of Thinking - this is not an official SAP site, I am not talking as anything other than a consultant who uses SAP. Henning Kagermann is quite clever enough without asking for my dubious advice, supposing he even knows its available...) . Peoplesoft is reputed to be far better than the Oracle application suite, and from user comments, this might be true. So, leave the market time to absorb the idea the Oracle has Peoplesoft, and then develop migration tools for from Oracle, and JDE and ONTO Peoplesoft. Yep, then write "Oracle 12i" on the splash screens. Otherwise the 10 billion makes no sense to me. Which probably explains why I am so clever, and Larry Ellison is so rich....
Comments