Thursday, June 30, 2011

In Search of the Ideal IT Organization Structure

Gartner Group and many others have recently been posting articles about the changing role and organization of IT within the modern business enterprise.  Gartner of course promotes their "Enterprise Architecture" but is pointing out that most enterprises are not embracing the concept. 

There are countless articles on the web about changing the structure of IT.  It move research, strategy, planning, and technology groups around but it appears to be a game of musical boxes on the org chart.  In most of the articles that I read, the fundamental assumption is that IT should continue to have the same basic functionality that it has for the past 20 plus years.  The fundamental issue is protecting the CIO's assets so to speak and his or her kingdom and multi-million dollar budget. 

There is a lot of lip service to corporate IT governance, but few organizations are stepping up to the plate.

In this old guys mind there is only one way to truly manage and control IT today and that is to move control out of IT to a team that reports directly to the CEO with dotted lines tot he board's IT Governance committee.  You can call this group Enterprise Architecture, Systems Planning, or even Corporate planning.  The bottom line is that it should be staffed with business analysts and project managers who have only the interest of the enterprise as their sole driving force. 

This new group should have no bias about building systems or maintaining them in-house, buying them from a third party, or outsourcing to a low cost but professional development firm.

The key to this organization is to always look at business problems and opportunities that can benefit from improved computer systems support, but has no historical bias towards any particular solution, hardware platform, or technology. 

I mentioned two key roles in this group:  business analyst, and project manager.

The business analyst's role should be to work with business unit leaders to define specific business requirements in such a manner that solutions can be crafted that address the specific needs of the business regardless of what technologies the solution might entail.

Project managers are required to manage computer systems projects as well as relationships with 3rd party vendors.  When people criticize the use of outsourcing vendors it is most often due to a failure to properly manage the vendor and insure that proper procedures are handled.  Professional project management is a key success factor in dealing with external vendors.

Note that in this scenario, an internal IT organization would be considered to be a vendor and treated the same as any other vendor.  This group would create a buffer between the IT organization and the business. 

Note that a big part of the role of this group would be the ongoing assessment of existing systems with recommendations to replace or eliminate old system that are too expensive to maintain or no longer meet business requirements. 

The people staffing this group should have excellent business and analytical skills.  Knowledge of current IT technology is desirable but should not be a factor in hiring or staffing positions in this group. 

Enterprise architecture should be a big part of the function of this group but not necessarily designing systems that are integrated enterprise systems, but rather insuring that there is sufficient integration between the various systems used within the enterprise.

Note: I have developed large scale systems for very large insurance companies and an insurance software house over the years and consider myself an expert and one of maybe 50 people who have built true enterprise systems over the years.  I still think the principles of enterprise architecture are commendable, but simply not practical in today's world of rapid change and globalization.

The key issue today IMHO is reducing the time from the identification of a requirement to delivery of a system to facilitate the requirement.  In my past I tried to design systems that would last "forever".  Today, if a system lasts 30 days and meets its business objective producing a return on its investment, then it is a success.  30 days might be a bit over the top, but a system that last a year would be reasonable. 

The key of this article is to get rid of traditional thinking about IT, refocus on business objectives and remove the dependency on multi-million dollar bureaucracies.

Friday, May 20, 2011

Enterprise Architecture

Are you familiar with the term "Enterprise Architecture"?  It is a name for an enterprise analysis methodology that first cropped up in 1987 in an article written by J. A. Zachman for the IBM Systems Journal entitled: "A Framework for Information Systems Architecture".

Today there are four major Enterprise Architecture "Frameworks" or methodologies:



While all of these are called "Frameworks" they are not actually a framework by modern definition, but rather methodologies for collecting and analyzing meta data about an organization, its processes, organization, and infrastructure.  The overall objective is to provide a means or framework for analyzing a large enterprise to make it more efficient, insure that computer systems and technology are meeting its business objectives and that the organization is meeting market pressures and demand as efficiently as possible.

I was unaware of this body of work as were most of my contemporaries while I was pursuing a parallel initiative that I had never labelled, but follows the same general line of thought presented in these frameworks.

Over my 40 year career, I have had the amazing good fortune to have the privilege of being able to lead the architecture and development of not one, but four separate enterprise level systems development projects three for for fortune 100 insurance companies and one for an insurance software house.

In the upcoming weeks, I will publish a series of articles on my view of Enterprise Architecture and will follow up with a book on the subject.

While none of the afore mentioned works are true frameworks, it is my contention that an enterprise framework can be (and SHOULD be) built as an open source initiative to form the basis of all enterprise systems for the future.

IMHO the major ERP vendors have outlived their usefulness and need to be replaced by a new modern collection of entrepreneurs producing small specialized software components and a new open market place to help consumers of systems acquire exactly what they need.

The framework defines the enterprise, its functions, processes, workflows, and organization.  There are specific points where process oriented computer programs or even interfaces to machines or manual tasks can integrate into the framework.  This means that if an enterprise were to utilize the framework and define themselves to the framework then they could buy or build components and plug them into the framework.

This means that enterprises would pay a fair market price for specific functionality that they may require instead of artificially inflated prices for 25 year old ERP packages.

Much more detail very soon.

Tuesday, May 17, 2011

Open Source -- MySQL & MySQL Workbench

I have no idea what the future of MySQL might be under Oracle's ownership, but as long as it lasts this is the most incredible development tool and for that matter a pretty good low volume production database.

Even more impressive than the MySQL database itself is the MySQL Workbench which can also be freely downloaded from MySQL.Org.   I have been using data modeling tools since 1980.  Many of these tools cost as much as $20,000 per workstation.  Others were in the $1500 to $2000 range.  ADW from Knowledgeware was the most expensive and consisted of four separate components priced at $20k per workstation each.

MySQL Workbench does all of the data modeling that these old expensive tools did and includes both forward and reverse engineering tools.  You can quite simply point the MySQL Workbench at an existing MySQL database and it will reverse engineer the database into an ER Diagram.  You can modify the model and forward engineer it back to your physical environment.

It took me about 5 minutes to download XAMPP (for my MAC) which isa complete MySQL test environment, then MySQL Workbench, install them and have a complete database development environment running on my MacBook with PHP.

This is absolutely amazing and provides all of the benefits of much more expensive modeling tools.

Just one more example of Open Source providing leadership in todays world.

Thursday, April 28, 2011

Cloud Computing

Cloud Computing IMHO is a key part of the next generation of modern computer systems today.  There are many definitions of “Cloud Computing” depending on who you are talking to, but in the purest sense it is one or more servers operated by an independent hosting company where you host Web 2.0 based applications. 

You pay a monthly fee that varies from vendor to vendor but includes the use of dedicated or virtual servers (processor and memory).  You most likely pay a fee for data storage and bandwidth to access the server.  The most reputable vendors provide capacity on demand configuration options where you can use an on-line configuration tool to add resources as needed, and some will even dynamically increase your resources based on your workload. 

In the purest form of Cloud Computing, you rent raw computer resources from a hosting vendor such as LiquidWeb or Rackspace.  These vendors provide all of the hardware, operating systems (usually Linux or Microsoft Windows with SQL Server and other resources) as well as all of the disk storage and bandwidth you need to run web based applications.  Many of these vendors also provide the LAMP stack with PHP, MySQL or Tomcat and Java along with other open source middleware such as web content management systems like Joomla or Drupal.  In other words they provide a completely configured environment upon which you can install application software that you create or that you buy, or obtain from the open source community.

Some people have commented that Cloud sites are vulnerable to attack and you lose control.  A reputable vendor will have highly skilled security specialists protecting not only your site but the entire complex 24/7.  These specialists are generally of a much higher calibre than any you could afford to hire for a typical enterprise.  Additionally, it is unlikely you would be able to afford 24 x 7 protection.

The bottom line for cloud based hosting is that you rent the capacity you need as you need it.  You have no worries about hardware or software upgrades, no worry about disaster recovery or high availability.  You can be assured that backups are taken and sent off site. 

The second level of Cloud is Software as a Service (SaaS) hosted on a cloud server. The reason this is all called cloud is the fact that you have no idea where the servers are, what servers you are running on and simply don’t care.  All you know is that your applications are running in a LINUX based environment or Windows. You can run any application that runs on either platform. 

Some vendors like Salesforce.com run a private proprietary application on their servers which you access via the web.  It is a form of cloud, but not as flexible as using a hosting company with your own software, open source, or third party software in the cloud.

IBM and other vendors are offering hardware software combinations that claim to be providing cloud services.  The combination of hardware and software tends to be extremely costly with no measurable advantage over other commercial cloud hosting companies. 

Here is a list of 90 cloud computing companies:  http://raydepena.wordpress.com/2011/01/01/90-cloud-computing-companies-to-watch-in-2011/




When you combine cloud with open source you have infinite possibilities to replace old legacy systems with state of the art software at an extremely low cost. This model applies to the largest of enterprises as well as extremely small businesses. 

Sunday, April 10, 2011

Do you need computer equipment, networks, and people to support them?

IMHO, we have reached a point in time where today's business enterprises need to carefully evaluate the money they are spending on computer systems or "IT" and the ROI that they are getting from traditional business as usual IT.

In today's world you must ask yourself if you are really getting your money's worth from your IT organization at all and begin to look at the alternatives.

I suggest you create a clean slate as if you had never had any internal computer systems. Then carefully evaluate what you need, what kind of people you need, and how to proceed to develop a Computer systems support structure that makes sense for your organization.

One of the first questions I ask you to consider is whether you need those expensive mainframe, mid-range, or server farms of Windows or Linux based computers that you have at various locations throughout your  organization. 

To analyze hardware costs and effectiveness, what is the total annual cost of your hardware including your amortization or depreciation if you purchase the equipment?  What is the annual hardware support costs for theses systems? 

What is the software cost of the Operating Systems and/or utility software for backup, software management, and many other internal tasks that have no direct business return?

How many people do you have on staff dedicated to maintaining, operating, or supporting the machines and their operating software that provide no direct benefit to the business?

For a large organization this number can exceed $50 Million per year.  In mid-size organization it can easily reach $1 million.

Add to this mix the cost of your internal computer networks, leased telephone lines, connections by an Internet Service Provider to the Internet, and the people required to support your networks? 

Thus far, we haven't talked about a single penny that has a direct ROI to the business.  This often huge expense is related to providing a computing environment upon which to run 3rd party software or your own internally developed software.

So you say, what is the alternative? 

Simple, cloud based hosting with  reputable cloud based hosting company. 

You can get all the benefits of in-house computer systems and actually much more by outsourcing your computer hardware to a third party cloud based hosting company.  Please note that I do not recommend any particular vendor, but here is what I would look for:

  • Ability to run PHP & LAMP stack based applications
  • Ability to run Java applications and support common XML based communication protocols such as SOAP.
  • Ability to support and host Microsoft Windows applications in a virtual hosting environment, [eliminate the need for Windows servers and support staff], enable support for mobile devices like the iPAD, Blackberry, iPhone, Android devices, etc.
  • All User interfaces should be via the Internet.  Note: internally all you need to do is establish wireless networks to enable your business users and their computers or devices to connect to.
Your Vendor should provide:
  • Daily backups of various types.  
    • Server backup optimized for rapid restore.
    • Your data back up with the ability to down load to your location daily.
  • Replication to a physically separate data center (in a geologically safe location -- two centers in Los Angeles would be vulnerable to earthquake, two in close proximity in Florida may be subject to hurricane, two in St. Louis, Missouri would be subject to flood, etc. 
  • Highspeed maximum capacity bandwidth on their internet connections.  
  • Dynamic configuration so you can increase computing capacity, memory, bandwidth, etc. both on an as needed basis as well as a fixed allocation basis.
  • 24 x 7 x 365 help desk and support 
    • Hardware, software, and operational issue support
    • Internet support such as spam protection, assistance with avoiding spam blacklists.
    • Domain names and services
You will find that a good reputable hosting company (there are several very large and reliable companies) can provide all of the services that your own people and systems provided, usually at a fraction of the cost.  Additionally, there are no huge budgetary battles when you need additional capacity as these vendors sell you what you need and enable you to easily add more capacity on demand.

I'm going to stop here in this post, but in my next post we will talk about your systems development organization, programmers, and all of the technology that vendors want to sell you to support your business applications.

Sunday, February 27, 2011

Open Source Project Management Software - Endeavor

As you know I have become a huge advocate of open source software.  In my new roll as COO for a company that assists non-profit organizations implement systems, I have been looking for a good open source project management system.

I was very excited when I saw Endeavor, but had my hopes forever dashed when I looked at their video located at: http://www.youtube.com/user/endeavourmgmt. 

This is a case of the world gone mad.  A true example of total cyber crap!  The product lets you record Use Cases, People, Iterations (whatever that might be) and tasks (low priority).  There is no ability to establish dependencies between tasks.  There is no PERT or CPM calculations.  There is no resource leveling, or any other feature you would expect in a real project management system.

In fact to add insult to injury and clearly demonstrate the stupidity of the developers, they let a developer input a percentage of completion.  Obviously these idiots have never taken a project management class or managed a project. Asking a developer for a percentage completion is like predicting the future with a crystal ball (I think the fortune teller is more likely to be accurate than a programmer).

Why on earth a USELESS case (UML/Rational Use Case) would get into the tool at all is beyond my wildest imagination. 

Heaven help us and project us from the geeks! 

Saturday, January 29, 2011

The End is Near for IBM

I was one of IBM's biggest fans.  IBM helped me develop my career, provided education, and helped me for years with support and advice.  Sadly, IBM today is a dinosaur who promotes dated legacy technology and sends a message to its customers that it is too risky to change and move to new technologies.

The reality is that IBM is focused on systems like its multi-million dollar zSeries line of computers, its midrange Power Systems where it continues to drag alone obsolete systems like IBM i. 

Sadly IBM under Lou Gerstner's leadership and the subsequently under Sam Palmisano's has focused on selling technology to IT executives and technologists.  Lou Gerstner decided that IBM did not need to work with the CEO or Chairman of Business Enterprises and virtually eliminated the field support staff consisting of System Engineers, Business Consultants and business industry specialists.  He dismantled specialty organizations that studied various industries identifying business requirements.

Today IBM sells raw hardware and system software to people with a PhD, MS or BS in Computer Science. They no longer care about business executives or what the requirements, problems, or challenges of your business may be.  All they care about is keeping you on the technology you currently use and buying multi-million dollar upgrades as they become available.

Well, I'm here to tell you that the world has changed.  That IBM is no longer relevant and that there are much better and much more cost effective solution available today, many in a cloud computing based environment where you may not even have to buy any hardware or expensive systems software.

Today's enterprise must look within and at its IT leadership.  Do you need a technologist running your IT organization?  Is it time to reinvent the organization that manages computer systems?  Do you need any programmers on staff?

Should you outsource?  Should you use Cloud computing?  Should you switch to open source or Linux or Microsoft based systems? 

Should you be paying COBOL or RPG Programmers $80k to $100k or can you rent much less expensive programmers from off shore vendors as you need them (if you need them)?

The world is changing.  I am now working with a major company who provides cloud based solutions.  No hassles for the clients, total reliability, high availability, and a total cost that is pennies on the dollar compared to in-house IT.

Its time to make a change.  Its time to dump your dinosaur and move into the 21st Century. I don't know what the "color" of  21st century computing is, but it isn't blue.