m UPP^BlE!;
^060
ob^^oso
li
HlliPiiil
ifiii
DLv^ar
WORKING
PAPER
ALFRED
P.SLOAN SCHOOL
OF
MANAGEMENT
The
Changing
Role
ofthe
User
in the Deveiop.Ti^^nt of
Application
Scftr-^areEradlev A.
Feld
WT#
3152-90-BPS
August
1990
MASSACHUSETTS
INSTITUTE
OF
TECHNOLOGY
50
MEMORIAL
DRIVE
CAMBRIDGE,
MASSACHUSETTS
02139
trv'^'Sf-^
OCT23
1990The
Changing
Role
ofthe
User
in the
Developm^^nt
ofApplication
Scft-^areBradley A.
Feld
Abstract
In seeking to betterunderstand thesources ofinnovation, researchers have
investigated the division of labor between user and manufacturer in the development of
new
products. Specifically, the "partitioningof tasks"between
userand manufacturer hasdrawn
attention.In this paper. I explore the changing role of the userin the development of
application software. I argue that responsibility forapplication
development
is shiftingfromgeneric manufacturers ofsoftware to the users of the software. I hypothesize that,
given this shift, an efficient division oflabor entails manufacturers
who
develop "tools"and
transfer
them
to the users.The
userthen develops hisor herown
applications using thetools developed by the manufacturer.
I carried out apilot study
on
the actual partitioning of tasksbetween
the userofapplication software and the specialist developer ofthe software (the manufacturer). In
this study. I investigated several software projects undertaken by a single custom software
firm for three clients seeking applicationsoftware to automate aspects oftheir businesses.
Finally, I discuss several trends in software technologythatcould arise
from
thisongoingThe
Changing
Role
of theUser
in the
Development
ofApplication
Software
1
Introduction^
Although most software applications are currently developed byprogrammers,
innovations in software
programming
tools and user-friendlymethods
to link these toolsincreasinglyprovide users
who
are notprogrammers
with the ability todevelop theirown
applications
more
efficiently and cost effectively.These
innovations are in the process oftransforming the
way
businesses and individuals approach application softwaredevelopment.
Consider the development of a financial
model
for forecasting cash flow.A
decadeago, the user
was
required to specify theproblem
to apiogrammer,who
would
thenassume
the task of writing theprogram
in a complexprogramming
language such asCOBOL
orBASIC.
Ifthe user needed any changesmade
after he began using theprogram, he
would
have to interrupt hiswork
and try to describe his needsto theprogrammer,
who
would thentake the necessarysteps to incorporate the changes into theprogram. Today, auser can
implement
her financialmodel
directly in a spreadsheetprogram. She controls the entire development cycle accordingto her specific needs and
can quickly and freely
make
any necessary changes to theprogram
as she works.The
current evolution ofsoftware development tools appears to be shifting theresponsibility for application development from a specialist developerofsoftware (the
programmer)
to the user of the software.New
programming
environments fordevelopingapplication software (such as fourth-generation and object-oriented languages) are
appearing that not only dramaticallydecrease the cost ofdeveloping application software
1.1wouldliketothankEncvon Hippel and DavidJilkfor theirstimulatingandinsightfulcontributions to theworkcontainedinthis
and increase the value of the software to the user, but alsoenable the user to develop his or
her
own
applications.The
impact ofthis trendwill, I believe, leadto a new,more
effectivedivisionof labor
between
the developer and the user ofsoftware.In this paper, I explore the changing role oftheuser inthe
development
ofapplication software and seek to establish an empirical basis for research
on
the actualpartitioning ofapplication
programming
tasksbetween
the userand
the manufacturerand
on the implications forimproved practice. I first
summarize
some
literature that existsconcerning this subject (section 2). I then turn to a brief history ofthe rolesofthe end user
and
specialistprogrammer
-- oftenemployed
by a software "manufacturing" firm -- in theoverall
development
ofapplication software (section 3). Next, I discuss a pilot study that Iconducted to explore the different ways inwhich software
development
tasks arepartitioned
between
usersand
programmers
ofsoftwareand
the efficiencywithwhichinformation that affectsapplication
development
is transferredbetween
userand
programmer
(section 4). In this study, I investigated three "first-of-kind" projects thatwere
developed for
new
clientsby a custom softwarecompany.^
Iexamined
various qualities ofthe information passed back
and
forth across organizational boundaries such as theinitiator of the request for change (user or manufacturer), the granularity(chunks vs.
items) of the messages transferred across organizational boundaries, the completeness or
incompletenessof messages transferred, and the content ofusers' requests
(new
featuresvs.bugs). Finally, I discuss
some
trends I have observedthat will increasingly have animpact on the role of the user in the
development
of application software (section 5).2
The
Literature
Various researchers have
examined
the divisionoflaborbetween
the user andmanufacturer in the innovation process.
Von
Hippel explored the relationshipbetween
user and manufacturer by examining the sources of innovation (von Hippel 1988) and the
implications of task partitioning (von Hippel 1989).
He
found that problem-solvinginterdependencies
among
tasks can be predictedand
thenmanaged
by either adjusting theboundaries between tasks or reducing the barrier to problem-solving interactions across
boundaries.
More
recently, he discussed the effects ofwhat he terms "sticky data" on thelocus ofproblem-solving and innovation (von Hippel 1990).
He
found thatmuch
of thedata nejuc t u-;problcr.i-' )!• i. ^ h?s "sticky" qualities that
mak"
then: difn.uit o; ior> '.o:tlyto
move
to other sites.He
hypothesized that "ifdataneeded
bya problem-solver are sticky,related problem-solving activitymust
move
toand
among
loci ofsticky data-
perhapsrepeatedly as problem-solving proceeds" (von Hippel 1990).
Von
Hippel proposes that "itis an
economy,
other things being equal, to design problems so thatproblem-solving drawson
only one locus ofsticky data..." (von Hippel 1990).A
number
of other researchers have investigatedhow
the software development process is organized and inwhat ways andhow
effectively it incorporates userandmanufacturer input. These studies have
been
concerned primarily with partitioning oftasks in technical organizations. Salaway (1987) suggests that interactions
among members
of a
team
occur at the intersection ofuserknowledge
and designer knowledge.Henderson
and
Lee
(1989) found that during the development ofan information system, designers(software developers) were expected to build the system, but
domain
representatives(users)
were
expected to supply relevant business knowledge and user input to therelationship
between
user and developer in thedevelopment
ofinformation systemsand
observed ashift in the division of labor
between
functional developersand
technicaldevelopers in a custom software organization following the introductionof computer-aided
software engineering
(CASE)
tools. All ofthese examples indicate that there is asubstantial transferofinformation
between
software userand
software developer duringthe development ofapplication software.
3
Roles
ofthe
Programmer
and
the
End
User
inthe
Development
ofSoftware
The
software industry is beingtransformed by anincreasing separation ofprogramming
tasks:The
creation ofapplication-generatingprograms
(a "tool") and thedevelopment ofapplication software (an"application") are
no
longer a single taskcontrolled by the
programmer,
as they once were.In the 1960's,
programmers
usinglanguages such asAssembly
handled all softwaretasks.
Even
when
the distinctionbetween
a "tool" and an "application" did exist, the skills aprogrammer
needed
to build a tool were thesame
skillsneeded
to manipulate the tool tocreate an application.
Over
time,programmers
realized that theirwork
could be facihtated bythe design ofreusable, self-contained modules.
These
modules, ortools,became
fundamentalcomponents
ofnewer programming
languages.While
earlyprogramming
languages suchas
Assembly
contained no tools, laterprogramming
languages such asCOBOL
includedsome
built-in, although limited, tools for developing input screens and reports. Currentprogramming
languages (such as Focus, Dataflex, or Clarion^) containnumerous
toolsbut3.Focus, Dataflex.andClanonareproductsofInformationBuilders.DataAccess Corporation, andClarionSoftwareCompany,
have
added
simple "user-friendly"methods
to link these modules. For example, aprogrammer
using an "object-oriented"^programming
language suchas Actor^ can createa"window"
on
thecomputer
screenthat behaves like a text editor.A
decade ago, thisoperation
would
have taken thousands oflines ofprogramming
code written by anexpertprogrammer;
today, it takes one line ofprogramming
codewritten by auser.At
thesame
time, advances in thepower
and speed ofcomputer
hardware havepermitted software programs to use largerself-contained
modules
A-ithout diminishing theperformance of the software.
As
computingpower becomes
less expensive, softwaremodules
havebecome more
complex without having avisible effect on the performance ofli.e arplicaticn.
Togetherwith this trend toward increasedcomputing power, trends toward
self-contained .nodules and easy, user-friendly
methods
to link thesemodules
haveautomated
tasks that previously could only be performed by specialistprogrammers
andhave enabled the user increasingly to
program
his or herown
applications. Today, ausercan take various self-contained
modules
originally developed by a specialistprogrammer
and link or reconfigure
them
bymeans
of"macros"" such as those within Lx)tus 1-2-?.' Forexample, the financial spreadsheet forecasting cash flowsthat
was
discussed in theintroduction might have been
implemented
through a Lotus 1-2-3 macro. In this case, themacro
(created by the user) only runs within the context of aprogram
(Lotus 1-2-3).Consequently, the program, created by a specialist
programmer
workingfor Lotus4.Foragood descnptionofobjcci-oneniedprogramming,sec thearticlesbycitherWegner(1989)orMeng(1990). 5.ActorISaproductof theWhitewaterGroup
6.Amacroisa"programwthinaprogram" comprisedof asenesofcommandsorkeystrokesspecifictoa sofrn-areprogram thattheuser
canassembletoactasan applicationtosolvea specificneed
Corporation, is the application generator while the macro, developed by the user, is the
application.
The
pilot study discussedbelow
seeks to take a firststep toward understandingthe impact ofsuch shifts.
4
PilotStudy
4.1
Approach
My
goal in this studywas
to understandhow
applicationsoftwaredevelopment
ispartitioned
between
theend
user and the software developerand
how
information istransferred -- or not transferred --
between
these two during the course ofsoftwaredevelopment. In order to see such transfers clearly, I have elected tostudy situations in
which
end
users and the specialistprogrammers
attempting to develop software to servetheir needs
were
employed
by different firms. Specifically, I studied the sources of516improvements
in the application software developed for three clients ("users") by a singlecustom
software applicationcompany
("software manufacturer").The
custom
software firm I elected to studyhasbeen
inbusiness forfive yearsand
has developed over 30personal computer-based
custom
software apphcations for awidevariety ofbusinesses. In the process, the firm also created
numerous
softwaredevelopment
process tools and gained asignificant
amount
ofknow-how
based around apopularfourth-generation language called Clarion. ^
Some
samplesystems the firm has developedinclude software forgroup medical practices, medical laboratory billing,venture capital
portfolio
management,
legal billing, insurance claim processing, real estate investmentanalysis, rental store point-of-sale, and international accounting.
Because of the
way
the software development firm approached custom softwaredevelopment, a rich set of
contemporaneous
datawas
available for study. Using amethodology similarto rapid prototyping," the custom software
company
quickly generatesan initial, partial solution tothe client's
problem
and develops a custom application. TTieclient starts to use this software
and
thenmakes
specific requests for changes.The
software firm respondsand through these interactions the initial solution is greatly
elaborated and improved over time through aseries of"revisions" to the software issued as
software updates to the client.
At
the start ofa client relationship, software revisionsmay
be shipped to the client as often as every two weeks. After a year, the frequency
may
(.eciine Xc. perhaps one revision eve'^ two monihs.
To
ensure that the user and manufacturer databases were distinctfrom
each other atthe start of the study, I decided tc focus
on
"first-of-kind" softwaredevelopment
p-ojects--projects in industries in which the custom software firm
was
working for the first time. In afirst-of-kind project, the software firm had no significant knowledge ofthe client's field of
business and the client had notpreviously
been
involved ina custom software project.Each
of the two databases (user and manufacturer) was, at least at the start of thedevelopment project, in a different organization
and
at a geographicallydistinct location.The
choice to study first-of-kind projectswas
based on the observation that, over time, thesoftware development firm inevitably learns something about the fields ofbusiness ofits
clients, resulting in a transferof
some
of the user's database to the manufacturer. Also, the9.Rapidproiotypingisa softw.-arcdevelopmentmethodologymwhichtheprogrammerinlemcw-stheuser,getssomeinformationabout
theapplicationtobe developed,andcreatesa prolotj-pe. ITicuser then plays »nth the protot\peandgives themanufacturerfeedback,
whichcausesthe manufacturertodevelopanother, niore refinedprotot\-pe. ITiiscyclecontinuesuntiltheuser has asystemthat satisfies hisrequirements
8
client learns something about the custom sofr^-are
development
process, resulting in atransferof
some
ofthe manufacturer's database to the user. I specifically looked forprojects
where
this exchange of knowledgehad
notyet occurred.The
softwarecompany
I studied was workingon
ten first-of-kindprojects. I thencategorized these ten
on
the basis of: (1) the client's expertise regarding the particularbusiness
problem
hewanted
the software to address,and
(2) the client's understanding ofcustom software. I classified the clients as either "high" or "low" forboth ofthese
characteristics.
I determined
how
the projects were classifiedwith respect to these two characteristicsbyinterviewing the principals or project leaders ofeach of the tenfirst-of-kind clients
and
asking
them
questions about the businessproblem
theywanted
to automate. Ifthe clientdescribed his business
problem
as "confusing (to him)" or said something like "I never hadto
work
inthe business office before, but I have to learn aboutit in orderto fix thisproblem
inmy
business," I classified his understanding ofthe businessproblem
as low.Conversely, ifthe client clearly described the business
problem
hewanted
to automate, orifpeoplewithin the client organization stated things such as "the boss really understands
how
this organization runs," I classified hisunderstanding ofthe businessproblem
as high.Ifthe client could onlyarticulate his
need
for software to "cutdown
on
the work" orto "reduce personnel,"I classified the firm as having a low understandingof
custom
software. Ifthe client
was
already using software to analyze acomponent
ofhisbusinessproblem, or if the client displayed
some
understanding of the software and thecomputer
After differentiating the ten first-of-kind projects
on
the basis ofthese vaocharacteristics, I selected three to study over a two-yearperiod: aventure capital firm
(portfolio
management),
an insurance claims processing firm, and agroup medical10
Each
request for achangewas
an individual item recorded byamember
ofthesoftware
company
(usually aprogrammer
or the projectmanager). I identified atotal of516 requests affecting the threeprojects.
Each
revision consisted ofa setofspecific changes to the existingfunctions oftheapplication software
and
resulted from interactionsbetween
the userand
the manufacturer(see Figure 1 for anexample from the study). I had access to the 68 revisions issued bythe
firm. Table 2 shows the
number
of requests and thenumber
ofrevisions foreach ofthethree projects.
PORTFOLIO MANAGER
VERSION 1.65
01/12/89
New Features
1) Income from securities. A new trade type, "INCOME" has been added to represent income from interest
and dividends. Transactions for these trades must have a 'delta' of 0, and the amount of income from
securities and total proceeds colunns.
2) The extra company information has a new field, 'Lead VC. The portfolio summary report can be
filtered to include companies from one Lead VC only, or it can be printed as normal.
Enhancements
1) The Cost Analysis report now has Total Value and Difference coluins, in addition to the Total Cost
column.
2) The Trade Log reports (Investment, Divestiture, etc.) now SLirmarize quarterly totals.
3) The Cost Analysis and Trade Log reports no longer print unnecessary zeroes on the right side of the
reports.
4) Multiple comitments for the same security at different prices are now handled properly.
Bugs Fixed
1) The Trade Log reports did not always clear the rightmost colims.
2) A nunber of potential network bugs were found and corrected.
Figure 1:
Sample
ofa Revision forthe Venture Capital ProjectI then sought to examine various qualities ofthe information transferred
between
the11
12
At
the beginningofeach project, two rich, distinct databases existed: the client'sunderstanding ofhis business
problem
and the software company's understanding ofthecustom software
development
process. Recall thatall three projectswere
first-of-kind.The
softwarecompany
hadno
specific knowledge about the applicationtheywere
about todevelop before the project
began
and the client had not previouslybeen
involved in acustom software project.
Each
ofthe two databases (userand
manufacturer)was
initiallyin a separate organization and at a geographically distinct location.
Following are
my
findings for the three projects I studiedwith regard to the initiatorof the request (user or manufacturer), the granularity (chunksvs. items) of the messages
transferred across the organizational boundaries, the completeness or incompleteness of
the messages transferred, and the content ofuser requests
(new
featuresvs. bugs).4.2.1 Initiator of
Request
Remember
thatmy
goal in this studywas
to understandhow
software development ispartitioned
between
end
userand
software developerand
how
information is transferred-or not transferred
- when
two very different, rich databases are each held indifferentorganizations. Consequently, it
was
important to determine whether the user orthemanufacturer
was
initiatingthe requests for changes.I used thewritten records ofthe firm to determine the initiator ofeach request.
When
the initiator ofthe requestwas
unclear, I interviewed theprogrammer
who
recordedthe requestto determine the source ofthe request.
The
breakdown
ofuser-initiated13
14
4.2.2
Granularity
oftheMessages
Transferred
I identified two levels of granularity -- a "chunk" and an "item" -- that can be
distinguished
on
the basis of theamount
ofwork
involved for the softwaredevelopment
firm in implementing the request. I define a "chunk" as a request fora
new
feature thatusuallyrepresents a significant
amount
ofsoftware development. I define an "item" asaspecific request that usually represents a change to an already
implemented
chunk.For example, a request that
would
be classified as achunk
is:"Implement
theinvestment report." This is arequest thatrequires the
programmer
to perform anumber
ofdifferent tasks inorder to
implement
the request. In this specific case, the prograrmnerwould
have to writeprogram
code to perform several tasks: (1) format the investmentreport, (2) search through the investment database and perform the calculations necessary
lOgenerate the appropriate output,
and
(3) generate the appropriate output. In a languagesuch as Clarion, this
would
require asmany
asone hundred
linesof code that could takeup
to a day to write, test, and debug.
A
request thatwould
be classified as an item is:"Make
the totalcolumn
on
theinvestment report two characterswider." In this case, the
programmer
only has to performone task in order to
implement
the request -- that ofwidening afield on the report. InClarion, this
would
require a change to one line oftheprogram
andwould
take fifteenminutes to write, test,
and
debug.Table 4 shows the
breakdown
ofchunksand
items I observed in the sample.Interestingly, the vast majorityof requests are for specificitems. In all three projects, there
15
16
4.23
Completeness
ofthe
Messages
Transferred
Ineach project, both user and manufacturerdatabases
had
to bedrawn upon
inorderto first generate
and
then solve eachchange request.Von
Hippel (1989, 1990) hassuggested that there is a significant advantage to be gained by efficientlypartitioning
development tasks and by concentratingproblem-solving in asingle locus. Consequently,
inthis study I investigated whether(1) the rich data ofeach side, the software firm and the
client
who
were
in different loci, were in anysubstantialway
transferred to the other sideso that problem-solving could proceed in one locus, or(2) whether the data
remained
where
they were and only requests for specificactions-
stripped ofany rich databasecontent
- moved
between
the two loci duringthe softwaredevelopment
work, or (3)something "in-between" took place, e.g., the rich data
were
transferredfrom
manufacturerto userin certain cases.
Evidence forthe first pattern, the transfer ofrich data
between
loci,would
beinteractions
between
the client and software firm inwhich (a) the client said, "Let us tellyou all about our business so thatyou can develop a software package for us," or (b) "Teach
us about
how
youwrite softwareso thatwe
can figure outwhat
we
need from
you," or (c)"Let's get together and learn about each other so that
we
can do this projectjointly."A
series of discrete client-software firm interactionswhere
the dataremained
where
theywere
and only requests for specificactionsmoved
between
the two lociwould
beevidence for the second pattern.
On
the client side,we
might expectto see extremelyspecific requests
-
in effect,"Do
this"-
devoid of user data regarding the context oftherequest or related reasoning.
On
the software firmside,we
might expect to see veryspecific responses
-
in effect."We
did this"-
also devoid ofinformation regarding the17
Evidence for the third pattern,
where
something "in-between" took place, would be acombination of collaborative
work between
the userand manufacturerand
specificrequests from eitherthe useror manufacturer. For example, the user
and
manufacturermight begin the project with aseries ofmeetings to define the project. Then, the user
would
issue specific requests to the manufacturer during the life of the project. Finally,periodic"workingsessions"
would
be held by the userand manufacturer to check theprogress of the project and to reestablish priorities.
Interestingly, inall three projects I found that virtuallyall of the data passing back
and forth between userand manufacturer
were
for specific requests -- essentially of a"Do
th/'f" nature -- thereby providingsupport for the second pattern noted above.
I observed
that the requests fell into two categories: (1) the initial
"Do
this" requestwas
complete andunambiguous enough
to al'ow the software firm toimplement
the request without furtherinformation; or (2) the
"Do
this" request needed further amplification before it could beimplemented.
Typical
unambiguous
requests from the client (in this case, the venture capitalcompany) would
be: "The trade logdoes not always clear rightmostcolumn
-- it should" or,"Where
younow
print 'share' in the output reports,print 'shares' instead."The
softwarecompany
would
make
the requested change and issue another release ofthe software,effectively saying, "The software
now
doeswhat
you asked us for."An
example of a"Do
this" request requiring further amplificationin the venturecapital project was, "Use percentage ofcost
method
for revaluation." In the case where the"Do
this" request required further amplification, the softwarecompany
was
only concernedwith collecting the information
needed
to dowhat
the client had requested -- not with18
the software
company
did not investigate cost valuation equations inorder to see iftherewas
abetter solutionto this particularrequest. Instead theprogrammer
asked questionslike,
"How
would
you calculate the percentage ofcostfor a revaluation?" in order tounderstand
how
toimplement
the request.I also found that a request for further amplification is
much
more
likely for chunksthan for items, as in Table 6.
19
Hypothetically, it is possible for the manufacturer to learn the user's business and mix
the two databases. But, according to the interviews I conducted, this is not
what
happens.The
manufacturerobtainsmore
information so that he cansatisfy the"Do
this" requests,but he does not necessarily understand the user's database.
In the case of the venture capital client, the usersinvolved understood PC-based
software
and were
often able to simulatewhat
theywanted
in terms of functions beforemaking
a"Do
this" request of the software development firm.When
the user is alreadyfamiliarwith
some
programming
tools, she does a betterjob offraming theproblem
for themanufacturer. At the venture capital company, the user understood
programming
wellenough
to be able to prototype theproblem
in Lotus 1-2-3. Consequently, the userpartitioned the
problem
and transmitted"Do
this" requests thatwere
clearand
actionablebythe remotely located manufacturer.
At
the venture capital company, the users also understood their business well. In thiscase, their knowledge of the capability of the software firm
was
sufficient to alloweffectiveinteraction by both the user and the manufacturer at arm's length. Consequently, neither
firm had to transfer anyrich data to the other side to havean effective interaction
regarding changes to the software.
In the case of the insurance claims processing company, the client understood his
business reasonablywell, but did not understand the software development process.
The
client also had a
good manual
system in place thatneeded
to be automated. Consequently,the software firm studied the
manual
system in order to derive the series of"Do
this"statements it
needed
to proceed. In this case,some
rich datawas
transferred from the user20
In the case of the medical practice, the client did not understand the benefit of
custom software and could not transfer eitherspecific requests or an understandingof its
database to the remotely located software
development
firm. In addition, the client'sunderstanding ofits business
problem
was
low. Specifically, the existingmanual
proceduresthe firm
wanted
to automate were poorlyunderstood by the user. Therefore arepresentative of the software development firm ultimately had to travel to the client site
and
work
there to effect thiscommunication
between
userand
manufacturer. While there,however, he did not collect arich understanding ofthe user database
and
transfer it to themanufacturer. Instead, he concentrated
on
"understandingwhat
we
(the manufacturer)were
supposed to do."Finally, note that in
none
ofthe caseswere
softwaredevelopment
tools transferred tothe user site so that the user could modifythe software provided by the manufacturer. In
fact, it
was
the policy ofthe softwarecompany
not to transfer such tools to the user so as toretain a proprietaryadvantage over other developers ofcustom software.
4.2.4
Content
ofUser
Requests:
New
Features
vs.Bugs
I observed that 455 of the 516 requests
were
transmittedfrom
the user site to themanufacturer site.
Von
Hippel (1989) has suggested that the traditional partitioning oftasks
between
the manufacturer and user,where
users have needsand
manufacturers havethe task of assessing these needs and developing a responsive product, often raises
significant problems for innovative projects because of the high interdependencyof
problem-solving. Consequently, in this study, I exploredwhether
problems
crossed back21
Because the rich user and manufacturer databases had been kept separate bythe
design ofthis study, the different typesofrequests by the usercould in large part be further
examined
and categorized. I divided these requests into three categories: (1)new
features,(2) bugs, and (3) specification errors.
New
featureswere
requests by theuser for changes to the softwareprogram
thatresulted in the
program
performingnew
functions.These
new
features were typicallyeither logical extensions ofprevious
work
that hadbeen
done
or distinctnew
"modules"that automated processes that had not been previously automated.
An
example
of anew
feature request
from
the venture capital project is"Summarize
quarterly totalson
the tradelogs."
New
features coulo cither bi^ a "chunk"or an"item." Ifanew
feature requiredmore
than one
programming
task to implement, itwas
considered a chunk. If it required onlyone programm'ng
task, itwas
considered an item.Bugs were functions that the manufacturer had
implemented
thatdid notwork
correctly.
These
are different from requests thatwere
poorly defined by the user, classifiedbelow as "specification errors." In the case ofbugs, the
program
simply did notwork.An
example
of a bugfrom
the venture capital project is "Transactions out of order cause theliquidationschedule to print the
wrong
information."Specification errorswere requestsby the user that
were
poorly defined. In thesecases, the user
made
a request that,when
implemented
bythe manufacturer,prompted
theuser to revise the original request. While these requests were not actually bugs, theyare
clearly distinct from
new
features.The
classificationof user requests intonew
features, bugs, andspecification errors?'»
23
who
werenew
to the topic area in each case, could not suggest ausefulnew
function to theusers
on
the basis of problem-solving carried out atthe manufacturersite. This isconsistent with the observation that most of the
manufaaurer
suggestions are verytechnical in nature and relate specifically to the performance of the software.
43
Summan
ofFindings
In this pilot study, I
examined
various characteristics ofthe information transfer thattookplace
between
the end userand the software developer in three first-of-kindsoftwareapplication developmentprojects. I found that in all three projects most ofthe data
passing back and forth beivveen user an \ manufacture/were for specific re'uests of a
"Do
this" nature. I obser\'ed thatthese requests fell into two categories: (1) the initial
"Do
this"request
was
complete andunambiguous enough
to allowthe software firm toimp'ement
the request without further information; or (2) the 'Do this" request
was
incomplete andneeded
further amplificationbefore it could be implemented. In addition, the request forfurther amplification
was
always initiated bythe manufacturer.Ialsofound that most requestsfor changes
came
from the user(88%)
rather than themanufacturer (12%).
The
user requestswere all basedon
specific informationcontainedwithinthe userenvironment, while the manufacturer-initiated requests
were
basedon
manufacturer-specificknowledge.
Funhermore,
I observed that roughly half(53%)
of the requestsfrom
the user tookthe form of"Yoursoftware does not do what
we
asked" and often traveled betw,een themanufacturer and the user (across the boundary) twice and occasionally traveled across the
boundary three times.
Almost
all of the requests fornew
featurescame
from
the client or24
Finally, the granularityofthe requests
made
varies~
there are requests forasignificant
amount
ofwork
(a chunk) and requests fora specific change (an item).However,
I found that the percentage ofchunksand
items requestedfor a project isindependent of the firm's understanding ofits business
problem and
its understanding ofcustom software.
5
Trends
inSoftware
Technology
Von
Hippel (1990) argues that there is aneconomy
to be gained by concentratingproblem-solving in
one
site rather than distributing itamong
two ormore
loci because dataneeded
forproblem-solving and innovation tend to be sticky.From
thispilot study, Iobserved that the user isthe source ofmost ofthe requests for
new
features in thesoftware. I also observed that data are sticky
and
thatproblem-solving thus shifts backand
forth
between
the two loci ofstickydata; the user locusand
the manufacturerlocus.Simultaneously, there is a technology trend to
make
application software easier to develop(Ward
1986). If, asvon
Hippel suggests, innovationand
problem-solvingwillend up
inonelocus, I predict that it will end
up
in the user locus.Programmers
will continue to bebusy;however, theirjobs will be to create tools that enable theuser to develop his or her
application.
The
process ofdeveloping anapplicationwillbecome
encapsulated in thetool. In otherwords, the tool will automate the traditional interaction
between
theprogrammer
and the user. I suggest that this is amore
optimalway
to partition tasks25
5.1
An
Example
ofUser
Empowerment
An
example ofthis type oftask partitioning is the developmentof expert systemswithin E.I. du Pont de
Nemours
&
Company,
Inc.The
AI
Technology grouphas taken a decentralized approach to expert systems development. TTieAl
group played the role ofthe manufacturer, standardizing the tools and dispersing
them
to the usercommunity
(theentire organization). Users developed applications with the tools.
These
toolswere
continually evolving; however, users were shielded from the tool development bythe
manufacturer (the
AI
group), which monitored the tool evolution and provided userswiththe "latest and greatest" only
when
the "latestand
greatest"worked (Computerworld
1987).The
manufacturer (theAi
group) conirolled tht developed of tht tools but not thedevelopment of the applications. Therefore, thevalue of the application to the user
was
not limited by the manufacturer's knowledge about t^^e user's
problem
since the userdeveloped the application.
In this example, the manufacturer concentrated on developing tools that allowed the
user to develop his
own
application.The
manufacturerdid not haveto transfer anyof hisdatabase, which contained knowledge about developingthe tools, to the user.
Correspondingly, theuser did not have to transfer anyof his database, which contained
knowledge
about awide variety of highly technical systems, to the manufacturer.The
endresult has
been
an extremely successfuluse ofexpertsystems withinDu
Pont.5.2
Custom
Software
vs.General
Software
So farI have discussed custom application software
~
software that is designed for aspecific user's problem. I believe that the observations from thisstudy are also applicable
26
systems, and spreadsheets. I hypothesize that pieces ofthese applications will be built by
programmers
insuch away
that the user cancombine
the pieceshowever
he or she wants,with the extra (or, from the user's frame of reference, unnecessary) pieces being
unobtrusive. Usingthe
computer
sciencemetaphor
of"object-oriented programming,"word
processors,communication
software, accounting systems,and
spreadsheets can bethought of as objects identical to the
modules
I described inthe beginningof this paper.A
userwill be able to string thesemodules
togetherto solve his or her specific applicationneeds.
An
example
of ageneral software system using genericobjects thata user canconfigure to
meet
hisspecific needs is Microstep.^^An
example
ofthe implementationofaspecific system using Microstep is as follows: "Ifa
programmer
wants toadd
apayrollfunctionfor the sales department, and he or she has alreadybuilt such a routine forthe
marketing department, rewriting it for sales is as simple as pointing at a symbol for payroll,
dragging it to the marketing design, and connecting it to the rest ofthe marketing design
with a line. [Itwas]
done
in less than two minutes,and
that included pauses forexplanations" (Lewis 1988).
These
generic objectswill still be developed by software engineers. Users will notdevelop the object-oriented
programming
and theCASE
tools ofthe future, norwill they develop the genericmodules
thatone
can consider to be part ofthe tool. Instead, the roleof the manufacturerwill be to evolve tools such as these to a higher degree offunctionalit)'.
The
userwill then bringthem
into his or her environment and configurethem
to his orherspecific needs.
27
53
Disintermediation:
A
Possible
Consequence
Ifusers generate the majorityof application programs, the commercial providers of
application programs
may
begin to disappear. This will resemble the disintermediationthat has occurred in other industries (e.g., the direct placement ofairline reservations, or
the use ofon-line
computer
services such asCompuServe
instead ofretail brokerages tobuy and sell stocks).
This disintermediation has already occurred in discrete segments of the
computer
X ^fiAvre market. Fore;;iriple,
when
I otns l-C-3 *"irstappearedon
the ma^'ket, comm-.<-dalsoftware providers rushed to develop "1-2-3 Templates." Initially, it appeared that a
respectable template market
would
exist.However,
as use/s discovered hovveasy itwas
todevelop their
own
custom templates, the template market disappeared.Currently, there is a large
demand
for decentralized application software.Numerous
firms exist to provide custom software solutions to allsizes of users
from
small businessesto Fortune 500 companies.
Most
of these companies approach application development ina very labor-intensive manner.
Many
functional experts are hired to specify and interpretuserinformation
and
transfer it across the boundary to the technical experts in themanufacturer organization,
who
then develop the software.I
would
predict that the core business ofthese software companieswill eventuallybejeopardized. Instead ofneeding a massive functional organization to interpret user needs
and design applications systems around these user needs, these software companieswill
need to be able to transfer their process technology to the userenvironment and then teach
28
not add value in the
development
ofapplication software fora specificuser need. Instead,theywill addvalue bydeveloping and transferring tools into the user environment at the
appropriate places.
The
need
for specialistprogrammers
will not be restricted to just thedevelopment
oftools even ifdisintermediation occurs. For example, large organizations will continue to
require the services of
programmers
to maintainformal structures for standardizinginformation systems across functional
and
organizational boundaries.ConsiderFrito-Lay, Inc., a leading manufacturer
and
distributor of snack-foods. Inthe 1970's
and
early 1980's, Frito-Layhad
a traditional, centralizedManagement
InformationSystems
(MIS)
department.However,
since 1985, Frito-Lay systematicallydecentralized the gathering of information (throughthe use ofhand-held computers by the
route drivers) and the process of
making
decisions thatoccurs in the organization (throughthe use ofan Executive Information System on managers' desks).
A
centralized "datawarehouse," containing all of the transactional datafor the organization, is maintained by
the
MIS
department.However,
the dataareno
longer analyzed by theMIS
department, astheyonce were. Instead, data are dispersed to the
managers
(inmany
cases as frequentlyas once a day) in order to be used for analysis, production planning,sales strategies,
and
promotionstrategies.
The
MIS
department no longerwrites application software toperform specific,user-requested analysis
on
the data. Instead, it develops the toolsusedfor the analysis.
The
users responsible formaking
the decisions perform the actual analysisusingthe tools developed by the
MIS
department. Ultimately,this systemwill provideinformation to the decision
makers
across organization boundarieson
a timely basis.The
userswill be able to tailor specificapplications to their needs.
The
manufacturer (MIS)29
1989).
In the du Pont example, the
AI
group recentralized the applicationswhen
itwas
appropriate.
They
did not take responsibilit)' for maintainingand evolving the application-- the user that developed the application
was
still responsible for it.However,
theAI
group helped disperse generally useful tools to other parts of the organization. Also, the
AI
group helped develop the links to other, oldersystems thatwould
otherwise beinaccessible to the end users.
In both oft'.es'^ c-""es. tl'e'" i^ a vf^'^d ^or '.ome progr?mrning
o
bedone
bythemanufacturer.
However,
thisprogramming
is driven by the need for consistency acrossmultiple user bouiiuanes. I believe that in these ca^es, tasks vyouid be most effec'iively
partitioned byusers developing their applications around a data
framework
designed andmaintained bythe manufacturer.
6
Conclusion
The
role of the user in the software development process has changed dramaticallyover the last few decades. In this paper, I undertook apilot studyto establish an empirical
basis for research on the actual partitioning of application
programming
tasksbetween
userand manufacturer. While the results ofthe present study
do
not pinpoint the optimalway
to partition tasks between the end user and specialist
programmer
of application software,they
do
demonstrate that both the user and manufacturer have rich databases ofinformation which are not easilytransferred across the user-manufacturer boundary.
Therefore, it is important to consider task partitioning and the implications ofstickydata
forthe locus ofirmovation and problem-solving in the software industry. Finally, they
30
manufacturer's environment and then transferring thesetools to the user's environment so
the user can develop his or her application independently ofthe manufacturer. I believe
the issues explored in this papercreate a substantial basis fora
more
rigorous empiricalstudy ofdifferent approaches to task partitioning
and
the impact ofsticky data in31
References
Applegate. Linda. 1989. "Frito-Lay, Inc..
A
StrategicTransition (C)." Harvard BusinessSchoofCase
Study #9-190-071, Harvard Business School, Boston, Mass.,December
1989."Artificial Intellieence Spotlight: Interviewwith
Ed
Mahler
-
Dupont." Computenvorld,(November
1987"): 59.Henderson,John, and Soonchul Lee. 1989. "I/S Design
Team
Performance:A
ControlTheory
Perspective." Sloan School ofManagement,
Massachusetts Institute ofTechnology, Cambridge, Mass.Lewis, Peter H. 1988. "The Executive Computer." Tlie
New
York Times, 26 February 1988,Fll.
Meng,
Brita. 1990. "Object-Orienied Pr'^gramn in^."Macworld
(January 1990): l/-'-80.Orlikowski,
Wanda
J. 1989. "DivisionAmong
the Ranks:The
Social Implications ofCASE
Tools for System Developers," 199-210. In Proceedings of the Tenth International
Conference on Information Systems, 4-6
December
1989, Boston.Salawav, G. 1987. ".An Organizational Learning
Approach
to Information Systems Development."MIS
Quarterly 11, no. 2 (1987): 245-6-:.von Hippel. Eric. 1978. "Successful Industrial Products
From
Customer
Ideas." Journal ofMarketingA2, no. 1 (January 1978): 39-49.
von
Hippel, Eric. 1990. "The Impact of 'Stick7Data'on
Innovation and Problem-Solving."Working
Paper No. 3147-90-BPS. Sloan School ofManagement,
Massachusetts Institute of Technology, Cambridge, Mass., April 1990.von Hippel, Eric. 1989. "Shifting Product and Service Prototyping to Users:
An
Innovation Process Advantage?"Working
Paper No. 3032-89-BPS, Sloan School ofManagement,
Massachusetts Institute ofTechnology, Cambridge, Mass., June 1989.von Hippel. Eric. 1988. TheSources ofInnovation.
New
York: Oxford University Press.von Hippel, Eric. 1989. "Task Partitioning:
An
Innovation Process Variable."Working
Paper No. 2030-88, Sloan School ofManagement,
Massachusetts Institute ofTechnology, Cambridge, Mass., April 1989.Ward,
Paul T. 1986. System Development Without Pain:A
User'sGuide to Modeling OrganizationalPatterns.New
York:Yourdon
Press.Date
Due
,.
o«v
jUH.'i'l'|i!ni|m|<|'|j|i|l|jj
3 iDflO