Monday, August 16, 2010

CEO Poll > 68% feel IT is an inhibitor to business growth

A recent CIO Insight article a survey of over 150 CEOs showed that most of them believe that IT is an inhibitor to the overall growth of the company. Maybe not surprising to those in the Senior management positions within a company, but it should be a wake up call to those who believe that sooner or later their business partners will recognize the inherent business value that technology can bring to the table.

The problem that all IT leaders face right now is the cynicism and basic mistrust of any initiatives that IT proposes that does not show (in a traditional business sense) how it can cut the overall IT budget. CEOs and their teams are looking for IT leaders to cut costs. They fully believe and expect that their business towers can supply the resources and assets to utilize commercial off the shelf (COTS) products to sufficiently tap into the technology to help grow the business.

It's easy for someone in IT to look at that strategy as foolishness at the highest level since they have worked with those business folks expected to utilize the technology and know first hand that they have neither the background nor the understanding to leverage the proper tools in the vast COTS world. What's more is that they can only do what any other company can do with those tools. Without allowing an IT strategist to become involved and customize the solution by using not only his or her technological savvy but also their business acumen they are basically throwing in the proverbial IT white flag and considering that side of the business nothing more than overhead.

There are signs all over the the industry that this is exactly what is happening. IT is more often than not placed under the CFO. All initiatives go through the CFO and not the CEO. The CIO makes makes his or her case to the person responsible for the bottom line, usually someone with little IT background, except for perhaps the experience of how much it cost them to fix that ugly Y2K bug. Yes, they have been let down before and we in IT are all paying a heavy price for it.

Our CIOs have not been doing a good job of promoting the innate value of using technology as a strategic tool to give your company a competitive advantage. Any company or competitor can purchase COTS and by making this the core tooling strategy to improve efficiency throughout the company you are basically saying that your IT division is nothing more than an expense to the organization. If the CIO is going along for the ride and simply implementing COTS and cutting the overall budget then they are nothing more than an assistant CFO with some technology background.

While Wall Street is probably happy (cost cutting is the best way to get short term stock increases) but those who are truly concerned about the long tern viability of a company will not be able to compete with companies are are looking for IT departments not only to cut costs and to be efficient, but to also provide true value by suggesting and implementing technology that can give them a competitive advantage.

The above may sound like we are putting the blame and burden on the CFO and CIO. However it goes much deeper than that.

The initial proverbial bubble of trust between the business and IT from the business perspective popped at the turn of the century. Business leaders are still skeptical of EVERY new technological buzz word. Don't believe me? Try walking into your CFO or CEO office with the suggestion of Cloud Computing or Social Media. How about Service Oriented Architecture or Web 2.0. Now if you really want to see fire in their eyes, try walking in and talking about Oracle upgrade to 11g. How about upgrading to .NET 2.0 framework or using WPF for our presentation layer. For my final example, if you really want to get your pink slip, offer up Team Foundation Server or an upgrade to SQL Server 2008.

Shame on us for not being able to rebuild that trust over the past decade. Instead of learning from our mistakes of the past, we continue to try and force feed new technology down the throats of the business we MUST learn to think like a business partner and not like a technician. In fact we should try and immerse ourselves in the business culture and be business people with hyper technology knowledge. Further we need to be able to pragmatically propose technology solutions as business people and not as technologists. Finally we need to deliver on what we say without wasting money and later saying that "you have to expect some cost overruns in IT because there are so many unknowns". That's not going to fly in the decade ahead. Say what we are going to deliver and deliver what we say.

If we fail, we will continue to lose trust. This not only hurts IT, it hurts the company.

Thursday, July 8, 2010

Microsoft MVC and flow control

I have been involved in several projects that utilized the Model View Controller design pattern. Typically these were custom J2EE or .NET applications that were modelled after the J2EE blueprint DP library. More often than not we used a package that was built internally that could plug and play with any new implementation. It worked well, the system was very stable with few to no bugs and could be used by any level of developer.

However for each unique environment or company you will need to build your own generic MVC package and that takes time and more importantly it takes buy-in from a business sponsor who could care less if you utilize MVC, XYZ or any other acronym'd flavor of the month. Even if you do get buy in, you need a commitment from internal IT leadership to ensure that all developers are in tune with the mindset required to work in a model first environment.

When Microsoft first came out with their own flavor of MVC in late 2007 I was hopeful that it would provide the standard plumbing that could reduce the overhead required for a new environment. For the most part, it did that. Yes, it was very rudimentary and was limited the amount of control you had in the separation of concerns, but it gave Microsoft Developers a good entry into the MVC world. In the past true MVC frameworks were mostly in the J2EE domain. I also came to respect the simplicity of the MS version since that should be what we strive for as developers.

The one thing that the MS MVC package is missing is proper flow control. Really the only thing within the MS model for flow control is URL mapping. I was able to speak with Scott Guthrie a few years back at a VS Live event and we spoke in great detail about this missing piece of the puzzle. He did say that it was a point of contention/discussion within the MS development team but that they ultimately chose the URL mapping model to KISS, which is again not always a bad thing. About a year after that discussion and after trying to integrate MS MVC maps into a service environment you quickly find that it is difficult if not impossible to easily take that step. The missing component is flow control.

Most SOA implementations involve heavy use of workflow and URL mapping does not integrate easily with this model. I recently gave a webinar on how to implement flow control within your MS MVC applications. I patterned my discussion (note the pun) after the Finite State Machine design pattern which basically gives every data movement a required start sate, possibly a bunch of processes against that data, and a definite end state. This meshes perfectly with the process flows that are so integral to your SOA implementation.

Adding better flow control to your MS MVC application also is crucial in allowing you to bring the business into your design discussions since the core of your state machine is based on workflow models, something business owners understand well.