understanding and re-designing software development processes=jpl-understand-process-oct01

Upload: akbisoi1

Post on 14-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    1/40

    Understanding and(Re)Designing SoftwareDevelopment Processes

    Walt ScacchiInstitute for Software Research

    University of California, Irvine

    Irvine, CA 92697-3425 USA

    http://www.ics.uci.edu/~wscacchi/Presentations/JPL-Process-Oct01.ppt

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    2/40

    Recurring problems

    What is the best way to organize softwaredevelopment project?

    How to speed up development, reducecosts and improve software quality?

    How to achieve the quickest developmenteffort, lowest effective development cost,and best available product quality?

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    3/40

    Possible solutions

    Attain and improve maturity of softwaredevelopment capabilities (image)

    Get best people to practice standards-based development process supported byIDEs

    (Re)Design your software productionarchitecture (SPA) to optimize use ofdevelopment resources, processes, andpeople.

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    4/40

    Goals

    Present an approach for how tooptimize software production

    Identify key concepts, techniques, andtools that enable better optimization

    Describe optimization transformationsfrom business process redesign studies

    Describe opportunity areas forexploitation and use

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    5/40

    Definitions and Differences

    Software production: enterprise processesand resources that produce software

    Production strategies: business strategiesguiding overall approach to buildingsoftware

    Production architecture: configuration ofenterprise capabilities to enact strategies

    Optimizing production: minimizingenterprise configuration to maximizestrate ic o tions

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    6/40

    (Re)designing softwareproduction

    What first: to-be goal vs. as-is mess?

    If you dont know where you are, any road will do(proverb)

    Observation: people at work cannot describe the

    processes they do with high fidelity (tacitknowledge)

    Redesign necessitates understanding as-is, to-be,and here-to-there

    Creating high-performance work groups Empowerment, participation, incentivization

    (resource sovereignty), and recognitionW. Scacchi, Redesigning Contracted Service Procurement for Internet-based Electronic

    Commerce: A Case Study,J. Information Technology and Management, 2(3), 313-334, 2001.

    http://www.ics.uci.edu/~wscacchi/Papers/Internet-Procurement/Internet_Procurement.htmlhttp://www.ics.uci.edu/~wscacchi/Papers/Internet-Procurement/Internet_Procurement.htmlhttp://www.ics.uci.edu/~wscacchi/Papers/Internet-Procurement/Internet_Procurement.htmlhttp://www.ics.uci.edu/~wscacchi/Papers/Internet-Procurement/Internet_Procurement.htmlhttp://www.ics.uci.edu/~wscacchi/Papers/Internet-Procurement/Internet_Procurement.htmlhttp://www.ics.uci.edu/~wscacchi/Papers/Internet-Procurement/Internet_Procurement.html
  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    7/40

    Software Production Strategies

    Reduce costs

    Reduce cycle time

    Improve cash flow

    Customer satisfaction

    Increase sales

    Improve customer

    service

    Increase productivity

    Open new markets

    Open new channels

    Be innovation leader

    Increase marketshare

    Enable just-in-timeservice delivery

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    8/40

    Software ProductionArchitecture

    A composite modelthat interrelates software system architecture

    software process architecture

    development organization architecture network infrastructure and development

    tools/environment configuration

    documentation architecture customer-support knowledge base

    architectureP. Mi and W. Scacchi,A Meta-Model for Formulating Knowledge-Based Models ofSoftware Development,Decision Support Systems, 17(4):313-330, 1996.

    http://www.ics.uci.edu/~wscacchi/Papers/Process-Meta-Model.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process-Meta-Model.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process-Meta-Model.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process-Meta-Model.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process-Meta-Model.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process-Meta-Model.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process-Meta-Model.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process-Meta-Model.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process-Meta-Model.pdf
  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    9/40

    Optimizing Software Production

    Strategies provide global constraints oropportunities for optimizing softwareproduction

    Constraints and opportunities realized insoftware production enterprise

    Constraints and opportunities aredistributed across the software productionarchitecture

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    10/40

    Optimizing Software Production

    Optimization must address compositearchitecture of software production

    Local optimization of any componentarchitecture does not guarantee globaloptimality of software production

    Diagnostic analyses and transformationheuristics applied to compositearchitectural models lead to optimizationopportunities

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    11/40

    Optimizing Software Production

    Transformation heuristics classifiedtaxonomically

    Taxonomy classifies domain-independentand domain-specifichueristics

    DI transformations applied in anysoftwareproduction setting

    DS transformations applied to specificcomponent architectures

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    12/40

    Optimizing Software Production

    DI transformation classes (sample):

    Job scope

    Worker empowerment

    Organization design

    Workflow streamlining

    Information technology (IT)

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    13/40

    Research grant justification and approvalprocess at Office of Naval Research (c. 1995)

    W. Scacchi and J. Noll, Process-Driven Intranets: Life Cycle Support for Process

    ReengineeringIEEE Internet Computing, 1(5):42-49, 1997.

    http://www.usc.edu/dept/ATRIUM/Papers/PDI.pdfhttp://www.usc.edu/dept/ATRIUM/Papers/PDI.pdfhttp://www.usc.edu/dept/ATRIUM/Papers/PDI.pdfhttp://www.usc.edu/dept/ATRIUM/Papers/PDI.pdfhttp://www.usc.edu/dept/ATRIUM/Papers/PDI.pdfhttp://www.usc.edu/dept/ATRIUM/Papers/PDI.pdf
  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    14/40

    Optimizing Software Production

    IT transformation sub-classes (sample):

    Extend IT-based supportto manual processsteps

    Extend IT-based communication facilities toencourage information sharing activities

    Extend IT-based automation to incorporate

    new kinds of application packages Extend IT-based integration to interconnect

    and interrelate existing "islands ofautomation"

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    15/40

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    16/40

    As-is vs. to-be process

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    17/40

    Redesign/Optimization Results

    Reduction inprocurement process cycle times of20X, annual operational savings of $10-15M. Via transformation and realignment of information

    systems, business processes, corporate strategy, and

    work practices in a 1-2 year time frame. Participatory design, development and refinement of

    computational models of new work processes,resource configurations and work practices, together

    as an organizational system.

    W. Scacchi, Redesigning Contracted Service Procurement for Internet-Based Electronic Commerce: A

    Case Study,Information Technology and Management, 2(3):313-334, 2001.

    http://www.ics.uci.edu/~wscacchi/Papers/Internet-Procurement/Internet_Procurement.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Internet-Procurement/Internet_Procurement.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Internet-Procurement/Internet_Procurement.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Internet-Procurement/Internet_Procurement.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Internet-Procurement/Internet_Procurement.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Internet-Procurement/Internet_Procurement.pdf
  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    18/40

    Tools and Techniques

    Software process redesign case web

    Knowledge web for software production

    Process-driven intranets

    Organizational transformation

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    19/40

    Case study: Software

    development teamwork Comparative analysis of software

    specification teamwork (in complex

    setting) Five teams, 5-7 members, two-week (part-

    time) process that incorporates planning,formal notation, automated tool use,reusable assets, documentation tasks, andteam shared responsibility.

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    20/40

    What to Understand

    Work Structures and Shifts: Resourcearrangements, historical circumstances,division of labor and expertise, etc.

    Work Processes: Routine, habitual oremergent patterns of how work flowsamong people through/onto work

    structures Work Practices: Behavioral discourse

    and social dynamics enacted through

    work processes

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    21/40

    What to Understand

    Structures are domain independentconstructs

    Prescriptive/descriptive abstractions

    Processes are classes of workflow

    Descriptive and derived

    Prescriptive and composed

    Practices are instances

    Descriptive, historic and situated

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    22/40

    Comparative analysis ofsoftware specification

    teamwork Six work structure types observed: Negotiated,I

    ntegrated,R

    eplicated,D

    elegated,Prediscriminated and Separated

    Three structural shift types observed:

    anticipated ->,

    unanticipated -->>, role shift within work structure +.

    W k t t d hift

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    23/40

    Work structures and shifts(data)

    Team ID T1 T2 T3 T4 T5

    Team Size 6 7 7 7 5

    Reusable Exemplar no yes yes yes yes

    PROCESS

    A . Pre-pl annin g task N->R->I N->R->I N->R->I N->R->I N->R->I

    B. Plann in g task N N N N N

    c. I I I I -> S I -> S

    d. I I+ I S S

    e. P (D,I,I) P (D,I,I) P (D,I,I) P (D,S->I,I) P (D,D,I)

    f. D D D D Dg. R R R D D

    h. D I I D D

    C. Develop p rel im in ary I -->> I+ I+ I+ -> S+ I -> S+

    (info rm al) specif icatio n N -->>

    R -->> I

    D. Develop form al I+ I+ I+ S+ -->> S+

    (pro cessabl e) spec. N -->>

    E. Docum ent N -->> D P+ P+ N -->> P(D,D,I)write-up P(D,S->I,D)

    F. Docum entat ion D -->> D+ D+ D+ D+

    integrat ion N -->> I

    G. Docum ent review R R R N -->> R D

    H. Prepare for D -->> I+ N -->> I+ N -->> I+ D+

    Delivery N -->> I

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    24/40

    Findings

    Highest (lowest) qualityproduct(measured by automated tools): T1 (T5)

    Highest (lowest)productivity(self

    reported time expended): T5 (T1) Note the coincidentalrelationship

    Effectiveness of planning, automated

    tool use, asset reuse notclearlyassociated with high(low) quality orhigh(low) productivity

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    25/40

    Findings

    Teams falling primarily into Negotiativeand Integrative structures had higherquality

    Teams falling primarily into Delegative,Pre-discriminative or Separativestructures had higher productivity

    Computer supported work environmentsmust account for teamwork structuresas a usage parameter.

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    26/40

    Tools and Techniques

    Software process redesign case web

    Knowledge web for software production:

    Software production ontology

    Taxonomy for as-is diagnosis, redesignheuristics

    Best practices and lessons learned cross-

    linked Process-driven intranets

    Organizational transformationW. Scacchi and A. Valente,Developing a Knowledge Web for Business Process Redesign,

    Presented at the 1999 Knowledge Acquisition Workshop, Banff, Canada, October 1999.

    http://www.ics.uci.edu/~wscacchi/Papers/KnowledgeWeb/http://www.ics.uci.edu/~wscacchi/Papers/KnowledgeWeb/
  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    27/40

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    28/40

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    29/40

    Current field study

    Understanding open source softwarepractices and processes in differentdomains

    Academic research vs. Commercialdevelopment

    Deep Space Astronomy, Software Architecture

    Internet infrastructure, Networked computergames

    To produce and compare case studiesusing narrative, hypertext, and

    computational renderings.

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    30/40

    Tools and Techniques

    Software process redesign case web

    Knowledge web for software production:

    Process-driven intranets:

    Model, prototype, and enact softwareproduction architectures

    Organizational transformation

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    31/40

    Process-driven intranets

    Enable rapid configuration ofvirtualenterprises (VEs) across multipleorganizational domains

    Virtual enterprises for wide-areasoftware development have beendemonstrated

    Software production in VEs supportedand enacted via process navigation(process surfing)

    J. Noll and W. Scacchi, Supporting Software Development in Virtual Enterprises,Journal

    of Digital Information, 1(4), February 1999.

    http://www.ics.uci.edu/~wscacchi/Papers/JODI-1999.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/JODI-1999.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/JODI-1999.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/JODI-1999.pdf
  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    32/40

    Process-driven intranets

    Accommodate organizational autonomyand computer-supported cooperativework

    Accommodate heterogeneousrepositories of development artifacts(source code, etc.)

    Accommodate use of local tools anddevelopment environments

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    33/40

    Process-driven intranets

    Also see, J. Noll and W. Scacchi, Specifying Process-Oriented Hypertext for Organizational

    Computing,J. Network and Computer Applications, 24(1):39-61, 2001

    http://www.ics.uci.edu/~wscacchi/Papers/Process-Hypertext/Process-Hypertext.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process-Hypertext/Process-Hypertext.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process-Hypertext/Process-Hypertext.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process-Hypertext/Process-Hypertext.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process-Hypertext/Process-Hypertext.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process-Hypertext/Process-Hypertext.pdf
  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    34/40

    Process-driven intranets

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    35/40

    Tools and Techniques

    Software process redesign case web

    Knowledge web for software production

    Process-driven intranets

    Organizational transformation

    Whats involved?

    How long does it take?

    How much bang for the buck?

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    36/40

    Organizational transformation

    Collaborative participation to understandas-is, to-be, and here-to-there SPAs withinconstraints and contexts.

    Timeframe: 6-18 months

    Baseline investment (ROI):

    External: Invest $1 to realize $10

    savings/gain.

    Internal: Staff time, infrastructure usage, etc.

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    37/40

    Conclusions

    Software production can be optimized

    Optimizing software production is astrategic option/choice that can be realized

    Software production architectures andsupporting technologies enableoptimization

    Process improvement and productionoptimization are complementary efforts

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    38/40

    References S. Bendifallah and W. Scacchi, Work Structures and Shifts: A Study in Software

    Specification Teamwork, Proc. 11th. Intern. Conf. Software Engineering,Pittsburgh, PA, IEEE Press, 260-270, 1989.

    R. Conradi and A. Fuggetta. Software process improvement: what can beimproved? Politecnico di Milano, Dipartimento di Elettronica e Informazione,Submitted for publication, 2001.

    W. Scacchi and P. Mi, Process Life Cycle Engineering: A Knowledge-BasedApproach and Environment, Intelligent Systems in Accounting, Finance andManagement, 6:83-107, 1997.

    W. Scacchi, Understanding Software Process Redesign using Modeling,Analysis, and Simulation, Software Process--Improvement and Practice, 5(2/3),183-195, 2000.

    J.S. Choi and W. Scacchi, Modeling and Simulating Software AcquisitionProcess Architectures, Journal of Systems and Software, to appear, 2001

    Available at http://www.ics.uci.edu/~wscacchi/publications.html

    http://www.cefriel.it/~alfonso/documents/Papers/spi.pdfhttp://www.cefriel.it/~alfonso/documents/Papers/spi.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process_Engineering/Process_Life_Cycle.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process_Engineering/Process_Life_Cycle.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Software_Process_Redesign/SPIP-ProSim99.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Software_Process_Redesign/SPIP-ProSim99.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/ProSim-2K/ProSim-2K-Paper.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/ProSim-2K/ProSim-2K-Paper.pdfhttp://www.ics.uci.edu/~wscacchi/publications.htmlhttp://www.ics.uci.edu/~wscacchi/publications.htmlhttp://www.ics.uci.edu/~wscacchi/Papers/ProSim-2K/ProSim-2K-Paper.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/ProSim-2K/ProSim-2K-Paper.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Software_Process_Redesign/SPIP-ProSim99.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Software_Process_Redesign/SPIP-ProSim99.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process_Engineering/Process_Life_Cycle.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process_Engineering/Process_Life_Cycle.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process_Engineering/Process_Life_Cycle.pdfhttp://www.ics.uci.edu/~wscacchi/Papers/Process_Engineering/Process_Life_Cycle.pdfhttp://www.cefriel.it/~alfonso/documents/Papers/spi.pdfhttp://www.cefriel.it/~alfonso/documents/Papers/spi.pdf
  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    39/40

  • 7/30/2019 Understanding and Re-Designing Software Development Processes=JPL-Understand-Process-Oct01

    40/40