In the past, as an IT manager you could quite easily have simply responded to the object technology advocates that "it's just hype!" Well, no longer. Objects and their big brothers, components, are here to stay.
Hype or reality?
Consider this - the GartnerGroup reports: "By the year 2000, 80% or more of software vendors will have adopted object technology (OT) to build their products." Considering that software vendors` very livelihood depends on them selecting the correct software development technology, this is a strong endorsement that object technology has benefits over more traditional development methods.
Clearly the hype is over and objects have become entrenched.
Is object technology mature?
Judging by the number of tools around that are sold as object technology tools, I think this question is answered. For some concrete examples let's look at where the big software vendors are using objects.
Microsoft has evolved Visual Basic into a true object-oriented development environment. It also supports and promotes OT with its other development tools in the Visual Studio suite, including Visual C++ and Visual J++. The Visual Studio Enterprise edition also ships with a bundled object modelling tool, supplied by Rational, creators of the Rational Rose Object Modelling tool.
Oracle has embedded a Java Virtual Machine in its latest releases of its relational database products. It's now possible to write stored procedures for an Oracle DB in Java!
SAP has begun restructuring its products along the lines of components to make it easier to customise and deploy.
Support for older technologies is already tapering off
Gone with the wind
The list goes on. These are the giants of the software vendor community and they have invested millions of dollars in their move to object and component technology. Would this be the case if they felt that OT was immature or a fringe technology? Notice that these companies are using object technology, not developing it!
To add some perspective to the maturity question: Object Design is about to release its sixth major release of its ObjectStoreproduct, 10 years after the first release. This pure object database product depends on people using OT actively for its survival. They have already survived for over 10 years. If this is not maturity in an industry with notoriously short cycles then what is?
What are the benefits of OT?
There are several benefits of OT, but probably the most significant is agility. Some may ask: "How can software development techniques lead to business agility?" The answer is simple. In today's online e-commerce enabled market place, software has become a primary differentiating factor in business. The ability to achieve the goals of a modern business is dependent on that business' ability to deploy software solutions that enable its vision.
This means that flexible, agile software systems lead to flexible, agile and profitable businesses.
The first benefit leads to the second; that of reduced time to market. Well architected OT systems are by their nature flexible and extensible. That is, easy and less expensive to change. In software development terms, this means less time will be needed to change the system and therefore, reduced time to market.
OT, when used correctly, leads to reduced software entropy. Software entropy is the tendency of software to become more difficult and costly to maintain over time. Object-oriented software development has this effect when the correct design principles are applied.
Reuse is often quoted as the major benefit of OT, but personally, I believe it is only third on the list in most cases. If you're in the business of building libraries or similar software products, then it may be more important. The reality is that there is a cost to achieving true code reuse, which often may not yield the expected return on your investment. Nevertheless, when needed, it is a very real and achievable benefit of OT.
Why haven't I seen the benefits of OOP yet?
The bad news is that using object-oriented programming (OOP) languages in your organisation without applying proper OO principles normally leads to worse problems than you may have previously experienced. Bjarne Stroustrup, the inventor and designer of the C++ object-oriented programming language was quoted as saying. "In C, it's fairly easy to shoot your own foot off, in C++ it is much harder, but when you do you will probably blow your whole leg off." He was referring to the use of C++ without the proper application of object-oriented principles.
Object-oriented software development is a holistic approach to systems development. OOP forms only one part of the whole. OOP without the rest is a recipe for disaster.
What about the failures you read about?
In this respect, OT is no different to any other approach to software development. Unfortunately, many OT evangelists sold companies on the idea that using OT to develop their systems would improve their success rates. Sadly, the reverse could be true. I have yet to see a project fail as a direct result of the technology used to develop it. However, I have seen projects fail because of poor management, lack of correct skills and inappropriate use of technology.
OT does not make software easier to develop. In fact, it probably makes it more difficult. This is the reason that adopting a sound migration strategy is so critical. I firmly believe that OT is now a survival issue for business today. This makes it more important than ever to ensure it is adopted using a well thought-out strategy, ideally supported by expert consultants and mentors in the early trail-blazing stages.
What will it cost to change?
Change of any sort costs. The real question should be: "What is the cost of not changing?" In the short term, the cost will not be noticeable. When suddenly you find you no longer have a choice, you will find the cost far greater. The sooner you start moving your systems development to object technology, the lower will be the final cost. Change always costs less when you are doing it willingly and according to your own timetable.
As time goes by, finding skilled people who still want to program in a non-object environment is going to get tougher and more expensive. Support for older technologies is already tapering off. Worst though is the fact that software entropy will reduce your organisation's agility over time leading to an increased focus on maintenance and a reduced focus on new functionality. This is the real cost of not changing.
The object imperative
The old cliché of "adapt or die" has never been truer than now in IT. Objects enable rapid response to changing market conditions. The ability to rapidly adapt is becoming more of a survival issue than ever before. If you ignore object technology, you do so at your own peril.
For IT professionals, object technology represents the new wave; for organisations, no less than survival.

