I liken new trends in software development and architecture to the late-night Total Gym ads that feature Chuck Norris and Christie Brinkley. After forsaking sleep and an hour of my time (that I will never get back) I have learned the benefits of the Total Gym. It only takes 30 minutes a day, they claim, and I will be fit as a fiddle. I will look just like Chuck (although not really. He's short. I met him once and was quite surprised. I even thought for a moment I could kick his butt...but I digress).
The fact is, the Total Gym isn't going to do much for me, in and of itself. For the equipment to be effective, I need to learn proper technique for each exercise. I need to create an effective workout plan. I need to execute the workout plan. I need to rest and to allow my body to rebuild muscle tissue. Oh, and I need to stop eating entire bags of M&Ms while I code and learn to gulp down a green leafy vegetable or two. A little more sleep wouldn't hurt, either.
To get to my point...I have to change my lifestyle if I want to lose those extra pounds.
Adopting SOA Isn't Enough
Service-oriented architecture is among the latest "Total Gyms" trumpeted in software development circles. SOA promises tons of benefits and is certain to provide positive results for your IT organization.
But the purchase of a Total Gym will not make you as tough as Chuck Norris or as nice-looking as Christie Brinkley. And simply adopting SOA will not trim the fat from your architecture designs; nor will it instantly improve the way you develop and deliver software. Far from it, in fact.
Adopting SOA is lifestyle change that has to become integrated into all aspects of your culture, including business processes, software requirements development, software architecture, software development lifecycle, project management, and hardware and software purchases.
Total SOA Gym: Strategies for SOA Success
SOA is a great strategy but you have to exercise discipline and patience to experience its benefits. The following is my "Total SOA Gym." If you follow these strategies, you are guaranteed a higher SOA adoption level than someone who didn't read this article. This is a money-back guarantee...You can't lose!
1. Stop thinking in terms of applications (and Assess Your Current Health): In SOA, the S stands for service. Services typically represent steps in your existing business processes. Traditional development practices have sought to automate processes into a single application boundary exemplified by accounting, CRM and ERP applications. In each of these, processes overlap-causing unnecessary duplication of logic and data.
When you start with SOA, a good method for mapping your strategy is to audit your existing applications. Map the features in the software with your business processes. Once done, you will have a good idea of what you have and where you can start building services that are boundary free.
2. Make it simple "enough"- and not one bit simpler (Create A Workout Plan): There is an art to deciding how much of a feature's logic should be available to other services and how much should be stuffed in a black box, obfuscated for simplicity. I would err on the side of obfuscation and try to make a service as simple as possible. Don't fret too much over whether a certain method should be exposed. In general, if I can find a way to obfuscate it, I will. If I determine later that a benefit exists in exposing a method, I can always refactor.
3. Work Those SOA Practices (Hit the Gym): To develop quality SOA practices in your organization, you need to work on it every day. This means espousing the benefits, casting vision, sitting in on architecture meetings, reviewing code, teaching your staff, and more. To see the benefits of SOA, you need to diligently work to drive adoption. There will be plateaus, and you and your staff will want to slack off. Don't. Stick with it and you will experience the benefits over time.
4. Continue learning and sustain your momentum (Maintenance): This strategy is common sense and is not new. You don't want to lose the benefits gained from your efforts, so stay aggressive. Continue to learn new strategies (SOA and any others you find beneficial). Take the ones you think will benefit your organization and work to implement them. What you don't want to do is check the box labeled "Adopt SOA" and quit. If you do that, your organization will be back to its old flabby self in no time.
One other point in this analogy is the need for a personal trainer: someone to keep you accountable and to push you to higher and higher levels of SOA strength. On this point, I recommend two strategies:
Incorporate the SOA mind-set into your Project Management Office (PMO) and make sure it is a component of the PMO review process and code review process.
Incentivize your staff to build using SOA practices. Nothing drives adoption like a proper incentive (i.e., cash).
SOA offers you a way out of the redundant flab created by traditional application development. Like extra pounds on a person, applications have grown to such a proportion that too many resources are spent to maintain them and their user base. The strain on an IT organization can be enormous. With SOA (and my Total SOA Gym), you can begin to shed the application bloat and start streamlining by supporting services that can be combined to automate processes.
Ty Anderson is a partner at Cogent Company in Dallas, Texas. He spends his time consulting and building software using Microsoft technologies. In addition to consulting, Ty speaks and writes frequently about Microsoft products, including VSTO, SharePoint, Office and SQL Server, and his work has been published on Devx, DevSource, Simple-Talk.com, and CIO.com. Look for him at any tech conference, where he will be wearing his yellow Oakland Athletics hat. Say hello, and he will most likely buy you a beer.
Join the CIO New Zealand group on LinkedIn. The group is open to CIOs, IT Directors, COOs, CTOs and senior IT managers.