Software Engineering in an Information Services Economy
-
Upload
rakesh-ranjan -
Category
Documents
-
view
373 -
download
2
description
Transcript of Software Engineering in an Information Services Economy
1
Software Engineering in an Information Services
Economy
Rakesh Ranjan ( [email protected] )
Abstract
Software Engineering is a vehicle to deliver a product or service. Today, “Information” is
considered the most important product or service and software is playing the crucial role
in delivering Information. No wonder, today’s economy is being labeled by many as
Information services economy. The recent survey shows that jobs in services sector have
dramatically increased; in fact 80% of US jobs are in services sector which is driven by
Information. The new model of delivering and consuming software as a service is also
gaining momentum.
This research paper examines the newly emerging concept of services science in the
context of software engineering and aims to provide answers to the following questions:
• How do we improve the service creation and delivery process?
• What are the changes in traditional software engineering process needed to go
hand-in-hand with service innovations?
• Can we develop new methods for services creation and delivery?
• Can we develop framework for services creation and delivery?
2
Information Services Economy
In today’s service dominated economy, the service workforce is increasing at the greatest
pace, yet the productivity and innovation in the services business compared to the
manufacturing are very low. The recent focus on services innovation termed as “Services
science management and engineering” (SSME) aims to increase the productivity of the
service industry, create innovation, and transparency to justify and measure the value of
investments in services. Service industry depends highly on technologies. Technology
evolve and change and often driven by business innovation. In the following section, we
will take a look at the evolution of software technology and how software once
considered as a product became a major part of our service economy.
The evolution of software technology
Fig 1: The software generations
1st Gen
2nd Gen
3rd Gen
4th Gen
5th Internet
Punch Cards
Assemblers
Natural Language
COBOL
4-1/2 OO/CASE
3
The first generation of software goes back to the punch card days, when programming a
computer required more than writing and running the code. In fact, you would have to
connect wires and adjust dial and switches to make the program work. In addition,
programmer has to have good knowledge of the computer system; otherwise program
would crash the computer frequently. The code written in 1st generation used to run very
fast because they were directly executed by the CPU. The second generation languages
like Machine language were inspired by this concept and still find use in some modern
applications. Companies like VMWARE are capitalizing on the same concept.
The second generation programming languages were created in 1950 to simplify the
programming using symbols called assemblers and machine languages. Assembler
translated the symbolic instructions to the actual processing instructions. These symbols
were called mnemonics which represented the command instructions in its short form.
Assemblers are still used at few places; they work at low level.
By early 1950, scientists and engineers started to work on developing compilers and
interpreters which would make natural language programming a reality. In 1953, IBM
developed a Formulae translation language for its mainframe computer which was later
called FORTRAN. It is still used in scientific computing field such as climate modeling,
computational physics and computational fluid dynamics etc.
Next came the 4GL language; goal was to minimize the instruction set compare to the
3GL and to use these languages to develop business applications. COBOL and IBM’s
RPG are considered as first few 4GL languages which allowed programmers to create
4
business application with fewer instruction sets. These languages were designed to access
and manipulate databases applications that run major businesses.
New Services Growth Opportunity
Internet changed the landscape of the business and created numerous new services
opportunities. SaaS (Software as a Service) is one of the emerging trend, where
component based software are built and offered as services over the internet. This model
has fueled the outsourcing growth, where a company now can outsource some of the core
services to the other companies. Evolution of service oriented architecture has made
possible developing software as a component and distribute over networks.
Internet has enabled businesses to think out of box and explore new ways of doing
business. It has enabled the self serve model which empowered people to participate in
the cycle of commerce and benefit. Internet enabled us to create and deliver services.
However Internet has leveled the playing field so if we want to be competitive and
innovative, we must treat service as science and engineering and improve the process of
service creation and delivery.
What is a service?
Most of the services are IT enabled; software engineering is the medium to deliver these
services. According to Tien and Berg (2003) “Any economic activities whose output is
not a physical product or construction, is generally consumed at the time it is produced
and provides added values in terms of convenience, amusement, timeliness, comfort or
5
health are considered as services”. According to the definition given above, service
production and service delivery are an integrated process.
Understanding Services using Matrix?
Service process matrix
Indiana University Prof. Roger Schmenner in 1986 proposed a service process matrix in
which he classified services as a two dimensional matrix as shown below:
He defined degree of labor intensity as a ratio of labor cost to the capital cost. As shown
above, the top left quadrant contain the service organizations with a low degree of labor
intensity and low degree of interaction and customization. This quadrant is named
service factory because low labor intensity and low customer interaction allows it to
operate like a factory. Airline service and hotel industry are good examples where
Fig: (Adapted from Lovelock (1983) and Fitzsimmons & Fitzsimmons (2003))
6
company can hire low paid and less skilled workers. The upper right box called as service
shop contains companies with low labor intensity but high customer interaction and
customization. Typical hospitals and restaurants fall in this quadrant.
The lower left quadrant called as Mass service contains organizations with high degree of
labor intensity but low interaction and customization. Service providers like retail or
wholesale companies and schools are good examples. Finally, lower right quadrant where
high degree of labor intensity and very high customer interaction and customization is
required. These services are called professional services typically provided by doctors,
lawyers, architects and consultants.
On important thing about this service process matrix is that these services shift their
positions in the matrix over time. For example, traditional restaurants used to have very
high degree of interaction, but the new fast food chains are really taking the restaurant
services to the service factory area. Outsourcing of professional services is having impact
on the labor intensity of such services hence pushing it towards Mass services. The
summary is that change in business process and global economy will change the way
these services operate, but this kind of matrix provide a nice way for managers to make
strategic decisions about services.
Service type matrix
Classifying the services by the nature also seems to provide very useful marketing
insight. Christopher Lovelock in his paper (1983) in the journal of marketing proposed a
two dimensional matrix based on the nature of act and the recipient of the service.
He classified the nature of act into tangible and intangible services where as recipient of
service can be either people or things. Tangible services can be directed at both people
7
and things, for example healthcare and restaurant services are directed at people where as
laundry services are directed at things such as clothing.
The goals of making this classification is to understand which service can be made self
service and innovate that are targeted at things and not people. If we take a look at retail
banking and consumer shopping, these insights have empowered businesses to make
these services self serve using web technologies.
In case of IT enabled services, this matrix can be useful in determining, what can be
outsourced and what can be delivered with personal touch.
How do we measure services?
Measurement is the fundamental to any engineering discipline. According to Lord
Kelvin: “When you measure what you are speaking about and express it in numbers, you
know something about it; but when you can not measure, when you can not express it in
numbers, your knowledge is of a meager and unsatisfactory kind: it may be the beginning
of knowledge, but you have scarcely in your thoughts, advanced to the stage of science.”
We have taken quantitative approach to software engineering to measure its processes.
We have used various metrics to measure estimation, quality control, productivity and
other project management tasks. Can they be applied to measure services? The answer is
not that easy. Measuring services is a challenge. There are factors like productivity and
quality that apply to services measurement but they are not the major focus areas
according to the researchers in services science field.
8
The most important factor is service innovation and measurement of service innovation
requires a holistic approach. The benefits of measuring services are multifold and very
similar to those of measuring software engineering:
• It helps forecast and predict the profitable investments in services
• It helps define MOV (Measurable Organizational Value) and MPV (Measurable
Personal Value)
• It encourages innovation to find better ways to perform and deliver services
• It empowers stakeholders to make educated decisions (i.e. where to invest new
resources, where to reassign existing resources etc.)
• It shows the direct result of the investments in the company’s bottom line
• It increases understanding and knowledge of services discipline
Applying Methods to services
Researchers are still trying to define methods that could be applied to the services
creation and delivery. The problem is that technology is changing rapidly and so is the
business model. Both are moving targets hence the challenges. In general, Methods that
could apply to services creation and delivery are very similar to the software methods and
also fall in these categories:
• A repeatable process or procedure
• Captured experiences from past projects
• A checklist or a template
• Standard proven practices
9
These methods are applicable to any service engagement life cycle. We take an IT service
engagement as an example and depict the phases in the figure below:
Figure: Service engagement life cycle
How do methods help?
Methods provide a way to deliver a set of capabilities (service engagements) quickly and
efficiently. Methods should be flexible to adapt changes at any level as required due to
change in the business models.
Methods provide tremendous benefits including:
� Setting common frame of reference for communications within the team and
enablement of standard practices across service delivery teams.
� Estimation methods are used to justify costs of a service engagement project.
� Methods provide a way to lay out the project structure and plan and hire resources
with right skills. We will discuss the applicability of social network application in
an organization to setup a highly optimized project team for services delivery.
� Methods provide us a framework for delivery of services to customers.
Start-up or agreement phase
Business discovery phase
Proposal phase
Service Planning
Service Implementation
Service delivery
10
How do we develop methods?
Divide and conquer – that’s true. We need to decompose the service engagement work
into tasks. We keep decomposing it using the work breakdown structure until we find the
independent task. Once we get there then we can develop the technique to really
accomplish that task. In couple of iterations, we can apply the lesson learnt and discover
the optimized way of doing it. Here, we illustrate this concept using an example of
service engagement for a specialized IT conference.
Figure: Work Breakdown structure for a service
We can further divide some of these tasks and then use standard process and tools to
accomplish these tasks. These standard processes evolve over time and can be further
optimized using CMM (capability Maturity Model) techniques.
SOA Conference
Speakers Participants Logistics Planning
Invite
Coordinate Topics
Furniture Backup
Reward
Registration
Badges
Lunch
Special needs
Course Materials
Room/Site
Equipments
Transport
Planning
Budget
Coordination
Survey
11
Once we have a WBS for the project, these can be applied as guidance:
� Checklist: provides a list of items that need to be completed or verified, basic but
very useful in software reviews and validation.
� Concepts: outlines key ideas or underlying principles that serve as foundation for
more explicit guidance
� Estimation: provides guidance on the size of work to complete a project and also
highlights the complexity.
� Standard practice: a proven way of doing things. Software standards like W3C
or JSR are good examples.
� Reusable Asset: intellectual property that can be utilized to perform some task or
leveraged as a starting point for the creation of a solution
� Template: a form or empty instance of a work product that can be used as
starting point for the creation of a new one
� Expert help: specialized mentoring on how to apply a specific tool to accomplish
a project or task.
� Documentation: published resources that can help guide creating new products
or solutions.
Delivering Service - Building a service engagement team
The biggest cost to the service creation and delivery is the cost of labor. How could we
build an efficient and optimized team for creation and delivery of service system? In this
section, we highlight the need to use social network analysis tool on the formal org
structure to build a team. Here we show the social network connections on top of the
12
formal organizational chart. We later discuss how uncovering these connections help
build an efficient and optimized team to deliver any capability.
John SmithCEO
Joe WangVP Sales
Jerry WVP Dev
MohanSr. Mgr.
Atul PatelVP Strategy
John KVP HR
David KDirector
Jack P
Sally M
Manoj K
Tom J
Larry B
Sundar P
King LMgr. Web Dev
Lin WangDir Dev
Susan PProj Mgr.
Sal VMgr. Legacy John K
Mgr.
John KSr. Mgr.
John KDir.
John P
John P
Lindsey
RashiAngela
tom
Ram
Tom J
Vishal
Anjali
Russel
Tom J
Aakash
Paul
Tom
Fig: Social network connections over a formal org chart
Let’s consider a typical team building scenario. ABC global services has been awarded a
software service contract and it has to build a team quickly to start the project. Using
traditional method, ABC will contact its HR counterpart to find the available resources or
shift the resources from another project. ABC practionars will try to match and find or
hire skills needed to successfully execute the project. However building a team based on
the formal org chart does not fulfill the promises of the project. Social networking tools
empower the company to look at the hidden organization (also called as under water org)
and uncover the social network connections within the employees. For example, how do
13
employees in various functional groups interact with each other? Does Tom in Strategy
group have any connection in development or research group? Where does Tom get most
of his answers from? Who does Tom go with lunch most often, or play golf on weekends
with. These answers tend to provide insight about the informal relationship between
employees across organization.
With the help of the social network analysis tool, Rod the ABC account manager quickly
searches on required skills in the entire organization. The tool highlights the resources
with different colors (based on the skills set they possess) and any hidden connections
between them. The tool also provides relevant information such as current area of
expertise, availability date and other preferences. Rod then quickly assembles the list of
resources that would be best fit to deliver this specific project and try to bring them on
board. The team that was built based not only on formal org structure but the hidden
social connections between them works well.
Services Modeling Framework
Software engineering depends heavily on models to come up on optimized methods and
practices. Since services depend heavily on human capitals, it is even more important to
represent different types of stochastic data to model services appropriately. Some of the
examples of such data are:
• Matching of supply to demand for changing skills in a project over the timeline of
a project
• Closeness index between skills to calculate what will it cost to train people from
one skills to another
• Statistical data for hiring, training and attrition for a successful and failed project
14
• Profiling a successful project data into a template for future engagements
In order to utilize the data discussed above there is a need to design a service data
framework which will allow us to query and find very interesting answers such as:
1. Which part of the organization provides exact set of skills for the given
project?
2. What are the major skills set within a group? What is the transition path
from one skill to another?
3. What skills set will be required over the project timeline considering
change in technology?
4. What will be the probable attrition rate in a particular project?
When this framework is combined with the social network analysis tool discussed in the
previous section, will answer many important questions regarding services innovation.
Conclusion
Services creation and delivery have been a matter of experience and intuition, so there are
not any scientific methods available to apply. However, need for service innovation is
increasing with demand for productivity improvement and proper distribution of the
value creation among service creators and service consumers. There is no alternative to
the experience, but it’s hard to find right people at right time at right place. Hence it’s
very important that the available resources are backed by right methods and tools. We
can extend existing software methods and tools to design and develop methods and
15
framework for services. We need to apply quantitative methods to measure services and
its attributes. The combined services data framework and social network analysis tools
can help us create efficient team that can utilize methods and tools to deliver high quality
on-demand services in an Information services economy.
References:
1. Classifying Services to Gain Strategic Marketing Insights Paper by
Christopher H. Lovelock
2. Services Sciences, Management and Engineering
http://www.research.ibm.com/ssme/
3. Autonomic Computing by Richard Murch
4. What is service science, a research paper by Tadahiko Abe.