Follow by Email

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!

Saturday, September 5, 2015

What Happened to Enterprise Systems Architecture?

I spent many years designing and implementing enterprise systems.  On two separate occasions I had the privilege of leading the design of enterprise wide systems for two major Fortune 100 insurance companies. 

In one case we moved from a collection of batch programs (remember when keypunch operators would key punch forms and we ran programs that read the cards, validated the data and updated master files then produced reports?)...   to a mainframe CICS based on-line system using an integrated relational database.

In the second case we replaced an AS/400 5250 based system with a relational database and Web Based model. 

I studied enterprise modeling and had the privilege of meeting James Martin and Dr. C.F. Codd as well as several other notable meteorologists of the 1980's and 1990's. 

I got into a battle which I won with the head of the computer science department of a major southern California university over CRUD based data base application design and enterprise systems design (I was the enterprise systems advocate and I won)!  I not only won but had a major convert.

I was working for IBM when SOA was introduced and became the architecture DE-jour.  During my short stay with IBM I noticed a major disconnect between business and technology.  Thanks to Lou Gersnter, IBM had dismantled its sales organization and basically lost contact with its customers.

IBM has some of the finest technical minds in the world working in its labs, but they lacked the control and guidance of business centered focus and requirement definition. 

Today I am studying REST and trying to fit RESTful API's into a major corporation and support the business.  I have read paper after paper on REST and they all describe the HTTP interface, the concept of dealing with nouns instead of verbs, and the technology to implement REST... 

Virtually every paper I have read or video I have watched at best have a trivial application like creating, updating and maintaining a blog used as an example...  No one talks about processing an insurance application, adjudicating and paying a claim, or even billing a client for a service rendered or product purchased and shipped.

I am in total agreement with the technical concepts of REST which is a stateless interface that allows your application to be deployed across multiple machines located at multiple data centers around the globe with data replicated as well providing a bullet proof (failure proof) system in a cloud based implementation. 

BUT, how do you map this thing (REST) back to the basics of conducting business?  If I find a solution, I'll share it here, but for now, I would love to hear from anyone who thinks they have a solution to building business systems with REST.