Showing posts with label SW challanges. Show all posts
Showing posts with label SW challanges. Show all posts

Saturday, December 12, 2009

Managing SW Challenegs - Agility

In one of my earlier post, I have mentioned following challenges faced by the company delivering IT system .
  1. Alignment
  2. Agility
  3. Value for money
  4. Vendor independence
  5. Complexity
  6. Quality
In this post, let us look into business-IT alignment challenge. Before we talk about alignment, let us first define it . Alignment means that SW/IT systems should really solve the business issues/problems for which they were developed/procured . It should add real value to business, leading to competitive advantage for customers. User should really enjoy using it and feel comfortable with it.

Alignment is by far the most difficult and most important challenge. The problem with alignment is that it is only after SW/IT systems has been designed, developed, deployed and considerably used , it can be known whether it really meets customer needs. It is difficult to measure or quantify alignment, specially before the actual usage of SW.



Any SW development process should be a process of dialogue between SW development team and customers. This process of engagement has to be driven by SW development team. Although, both business and IT side are responsible for alignment, IT side who should take the prime responsibility for alignment. They must drive and engage the customers in a process of continuous dialogue for understanding business current and future needs and pain points. The continuation of dialogue through out IT life cycle is key to alignment. In fact IT service provider should become the part of the customer organizations.

Cognizant technologies is a US based company with development centers at Bangalore and other places. . It has a innovative customer engagement process which it calls -Two-in-a-Box™ (TiB

"Using a proprietary client engagement model called Two-in-a-Box™ (TiB), we embed personnel with demonstrated domain experience within the client organization to help drive IT strategy and ensure alignment with business objectives"

Here world embed is the key. If an IT service provider has to really understand customer business and IT requirements, its personnel should become the part of the customer organization. It should take both inside-out and out side -in view of the customers business and IT environment.

In order to understand customers business and IT environment , it is important to look into customers business and IT systems from different perspective. There are two IT framework which can used for this purpose - IEEE 1471 and John Zackman framework for EA . According to IEEE 1471, a systems has multiple stakeholders who look at the systems from different point of view. Each stakeholders has different concerns, needs and expectations from the systems. In order to understand the system, we need to create a view of the system from each stakeholders point of view. It is easier to define a systems into multiple views instead trying to describe a system in one large complex view. Once different views of the systems has been created, conflicts among them can be resolved. Views can also be created for different concerns - security, compliance, performance etc.

Another framework which can be used to define an enterprise/IT systems is good old framework for EA from John Zackman . This framework simply ask 6 W questions - What, Why, Who, When, Where and HoW from perspective of different stakeholders . The present state of Zackman framework is shown in the following figure -

Each row in Zackman framework describe in an enterprise/system in totality from the perspective of a single stakeholders. Zackman framework can also be used for enterprise agility. As we move across a column- from top to bottom, the artifacts in each cell should be based upon the artifact in the upper cell. This ensure traceability from business needs to code level. It is this traceability which provides agility.

We will have a detailed looked into agility challenge in next post.

Thursday, October 29, 2009

Both, Enterprise IT and software development world has been facing certain challenges since ages. If we carefully examined the changes in software development world , they have always been direct to meet such challenges - some time successfully and many time unsuccessfully . Many of such challenges are listed below:
  1. Alignment
  2. Agility
  3. Value for money
  4. Vendor independence
  5. Complexity
  6. Quality
The above challenges are both at enterprise level and software development level . An enterprise IT Manager need to answer the question " How i can have IT systems which are aligned, agile, provide value for money, have no vendor lock in and have acceptable level of complexity so that whole system can be understood, managed and change .

Similarly, a company developing software product or application, need to answer the same questions, may be in slightly different way.

Agility - How do i ensure that application/product i deliver, is in line with the actual needs and concerns of my customers/users ?

Agility - How do i ensure that my applications/products features can be be added, changed, modified in business acceptable time frame ?

Value for Money - How do i ensure that my products/applications deliver real value for money to the end customers ? After paying for my applications/products customers should not feel that they have overpaid or software does not provide enough value for the money spent.

Vendor independence - How do i ensure that my applications/products are not overly dependent on 3rd party components from one or two vendors? How do i ensure that most of the 3rd party components used in my products/applications are replaceable?

Complexity - How do i ensure that my application/products architecture/code structure is simple enough so that it can be understood by others and easily changed ?

Quality - How do i ensure that my applications/products are not only defect free but provide high degree of usability to end user and creates "WoW" effects in their minds .

The answers to all above questions are difficult . Just because they are difficult, it does not mean that we should seek their answers .

I future blogs i will try to give my perspective for each of these challenges. I will greatly appreciate feedback from all of you.