I was reading a blog post on Software as a Service (SaaS) by a colleague (Peter Pearce) the other day, and it struck me that there are profound positive impacts of this movement that are not yet being discussed in the Enterprise IT community.
The first thought that came to mind was that SaaS may be the “Killer App” that really forces the IT world into a Business Driven Development model once and for all.
On the surface, there is the obvious advantage of a business not needing to understand the inner workings of the systems they are implementing, and the promised agility for the business are great. But when I take a closer look at one of the SaaS vendors mentioned in Peter’s article (Work Day), I see a great new era for the IT Business Analyst and Solution Architect.
The reason I mention WorkDay is its emphasis on Object Oriented technology. I know everyone wants to jump in to Service Orientation, but Object Orientation is an important stepping stone along the way in my opinion. One of the main advantages of WorkDay is that its internal architecture has been started from scratch as an Object Oriented one. While object oriented systems are not new by any means, most of the existing object oriented systems (client server, web based, or otherwise) rely on Relational databases like Oracle, MySql, MS SQL Server, etc.
A lot of necessary, but complex and not exactly business oriented coding is required to translate between the Object oriented application and the Relational database. Yes, it might save some coding work if we had an Object Oriented Database as well, but that is not the biggest benefit in my opinion.
The biggest benefit I see is to the analysis process, and the ability to focus on business processes and structures (that object orientation describes in a more logical way) as opposed to considering relational concepts such as data normalization, query performance, etc. I have been in more than one JAD session where we “couldn’t” do X or Y because it broke a rigid relational data model, or worse yet, the technical team did not know what the implications of changing that model would be.
To prepare yourself for this wave, if you are an IT professional, but did not “grow up” as a Java, or C++ (and now C#) programmer (and I think this is pretty common these days), and you expect to be working with any Service Oriented systems going forward, I recommend getting up to speed on the basic concepts of Object Orientation first.
The first book I’d recommend is The Object-Oriented Thought Process. I like this one because the reason I am recommending you learn object orientation is to get you thinking about problems in terms of objects and interactions between them.
The second is a more in depth “field manual”, The Object Primer by Scott Ambler (who happens to be big in the Agile community too in case you are also adopting or interested in Agile practices. This one covers a lot of ground on how to apply Object Orientation, and how Object Orientation applies to other common activities in most SDLCs (software development lifecycles).
If you want to be effective at Business Driven Development, I think it is also important to educate your business customers in Object Oriented concepts as well if you will be doing serious requirements analysis or explaining the conceptual solution architecture to them. For this, I personally have created some short slide presentations that borrow from the ideas in the two books above, as well as my own experience, but am not shy about resorting to a quick whiteboard session either.
This is a balancing act, your customers don’t need to know everything about object orientation, but they should be able to understand the artifacts left behind by your analysis and have a rough understanding about the basic structure and complexity of a given solution. This will help everyone to set more realistic expectations, and understand opportunities for future enhancements.