Sunday, December 2, 2018

Time for Business to Regain Control Over Their Computer Systems

The world of modern computer systems changes on a daily basis with new technology constantly emerging and changing with some wonderful new technology.  Sadly, too many senior business executives have become overwhelmed with the technology and have stepped away from computer systems and relinquished responsibility to some wonderfully technically skilled people.

The modern IT executive or CIO has advanced degrees in technology and surrounds themselves with other equally skilled and highly educated technologists.  While these are truly talented and brilliant people, they have little or no background in business and have caused computer systems to drift away from the current strategic needs of the modern enterprise.

Just recently some major industry giants, Sears Roebuck and Company, Toys-Are-Us, are just two that have succumbed to a failure to embrace technology and have closed their doors.  Many other major enterprises are faced with a need to embrace new and emerging markets or join these once great leaders.

To understand how the modern enterprise must move forward, lets take a look at the current state of IT today.

Large enterprise IT is most often divided into two distinct camps:  1) Legacy, and 2) Modern technologies.

1) Legacy -- these systems are often based on IBM mainframe computers with 60 plus year old systems running in legacy languages such as COBOL, FORTRAN, and even RPG (an old language running on the AS/400 line of IBM mid-range computers).  These systems use old database systems such as IBM's DB2 or Oracle and others.  These systems are old, complex, and have been modified countless times over the years.  With IBM's advent of WebSphere and Java, interfaces to the mainframe have been built with now 20 year old systems built on Linux or Unix platforms and integrally linked to the old mainframe based system which remain the core processing systems for the enterprise.  Note that enterprises are spending millions of dollars per year in supporting these old legacy systems in terms of hardware, software licenses, maintenance costs as well as salaries of people who provide no value to the enterprise other than technically supporting the hardware and purchased (or leased) software.

2) Modern technologies -- including Java based, Microsoft .NET, C#, etc. have been developed to front end old legacy systems and support current requirements.  The real issue here is that the new technology based systems are tied to the old legacy systems and are limited in terms of their capabilities and results.

In addition to a mix of legacy and modern technology, new methodologies have been implemented to manage systems development.  The most common today is Agile.  The concept being that Agile delivers systems more rapidly than traditional waterfall or other methodologies.

Agile however does not embrace enterprise wide system development, but rather focuses on individual project requests from the business.  These requests are based on a limited high level requirements document written by someone in the business who has no IT background or formal training in analysis.  These are passed to the IT organization who interprets the requirements and breaks the requirement into Agile "stories".  The IT development team then places the stories in their "backlog" and selects what they want to work on with limited input from the business.  All too often pieces of the requirement get implemented but other parts of the requirement are deferred in light of other more "important" requirements and stories.

The bottom line is that the modern enterprises spends 30% to 40% more than they should be spending on IT today and get very little in terms of strategic advantage for their money.

Regaining Control

It is time for enterprise management to regain control over their computer systems.  The following is an outline of the steps necessary.

  • Senior Management Steering Committee -- form a steering committee consisting of the CEO and the senior most executives of the enterprise including the CIO and a consultant such as myself to guide the process.  This steering committee will make take control over all IT initiatives.
  • Cloud Strategy and Cost Reduction - All modern systems (Unix, Linux, Microsoft) can be moved directly into a cloud environment.  Databases including legacy mainframe databases can be moved into the Cloud reducing system usage and enabling downsizing and cost reduction.  Mainframe modernization and elimination would come later.  Moving to the cloud reduces hardware cost, software costs, and eliminates many people who maintain these systems and computer network.  NOTE: these are administrative support staff, not application developers and provide no direct benefit to the enterprise.  This should result in approximately a 30% reduction in total IT costs.
  • New Financial Responsibility --  metrics today exist to allocate all IT costs directly back to business units.  This includes all systems development as well has hardware usage and even data storage.  All cost related decisions need to be made by the business executive governing a business area with oversight by the steering committee.
  • Enterprise Project Responsibility --  all new project must be approved by business unit executives with oversight by the steering committee.  To justify a project, a business ROI prepared by the business unit must be created, reviewed, and approved.
  • Hybrid Development Methodology -- While Agile development is a wonderful systems development methodology it is not project oriented and a hybrid methodology such as the following should be implemented:
    • Project Charter and objectives -- written by enterprise management
    • Project Requirements -- a very specific document with measurable results including a direct measurable ROI
    • Detail requirements -- produced by Business or Systems analysts documenting workflows, needed enhancements, etc.  
    • Review and approval -- by business management (note this includes a written set of testing and acceptance criteria that must be met for a project to be completed)
    • Project Implementation 
      • Requirements to be broken down into a Work Break Down Structure (WBS)
      • WBS tasks mapped to Agile EPIC's and Stories
      • Stories broken down into tasks as required by developers
      • Story implementation by developers
      • QA testing by professional independent testers
      • Acceptance testing by designated end users with written acceptance
      • Training and deployment
A key element of this process is two integrated reporting systems to document every step of the process.  All projects need to be written and stored in a system such as Microsoft SharePoint along with all requirements and record all approvals.  Agile development must be tracked in a reporting system such as JIRA (by Altassian).  Access to these reporting systems must be available to all involved parties as well as the Steering Committee members and designee s of steering committee executives.  

For more details contact me:  Bob Cancilla

Saturday, February 20, 2016

Cloud Computing -- Buyer beware!

I am a huge advocate of cloud computing.  I've spent over 45 years managing IT organizations and have been responsible for equipment as well as application development.  I have agonized over hardware budgets, capacity forecasts, and performance analysis. 

I firmly believe that cloud computing offers the smallest to the very largest organizations a huge advantage of over traditional own it and run it yourself environments. 

In today's world we have many risks in operating computer systems.  Today it is assumed that your computer systems will be available over the Internet and reach out to your employees working in a distributed environment as well as trading partners and customers. 

This introduces issues of capacity, availability, and security.  If I am going to put my business into a cloud computing environment, I want to be darn sure I am dealing with a financially stable and secure environment.  I want my cloud vendor to provide 100% availability.  I want to be sure that my applications and my data are replicated not only across multiple machines, but across multiple locations in geographically diverse locations that will protect the site and my business from acts of nature such as earthquake, hurricanes, tornadoes, fire, or any other exposure that could disrupt a data center's operation.

I want to be sure that the vendor provides an extreme level of security for everything from their physical plant to Internet access and offer me services like ethical hacking as well as monitoring to protect against hackers.  I want to insure that the vendor provides a better team of security expertise than I could afford to employ via employees.

I want the vendor to handle all of the "systems programming" activities such as upgrading OS's, and middleware.  I want the vendor to provide staff that assists me in managing the deployment of new or upgrades to my software. 

What I don't want!

What I don't want is a "cloud provider" that has one data center with limited equipment and no real time fail over or disaster recovery program.  I met a gentleman selling IBM AS/400 based cloud applications.  The had a couple of machines in a data center in their garage.  They sold this to a large number of governmental entities that didn't do their homework.  This is a disaster waiting to happen. 

I met a sales rep for a much larger company, but they had one data center in Atlanta, Georgia with no mealtime fail over or recovery capabilities and very limited technical support. 

I personally support Microsoft, Amazon, and a few other major well established cloud providers that an provide continuous, uninterruptible computing environments that can withstand anything and companies that can provide the people that I no longer need to employ (i.e. the systems programmers, admins, architects, performance managers, etc.). 

Are you a small company?

If you are a small company with a need for one or maybe two small servers, why on earth would you NOT use a cloud?  You can obtain all the computing power you might need for about $100 per month with a major company.  You get security, reliability, performance, and technical support that you would never be able to afford on your own.

Large or Small?

Cloud computing can meet everyone's needs and save you huge sums of money.

 

Wednesday, February 17, 2016

Can you afford to have an in-house IT development staff?

I was going to start this post by listing dozens of technologies that are in common use today by many IT organizations and software development companies.  I've been in the IT industry for close to 50 years and have seen literally hundreds of technologies come and go.

You can rest assured that the technologies you are using to run your business today will be obsolete in the very near future.  If you are a large company, just look around and you will visibly see many technologies such as that old mainframe in the computer room, maybe an IBM midrange computer stuck in a corner, dozens of PC based applications often running on isolated servers in specific departments around your organization.

Do you support all the modern web browsers?  Do you support all of the popular mobile phones?  Tablets?  Personal computers?  These technologies all require specialized skills.  Can you afford to hire people with these skills?

Sadly, I no longer believe that you (the largest or smallest) company or organization should have in-house application developers on your staff.  Today, I strongly recommend outsourcing your software development and/or implementation of purchased package software products.

If you try to maintain your own IT development staff, you will over staff with people who are not productive often called architects who constantly review emerging technologies.  Some of you will attempt to cross train existing people who never develop a proficiency in the new technology.

Why not just contract for experts that you need.  This technique can work, but there are some major changes you must make in order to be successful in outsourcing your IT development.

First and foremost you need a small but strong staff of systems analysts who know your business and your requirements.  You do need a small but expert staff that can lead your systems analysts in writing requests for proposal and statement's of work that clearly define what a vendor will deliver.  Note, I recommend always using fixed price contracts putting the development partner in a position to share the risk with you of delivering a system that meets requirements and does so  within the time frame you agree to.

Sunday, February 14, 2016

Agile Development for Your Business?

Agile Development and Your Business

Have your IT people been pushing you to get rid of that bad old waterfall project methodology where projects and objectives are clearly defined before you begin to do development?  Then the developers get to figure out what is important and what is not?

Agile development when applied to software development can be of great value, but... Don't let your IT organization push you into abandoning proven project and requirement definition methodologies.

The AGILE methodology was developed to facilitate rapid software development by programmers with an improved level of quality.  It was never intended to define what should be built and what components are more important than others.

Companies that utilize Agile successfully use a hybrid model of software development.  Project and requirements for a project are developed and controlled by the business.  The business and only the business can prioritize the various requirements into "Must Have", "Should Have" and "Nice to Have" general categories.  A well managed project would implement all of the MUST and SHOUD have's and a large percentage of the Nice to have's.

Only the business should be allowed to prioritize and change a MUST have to a SHOULD or "NICE" to have.  Only the business can decide than an item may be deferred to a later project after the primary deliverables are completed.

IBM is a classic example of such a hybrid methodology. IBM has an elaborate and formal process for vetting and prioritizing items that will be included in the next release of a product.  The vetting process includes accounting and finance, marketing,  sales, development, and legal. It works up through several layers until it is reviewed and approved by senior executives in the Software division.  Then and only then is a set of requirements turned over to the developers who use Agile to implement the requirements.  The development manager had better be certain that all of the "MUST Haves, along with the SHOULD haves and some of the Nice to Have's are implemented by the product's release date.

Additionally a representative of the business should participate in the daily scrum meetings and insure that developers are meeting the requirements set forth by the business.

Note that a structure that places responsibility for all IT projects and requirements along with final acceptance of a development project belongs to the business insures success.  IT must be a service organization that supports the business.

Saturday, February 13, 2016

What is happening to IT today?

Something is radically wrong with IT today!  Spending ranges between 3.2% for enterprises with revenue over $2 Billion in revenue to as much as 6.9% for organizations with revenue under $50 million[1].  Not too long ago IT costs were at a firm 1% of revenue where they remained for nearly 50 years! 

Interestingly enough, computing equipment is much more powerful than it ever has been and costs a fraction of what it once cost. 

So where does the money go?  The majority of spending today in your IT organization is on people!  Your money is spent on both salaried employees and on 3rd party consultants.

Tech Pro Research reports that the number one priority for organizations in 2016 is improving efficiency of business processes[2].     

How can this be?  Haven’t you been investing in systems that provide process improvement for the past 50 years?  What is going on within IT today.

In this post I introduce key concepts which I will drill into in future posts, but lets look at the mess that IT has become today.

Most organizations have many different technologies today, both hardware and software.  There is a mix of purchased business applications and those developed internally or via 3rd party consultants.  If you look at your IT staff you will find job titles of people like various types of “architects” that provide no direct return on your investment but cost you very significant salaries.

You’ll find new methodologies like AGILE which take control away from the business including control over what is important to be delivered and when! 

You will see a vast array of internal “frameworks” and technologies that were supposed to improve IT productivity when in fact they do they exact opposite providing little or no value. 

While the cost of hardware has dropped to all time lows, your total cost of supporting computing infrastructure has increased.  Factor in security and privacy concerns that are now a major part of your infrastructure cost and the costs have spiraled way beyond that old IBM Mainframe that used to run your entire company!  I’m not advocating a return to IBM mainframes, but think back to the organization and productivity of those days.

It’s time to take assess what is happening in your organization and how IT is performing for you.  If you think you are not getting a good rate of return for your investment in IT and if you feel that IT is holding back your company instead of helping you leverage new and emerging markets, its time for an in-depth independent assessment.

I have done these assessments studying every aspect of your IT organization and its value and concluding with a recommendation on how to reduce your costs and improve the ROI on what you do need and get from IT.  Additionally, I have helped put management structure and processes in place that put control over IT directly in the hands of the business where it should be and provide a means of isolating business executives from the techno-babble of modern technology. 

I will describe my assessment process further in coming articles, but 2016 is the time to regain control over IT and insure it is meeting the needs of the business instead of being a playground for technologists.


Saturday, January 23, 2016

Loss of a Hero

I just found out today that Ed Yourdon passed away on January 20, 2016.  This is a major loss to the IT community.  Ed made a huge difference and revolutionized programming as we know it today.  Modern frameworks, architectures, etc. all have their origins in Ed's work! 

If you remember rats nest programming with GO TO's and worse and were part of the transition to structured programming, analysis, and design you will know the value Ed brought to the world of modern computing.

Just after Sun Micro systems released Java Ed wrote a book on object oriented programming and design.  Ed totally understood OO and more importantly what an OBJECT really is!  Sadly a bunch of geeks have obfuscated his work in this area, but If you red his book you will look at OO very differently.

I had the privilege of meeting Ed and having the ability to discuss OO design and development with him. 

Ed will be missed!  He was a great man and made an incredible contribution to modern IT.

-- Bob C.

Saturday, December 19, 2015

What happened to IT?

I've been in this business a very long time (over 40 years).  When I started our objective was to help our company or client improve their business processes, leveraging the power of "modern" computer technology.

My first corporate job was as a Sr Systems Analyst and AVP (Assistant Vice President).  I worked with and for the senior executives of the company.  My role was look at key business processes which were often bogged down in tedious manual processes.

I would analyze the process and propose the introduction of automation via computer processing.  Initially we used punch cards and paper forms and reports.

I was there when IBM introduced CICS and "on-line" processing.  I saw the evolution from clerical people using terminals to the spread of terminals to very desktop.  I remember specialized computers like DEC's PDP-11 permeate manufacturing and engineering departments beginning to build islands of computing (i.e. business and engineering or manufacturing would "never" talk to each other).

I was there and had the opportunity to work with Dr. C.F. Codd and had dinner with James Martin after relational database and enterprise engineering took off.

I saw the introduction of the personal computer.  Here we saw accountants flock to these machines as well as various other individuals in the business units.  We began to see programs emerge and more islands of computing that corporate IT often did not even know existed!

I recall getting a call one day from the VP of Finance who had just bought an AS/400 computer from a vendor that sold it with the McComack & Dodge General Ledger package.  He asked if he could get some data downloaded from the company's mainframe.

I was there when in in 1997 the Internet was opened up for general commercial use.  I was there later in 1997 when James Gosling and Scott McNally  introduced Java to the world.  I led the adoption of Java by my company and  was the first commercial insurance company to implement an interactive customer service based web site.

Java and technology have evolved.  IBM still has a foot hold in the Mainframe and Midrage platform business with zOS, AIX, and IBM i, but their clients would like to modernize and move away from COBOL, RPG, and other dated technologies.

Over the past 15 years we have experienced a period of technological growth that has negatively impacted most businesses.  Today technical folks (the geeks) have introduced layer after layer of framework and middleware that almost hides the business functionality of the system they have built.

Today a developer must weave through a complex web of technology and learn how that all interacts before they can get to the basics of business programming such as changing a simple sales calculation.

We have seen so called technical experts advocate design patterns and other mystical gibberish that has made the world too complex.

Today you can look at many major enterprises and see isolated islands of developers working on isolated systems that may interact with other systems via complex interfaces using SOA or more often the REST API framework today.

While there are some technical advantages of REST over other technologies a key issue becomes "how do you represent a business problem" to REST...

Add to this a jumble of hardware platforms and operating systems ranging from IBM Mainframes with zOS to No-name Intel clones running Linux with a whole flock of Windows servers competing for attention and revenue.

IMHO it is time to get back to basics!  Lets refocus IT on business solutions!  Lets put control over IT back in the hands of the CEO and get rid of the CIO as we know them today!