Showing posts with label CIO. Show all posts
Showing posts with label CIO. Show all posts

3 Aug 2013

Welcome on the CIT-Blog


Purpose of this Blog

Today, the IT department is in trouble. The business community is not satisfied of the IT department. The role of the IT department is undermined. Corporate IT is a shadow of what it should be. It is underexploited. Why? It’s all about the belief system. Do we really belief that by satisfying the demands formulated by the business community, their needs will be satisfied? Or, more importantly, do we believe this approach will allow the company to prosper?

This blog focusses on a few fundamental questions:

  • How to get the most of IT? (this issue is not a technological issue)
  • How to get the best “information component” in a company?
  • How to make IT projects to succeed?
  • How to implement successful information systems?
  • How to move from an IT department lagging behind to an IT department innovating and driving the business?

We need to change our belief system and to reposition IT within the company, redefine its role, retrain people, develop really best habits and implement healthy methodologies and finally develop a solid, flexible and manageable enterprise-wide information system that suits the company , solves its information needs and allows the business to function.

On this blog I present explain issues, forces and tendencies, mechanisms that unfold and solutions. I would like to emphasise five fundamental principles:

Five fundamental principles:
1.   Corporate IT is about Information and Information needs (not about technologies).
2.   The role of the IT department is to develop the information component of a company.
3.   The IT department is one of the most critical departments of the company.
4.   The main clients of the IT department are (in order of importance!):
a.    The company
b.    The whole business (set of businesses) & the IT department
c.    The business community
5.   Competences in Business Informatics (the conceptual area of IT, analysis and architecture) are most critical to IT department. (The IT department shouldn’t limit itself to technological knowledge.)

 

These principles are deduces from basic logic. The issues the IT departments struggle with today are linked to them. And of course, these principles do have consequences for the IT department and its environment.

Audience: Business Managers, Business Subject Matter Experts, CIO’s, IT Managers, Program and Project Managers, PMO members, Methodologists, Architects and Analysts, Software Engineers, ...

Subjects: Business-IT Alignment, Business-IT communication gap, Enterprise Engineering and Architecture, Business Analysis, Project Management, Requirements, ...

 

Enjoy.

Axel Vanhooren
 
View Axel Vanhooren's profile on LinkedIn  
 
Share it on Linkedin:  

 

ARTICLES BY SUBJECT

The IT Department

This set of posts explains how the weaknesses about the business-IT relationship and the presently followed approach based on the existing belief system.


 

Various Subjects



Agile

 

2 Aug 2013

About Consumer IT, Corporate IT and the collaboration between business people and IT people


Collaboration between IT people and business people on IT projects is essential to come to the best systems. Both groups have a fundamental different perception of IT. And this difference in perception is not favourable for the collaboration. Business people, although they are computer literate, have often unjustified or overestimated expectations from the IT projects. From their behaviour, priorities, norms, decisions and thinking patterns, it is clear that they don’t grasp IT. IT, and particularly Corporate IT, is still a different world for them.

Business people form a mental picture based on what they know of IT. This picture is based on what they can see and experience of IT. Typically, they are most often in contact with “Consumer IT”. They are in contact with smartphones, single user computers, Windows environment and office automation software, games, multimedia products, the world wide web, and so on. These products are equipped with functions like cut-n-paste, do-undo, plug-n-play, wizards, WYSIWYG, templates, one-click-installation procedures, logic based on user information, guessing algorithms, automatic synchronisation of data, easy interconnection, automatic configuration, and so on. Let’s not forget the marketing slogans like “one click away” and “The sky is the limit.”

Business people are a little bit in contact with corporate IT through their company. Most of it is only the GUI of corporate systems.

Consumer IT is oriented to the individual and his personal tastes. The focus is on the GUI. Consumer IT products are easy to acquire, easy to use, fast, relatively cheap, flexible and powerful. They are upgraded frequently, or new versions are put on the market regularly. Consumer IT products are often a single local system, although some acts like stations connected to a network. The complexity of the product is hidden for the user by the GUI. If something happen with it, it will usually impact only one person. These tools are close to the daily life of people. The usage of these tools is based on intuition, guessing, trying, exploration and discovery. The users are hereby driven by their spontaneity, creativity, their desires, preferences and the fun. It is reactive. It allows to respond unexpected changes and to a sudden desire. It emphasises the quality of the experience.

On the other hand, Corporate IT is oriented to larger coordinated groups of people. It servers the company’s interest and focusses on processes, services and ROI. Corporate IT is slow to put in place. Since every implementation is unique, it’s expensive. It is, or can be, flexible and powerful, but in a different way as consumer products. Corporate IT often consists of various interconnected systems forming networks beyond the borders of the company. People dealing with Corporate IT are in the middle of its real complexity. Corporate IT is in some way also very different from the daily way of thinking of people. It’s abstract, extremely detailed, formalised and require a high degree of clarity, consistency and completeness. Issues may have an enterprise-wide impact. It has to ensure business continuity and be secured.

The approach in Corporate is more planned, organised, formalised, controlled, structured, methodical, based on analysis and design (thinking beforehand) and driven by the need of the company or organisation to survive and to grow.

Corporate IT corresponds for 100% to this picture. It simply leans towards it.

What happens when people used to consumer IT have to collaborate with people used to Corporate IT? What happens if we deal with Corporate IT (too much) as if it was Consumer IT?

To have a successful collaboration with business people and develop a strong IT implementation in companies, it might be a good idea for the IT people to educate their customers.

 

15 Jul 2013

Little Practical Guide to Outsourcing Software Development Projects



Little Practical Guide
to
Outsourcing
Software Development Projects

 
Axel Vanhooren

More and more projects are outsourced. It can be done onsite or offsite, be it as a onshore, nearshore or offshore project. This tactic can reduce the cost. But outsourced projects require a much better preparation and more formalism. Since more people are working on this type of project, more coordination is needed.  Outsourced projects are more complex, larger and riskier than when they would have executed in-house.
Taking the decision for outsourcing a software development project has more consequences for the client company or client organisation.

The decision is not straightforward at all. In essence, four aspects play a major role in the decision

·         Financial aspects
·         Practical implications for the company/organisation
·         Ability to set-up and manage offshore projects
·         The offshore software supplier
·         The type of project

Why doing outsourcing?

Cost Reduction
Probably the most cited argument is cost reduction.  Achieving a cost reduction may be not as easy. It doesn’t come down to take the plan of the project as if it was executed in-house or on-shore and using local salaries, local hiring fees and a supplier margin to compute the cost benefit. The reason for this is that outsourced projects have other requirements than in-house executed projects.

We need to consider that software development projects shouldn’t be managed as a cost, but as an investment. During the lifecycle of a software system, we need to look continuously on how to maximise its value for the company. And, the cost of the project that created the software is a fraction of the total cost of the software system’s life. Yet, during this project a lot of important decisions are taken concerning the scope, the purpose, the architecture, the design and the technologies. They have a great impact upon the future life of the system. They determine whether the system can respond to opportunities and at what cost. It determines how well it can evolve and thus influence the duration of its life. This project defines the basis of the further lifetime of the software system and influences thus the profitability of the system.

Other Reasons
Although the cost is the most cited reason, it may be not the real reason. Or, other reasons may play a role as well: understaffed IT department, lack of IT competencies, lack of trust in the IT department, a consumer’s attitude (preference for solution acquisition over doing the effort of solving problems), and so on.

The strategy to reduce drastic the internal IT department is highly questionable. Competencies in implementing changes, problem solving skills, project management skills, IT competencies and the capability to innovate and to renew itself are vital to organisations or companies. The importance of these skills depends, among other, of the size of the organisation.

Such reasons are symptoms of a very deep and serious issue that will threaten the company or organisation over time.

Good reasons are indeed the cost reduction, keeping the focus on the company’s core activities and vital systems, freeing most capable resources to work on essential projects, using faster knowledge the company doesn’t master yet, temporarily having more IT people working for the company (hiring external consultants is an alternative) and transfer of some risks. These are probably not the only reasons.

Implications of outsourcing

Outsourcing a software project can be interesting, but it has some implications.

·         During the outsourcing of the construction of a software system, information is passed to the software company. Information is spread outside the organisation.

o   Information about the way the business operates and how it is managed. It gives some insight in the processes, the logic, the available information, the services, and so on.
o   Projects are a way to transform a company. Projects give some clue about the company’s strategy, its intentions and its focus.
o   It may give indications to the outside world, or at least to the software company, how well the organisation is able to manage projects, and thus its capability to evolve and to transform itself.

·         The client organisation loses some control over its own systems and processes. Usually, the knowledge about a system developed through outsourcing is smaller than about in-house developed systems.
·         Outsourcing a project provides some power to the software company. The software company that built the built software system has more knowledge of that system than the client company does.
·         The organisation may become dependent of external providers.

Consequently, as a general rule, outsourcing strategic projects - projects that determine the position of the company/organisation in the years to come -, systems dealing with core processes or systems containing critical logic should not be outsourced.

Outsourcing all the systems containing the core processes of business or outsourcing a major part of the systems is a very risky strategy.

The lesser knowledge the organisation has over its system, the greater is dependency of the software company(/-ies), the more it is vulnerable.

Who can do outsourcing?
The IT department has to decide whether it outsources or not a project. This department is responsible for the automation of the processing of information within the company or organisation. They are also responsible for the implemented systems. If the business community starts to define and build information systems, whatever the way they choose, they engage in shadow IT. This undermines the information processing within the company, the ability of the IT department to take up its responsibilities and to play its role fully, and, ultimately, it will undermine the company.

Selection of the offshore software supplier
Selecting the right software supplier is a crucial step. Establishing the required criteria and doing research may help. The software supplier should preferably have experience in the technologies expected to be used, in similar projects, in outsourcing or offshore projects and in similar methodologies as those used by the client’s organisation. The availability of sufficient resources is another factor that may be considered. Guides about the selection of IT suppliers can be found on the web.


What phases of a project can be outsourced?

Analysis
Analysis activities can be outsourced. This includes the elaboration of business case or any other type of preliminary analysis. It is favourable, but not mandatory, that the analyst knows the business area and the company. Actually, some consider not knowing the business domain or the company as an advantage. Their arguments are valid as well.

However, it is easier when the analyst can talk with many different stakeholders, organise interviews and workshops. It is very helpful that he or she is present on the premises of the company. Analysis is about acquiring knowledge and insight. The company pays an external person to learn to know the situation within the company. Later this new insight should preferably be transferred again to an employee.

The client organisation and the software supplier have a common goal until the contract is signed. But once the contract is signed, game can be different. The client desires as much value at the lowest cost and with the lowest risks and without glitches. And some suppliers may want to deliver the minimum that still matches the agreement and this at the least effort. Both want the project to be finished as soon as possible, but for different reasons.

The analysis may be too superficial, incomplete, ambiguous, inconsistent or wrong. Or it may respond to only a part of the needs or even to the wrong needs. If the agreement is based on this analysis, in the end, the supplier delivering the solution that matches the agreement will be paid. But the client will have to face the troubles and the higher cost. An inappropriate analysis creates disappointment on the client’s side.

Outsourcing projects require analysis that are more complete, consistent, unambiguous and more detailed.

It is a prerequisite that the product to be developed is well defined. A fairly higher degree of precision and certainty makes the project easier. Changes are possible, but they may be more difficult or costly to achieve.

A good analysis is thus critical and should be conducted by a professional analyst. This can be an employee or an external and impartial consultant.

Design
The design is easier to be outsourced than the analysis. However, the company should ensure some things:

·         the design matches the analysis, fit the situation and solve the real problems and needs
·         the design must lead to an efficient functioning system
·         the required system’s qualities are built-in by design
·         the company understands the design thoroughly

Although, the design can be done by the partner, the company should master the design. A close follow-up is important. The design determines, for example, the scalability, the expandability and the flexibility of the system. A bad design may make the maintenance costly, making changes so hard that the company cannot make use of some opportunities, or may increase the cost of future changes.

Programming and Testing
Programming and testing are the phases that are the most easily outsourced.

It is beneficial that the software supplier follows coding policies of the client company and that the software code is well-structured, clean and efficient.
The client organisation should test the software when delivered. These tests should be more through than simple UAT’s. In the end, the client organisation is responsible for putting a software system in production. This means that outsourced software is tested several times. It is first tested by the supplier to ensure it does deliver working software that matches the demand. A part is retested as part of the UAT.  It is advised to test the software one more time by the client to verify and confirm it is working well and can be released to the production.

Delivery
The delivery phase includes the handing over of software and documentation. But, at least as important, is the assurance that a maximum of knowledge about the delivered software is transferred. Without this knowledge, the delivered software is nothing more than a black box of which the functioning is assumed to be as described in the requirements or is guessed.


Project Organisation
The company should follow up the project, ensure the analysis activities, verify the design and establish, execute and verify testing activities. This means that the company should appoint persons to these roles. The software supplier is likely to have the same roles in his part of the project.

Responsibility of the company
The client company’s has to ensure that the project delivers a product that corresponds to its needs. That is its main responsibility. In the beginning of the project, the client company is responsible for the correct identification of the needs. During the execution of the outsourced activities, the client organisation must ensure the product the software supplier is building corresponds to what is agreed and suits the client organisation. And upon delivery, the client organisation is responsible for the hand over, for the acceptance, for further testing, for the implementation and for the transition. There might be some nuances in this list of responsibilities depending on the specific situation and agreements.

The outsourced activities can be considered as a sub-project within an overarching project. The company is responsible for organising this overarching project and organisation. Even though the sub-project is managed by the software supplier, the client company should follow up and control the work done by the software supplier.

Follow-up, Control and Transition
The outsourced project must be followed-up and controlled by project manager, analysts, architects and possibly some other roles assigned on the client-side of the project. This follow-up doesn’t concern the quality of the activity plan, the progress of the outsourced project or its resource usage. It is much more important to verify that the requirements are well rightly taken into account in the design, the suitability of the design, and so on. The software product should not be a black box. It should be at least a grey box. The client, and more particularly, its IT department, needs to know the architecture, the implemented mechanisms, the organisation of the source code, and so on. This is about the understanding of what have been established before programming, or in terms of layers of detail, the layer just above the source code. The client should have and should validate the analysis and design artefacts made by the software supplier.


Essential aspects
There are some factors that require much more attention in off-shore projects:

·         An analysis of high quality
·         A higher degree of formalism
·         Good agreements will avoid many misunderstandings, wrong assumptions, discussions and disappointments.
·         More and effective communication
·         An efficient way to follow-up the project
·         Good testing

A few issues to consider
Some issues are important to consider:

·         How does the software company react when there is a doubt about the specifications?
·         What are the agreements about handling changes of requirements or specifications during the project execution?
·         Is the software supplier ready and able to follow the client’s coding standards and quality levels?  How is this process of transferring, using these standards and the control of their compliancy organised? This includes documentation standards.
·         How is the integration of the new system in the existing IT environment solved?
·         How much knowledge of the delivered system is transferred and how is this organised?
·         What support may be needed and what can still be expected from the software supplier months or years after the product has been delivered?
 


Cultural Differences


There are differences among developers. When specifications aren’t clear for the developer, developers may react in different ways. Some will stop working, others will interpret the specifications without caring, others will try to understand the purpose and guess for the right interpretation and others will ask for clarification. There are differences among the company cultures. There are differences among the clients and the suppliers. With offshore projects, the cultural differences are even greater when the parties are from distant countries. Additionally, the most obvious practical barriers are the distance, the language and the time zones. And maybe the legal differences play a role as well. This makes offshore projects more complex.

Anecdote: An offshore software supplier had delivered demanded software and was partying. The client was testing the software and found a few hundreds bugs. They called the software supplier to ask for explanation. “We are testing the software you delivered and we found 300 bugs in it. This is inadmissible. The contract stipulates that you would test the software before delivery.” Software supplier: “You found only 300 bugs. We tested it as agreed and found around 800 bugs. So, you still have 500 bugs to find. Good luck.”

Starting with outsourcing
Knowledge and experience in outsourcing projects can be built up gradually.
There is a lot to learn of the experience of other’s offshore project. Much can be learned from failed projects. There is plenty information on the web.

An evaluation of the present capability in managing and executing software development projects is a key to first consolidate or strengthen this capability before engaging in outsourcing.
Nearshore is somewhat safer than offshore projects. Small and non-vital projects are better candidates to begin with. Gradually larger projects can be outsourced.

Good Luck with your projects!

Other Resources

Outsourcing Management Body of Knowledge (OMBOK)™
URL: http://int-iom.org/documents/OMBOK.pdf

IAOP - International Association of Outsourcing Professionals
URL: http://www.iaop.org/

IAOP - Outsourcing Professional Body of Knowledge™ (OPBOK)


 
Keywords: software development, project, outsource, outsourcing, onsite, offsite, onshore, nearshore, offshore, project management, CIO, strategy, IT strategy, shadow IT, ERP, IT department
 
 
©2013 by Axel Vanhooren. All rights reserved

17 Oct 2012

CIT’s Problem 7.2: The Present Evolution of the IT Department


IT is a domain in full evolution. Since a few years, we can observe some on-going tendencies.
·         Outsourcing
·         Cloud computing
·         BYOC (Bring Your Own Computer), BYOD (Bring Your Own Device), BYON (Bring Your Own Network)
·         Shadow IT - End-User Computing (EUC)
·         Agile

Using new products, concepts and services available on the market is fine. However, it is crucial that the company benefits from it. Some companies may, as a need appear, as a difficulty has to be overcome or as a problem must be solved, systematically look to buy or acquire a solution. We may acquire/buy training sessions, consultancy, services, frameworks, standards, frameworks, models, software, tools, technologies, … even without first really investigating and understanding the problem and without trying to solve it ourselves.

Cost saving, dealing with peaks in work load, lacking of some specific competencies, the transfer of risks or a faster availability of the solution are certainly valuable arguments. But the decision to buy may also be a default way of operating or the decision may be driven by some underlying motives. They might be symptoms of underlying problems. Therefore, it is crucial to bring them to the surface. Some possible underlying reasons are:

·         The business community may have lost trust in the IT department.

·         They find that the IT department is delivering to slowly or they impose to rigid conditions and restrictions on security and usage.

·         The business community feels confident enough to take care of their own information needs. Why shouldn’t they take an initiative. They didn’t think about it to discuss the issue with the IT department.

·         They find it important to be more independent of the IT department. A power struggle may be going-on.

·         The IT department wants to avoid having to invent some concepts locally. They may have a belief of not having the skills or have more trust in concepts invented elsewhere. (driven by fear, avoiding risk taking, lacking of skills in problem solving, lack of trust in own people).

Of course, these are not the only possible motives.

The tendencies described above are not without drawbacks for IT department and indirectly for the company.

·         By looking elsewhere for solutions,

    • the IT department may lose valuable competencies (competencies in business informatics, systems analysis, ..)
    • and as the knowledge of the implemented solution decreases and comes into hands of a third party, they may lose control over the implemented IT solutions and about the final cost.

·         Solutions implemented outside the umbrella of the IT department are unknown to this department. They are not supported. The data may and business continuity may be at risk. It may create breaches in the security. And so on. Globally spoken, they lead to unmanageable IT implementation (chaos).

·         A shift of responsibilities from the IT department to the business community occur. It doesn’t need to happen in a formal way. If it happens because an actor starts to take some decisions and makes some demands, the shift occurs implicitly. But when the company has to face IT failures or poor results and high costs, the IT department may still be blamed.

A shift in the role of the IT department will occur. They will have much more to manage external suppliers of IT products and services. They will be held responsible of maintaining solutions chosen, acquired or developed and implemented by others. And in the end, one way or another, they may be held responsible for decisions taken by the business community concerning as well.

All this continuous to undermine the position of the IT department. And, instead of improving the capabilities of the department, it will weaken them.

> Next post will probably concern the role of the IT department that allows to fully exploit its capabilities.
 

CIT’s Problem 7.1: Present Role of the IT Department


The role of the IT department is so critical for a company that it has to make sure it takes the greatest advantage of it. When we look at the present role of the IT department, this is not what is happening at all. And it’s not simply a matter of working harder or smarter. It’s a matter of role definition, position, responsibilities and developing the right competencies. We need to take another look at the IT department.

This difference will become clear when comparing the present role of the IT department with a new role. However, today, the IT department is evolving towards a third role. This has also to be considered.

Today’s common role of the IT department


The following responsibilities and activities are commonly associated with larger IT departments. Smaller departments may have a subset of these responsibilities and tasks.

The role of the IT department is to provide technological solution to the whole company regarding electronic information. The IT department is in charge of all computer based systems.

The IT department develops and implements these IT systems. It maintains, manages and optimises them.

The IT department provides custom-programmed solutions. Company’s websites can be included here.

The IT department provides, maintains and manages the office automation software (e-mail, word processor, spreadsheet, sharepoint, fileservers, ..).

The IT department defines, implements and manages the needed technological platforms and work environments (development environment, test environment, ..). It should provide the best and quickest operational environment for their end-users.

It also provides the infrastructure for automation, which is the computers, the network, the circuitry and all equipment needed to make the IT systems work.

The IT department is also in charge of securing all these systems and networks.

It is responsible for data quality assurance.

It provides assistance to the end-users regarding the software, systems, tools and devices it (the IT department) is responsible for.

The IT department is also responsible to solve the technological issues the company may face. They have to come up with solutions to for users.

The IT department is responsible to ensure the continuity of the implemented IT solutions and infrastructure. In case of system failure, its role is to restore and to fix the issue limiting the impact on the business and its activities.

The IT department may provide policies, frameworks, guidelines and parameters for the individuals' and operating units use of software systems, computer systems and networks, including the encoding of data.

The IT department acquires software applications, technologies and devices which may enhance the functioning of the organization.

Additionally, the IT department also:

·         manages the data centre operations

·         manages programmes, project portfolio and projects

·         operates the Project Management Office or Project Office

·         manages the access to the IT solutions

·         does facility management (equipping and managing the computer room)

·         implements, maintains and manages solutions for telecommuting (teleworking)

·         follows trends in IT

·         does research in IT solutions

·         implements, maintains and manages telephony, fax machines, printers, plotters, video conference, ...


Descriptions of the role and activities of an IT department found on the worldwide web sum up these activities. Almost certainly, they represent the expected role of the IT department. And probably, they also represents the largest part of the IT department’s activities.

If this is the case, it limits the role and contribution of the IT department. Plenty of competencies that have to be found in an IT department are not utilised.

Before building a solution, the problem, its context and the objective need to be understood. The solution must be designed. It may implement innovative concepts. But in essence, the listed activities are all oriented to building, maintaining and managing solutions. They suppose that, to some degree, that the right solution has already been defined.

By limiting the role of the IT department, and not utilising all competences to be expected in it, the risk to have solution of lower quality or, worse, one that simply doesn’t fit increases. Achieving business-IT alignment and innovation remain a very far dream.

Some activities that have been forgotten to be listed: organising the data, data migration, ensuring the business continuity and disaster recovery at the level of the IT implementation, the development of frameworks and methodologies.

But more important, this description of the IT department overlook domains like enterprise architecture, business analysis, business process modelling or information architecture. These domains are still rather young. They don’t provide a direct benefit to the business. Nevertheless, they are key activities for an IT department.