ibm rational software development conference 2008 rise of...ac16 ibm rational software development...

30
AC16 IBM Rational Software Development Conference IBM Rational Software Development Conference 2008 © 2007 IBM Corporation ® The Rise of the Development Environment Architect Peter Eeles Executive IT Architect, IBM [email protected]

Upload: others

Post on 10-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

AC16

IBM Rational SoftwareDevelopment ConferenceIBM Rational SoftwareDevelopment Conference

2008

© 2007 IBM Corporation

®

The Rise of the Development Environment Architect

Peter EelesExecutive IT Architect, [email protected]

Page 2: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 2

Agenda

� Introduction

� The architecture of a development environment

� Characteristics of a Development Environment Architect

� The process of architecting a development environment

� Benefits of architecting a development environment

� The Development Environment Maturity Model (DEMM)

� Summary

Page 3: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 3

Architecting in context

SoftwareApplication

DevelopmentEnvironment

Page 4: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 4

Architecture, Architect, Architecting

Development Environment Architect (Part of) a method

(Elements of) a development environment

Page 5: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 5

Agenda

� Introduction

� The architecture of a development environment

� Characteristics of a Development Environment Architect

� The process of architecting a development environment

� Benefits of architecting a development environment

� The Development Environment Maturity Model (DEMM)

� Summary

Page 6: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 6

Architecture

� Architecture is the fundamental organization of a system embodied in its

components, their relationships to each other, and to the environment,

and the principles guiding its design and evolution. [IEEE 1471]

� The software architecture of a program or computing system is the

structure or structures of the system, which comprise software elements,

the externally visible properties of those elements, and the relationships

among them. [Bass]

� [Architecture is] the organizational structure and associated behavior of

a system. An architecture can be recursively decomposed into parts that

interact through interfaces, relationships that connect parts, and

constraints for assembling parts. Parts that interact through interfaces

include classes, components and subsystems. [UML 1.5]

Page 7: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 7

What are the key components of a development environment?

An architecture defines structure

Page 8: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 8

An architecture defines structure

Tools(for automating aspects of

the method)

Tool selection

Tool configuration and integrations

Tool fitness-for-purpose

Tool integrations

Licensing

Enablement(in methods and tools)

Training curriculum

Training courses

Mentoring materials

Training and mentoring

Infrastructure(for methods, tools and

enablement)

Infrastructure specification Distribution of organization

Solution packaging

Installation and configuration

Adoption(of the environment)

Installation and configuration

Training and mentoring

Migration (including org. change)

Results

Governance (e.g. measurement)

Build

Run

Organization(to use and support methods, tools,

enablement, infrastructure)

Organization specification Skills

Centers of excellence

Methods

Content Deals With

Process + method content

Practices, standards, guidelines

Roles & responsibilities

Work products

Governance policies

Element

Functionality ( E.g. change m

gt, requirements m

gt, testing)

Qualities (E.g. usability, scalability, reliability, cost)

Constraints (E.g. geographic distribution, migration)

Page 9: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 9

An architecture defines behavior

� An architecture defines the interactions between structural elements

� These interactions provide the desired behavior

� Behavior of a development environment (examples)

�Method Guidance is provided when the method is followed

�Tools Work products are created when the tools are used

�Enablement Practitioners receive skills following training

�Infrastructure Qualities (such as tool performance) are realized

�Organization Assistance is provided by the helpdesk

�Adoption Projects are equipped with an appropriate environment

Page 10: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 10

An architecture is concerned with significant elements

� Significant elements

�Relate to some critical functionality of the system

�Relate to some critical property of the system

�Relate to a particular architectural challenge

�Are associated with a particular technical risk

�Relate to a capability that is considered to be unstable

�Relate to some key element of the solution

� Significant elements of a development environment (examples)

�Method Roles (and responsibilities), work products, tasks

�Tools Selected tools, integrations, licensing

�Enablement Training curriculum

�Infrastructure Geographic distribution, network connectivity

�Organization Organizational units (such as a helpdesk, communities)

�Adoption Rollout plan, migration strategy

Page 11: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 11

An architecture meets stakeholder needs

� Typical stakeholders of a development environment

�Practitioner

� Intuitive and correct behavior, performance, reliability, usability, availability, security

�System administrator

� Intuitive behavior, administration, tools to aid monitoring

�Customer

� Cost, return on investment, stability, schedule

� Implementers

� Clear requirements, simple and consistent design approach

�Maintainer

� Comprehensible, consistent and documented design approach, ease with which modifications can be made

�Sponsor

� Alignment of anticipated results with business and IT strategy

�Strategic suppliers

� Providing tools, training, infrastructure and second or third line support

Page 12: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 12

An architecture comes in many forms

Enterprise Architecture

System Architecture

Software

Architecture

Application

Architecture

Technical

Architecture

Hardware

Architecture

Organization

Architecture

Information

Architecture

IT Infrastructure

Development Environment Architecture

Method

Architecture

Tools

Architecture

Enablement

Architecture

Infrastructure

Architecture

Organization

Architecture

Adoption

Architecture

Page 13: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 13

Other characteristics of an architecture …

� An architecture is influenced by its environment

�Method Regulatory / organizational standards

�Tools Mandated tooling

�Enablement Existing elements of a training curriculum

�Infrastructure Existing infrastructure

�Organization Existing skills, organizational structures

�Adoption Ability to absorb change

� An architecture influences its environment

�New skills, roles, method, tools, infrastructure, migrated data

� An architecture embodies decisions based on rationale

�Decisions and rationale should be captured

� An architecture is present in every system

�But is easier to communicate if it’s documented

Page 14: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 14

Agenda

� Introduction

� The architecture of a development environment

� Characteristics of a Development Environment Architect

� The process of architecting a development environment

� Benefits of architecting a development environment

� The Development Environment Maturity Model (DEMM)

� Summary

Page 15: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 15

What are the key characteristics of an

architect?

Page 16: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 16

Characteristics of an architect

� The architect is a technical leader

�We are the technical lead for the development environment

� The architect understands the development process

�The architect must communicate with the team

� The architect has knowledge of the business domain

�Our “business domain” is “software development”

� The architect has technology knowledge

�The architect is not just a hand-waver

� The architect has design skills

�The architect can architect ☺

� The architect has programming skills

�The architect can “go deep” where necessary

Page 17: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 17

Characteristics of an architect (2)

� The architect is a good communicator

�As the technical lead, they must effectively interact with the team

� The architect is a mentor

�And should grow capability

� The architect is aware of organizational politics

�And needs to be “thick-skinned”

� The architect is a negotiator

�The “usual” tradeoffs of functionality, quality, schedule and cost apply

� The architect role may be fulfilled by a team

�Although there is normally a “lead architect”

� The architect makes decisions

�Otherwise the team will make their own decisions

“The life of a software architect is a

long and rapid succession of

suboptimal design decisions taken

partly in the dark.” [Kruchten]

Page 18: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 18

Agenda

� Introduction

� The architecture of a development environment

� Characteristics of a Development Environment Architect

� The process of architecting a development environment

� Benefits of architecting a development environment

� The Development Environment Maturity Model (DEMM)

� Summary

Page 19: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 19

Characteristics of architecting

� Architecting is a science

�We can apply scientific rigor to what we do in terms of, for example, reusable

assets, method, etc.

� Architecting is an art

�There is still a need for creativity

Page 20: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 20

Characteristics of architecting (2)

� Architecting changes emphasis over time

� Inception

� Scope the problem, identify risks, define overall plan

� Elaboration

� Baseline the architecture

� Construction

� Complete the system

� Transition

� Transition to end users

� Architecting spans many disciplines

� There is an involvement in requirements

� There is an involvement in testing

� There is an involvement in planning

Page 21: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 21

Characteristics of architecting (3)

� Architecting involves many stakeholders

�Understand who they are

� Architecting is involved in tradeoffs

�Help stakeholders understand the tradeoffs

� Architecting considers reusable assets

�Don’t reinvent the wheel

� Architecting is both top-down and bottom-up

�Driven by requirements, constraints, lessons learned

Page 22: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 22

Agenda

� Introduction

� The architecture of a development environment

� Characteristics of a Development Environment Architect

� The process of architecting a development environment

� Benefits of architecting a development environment

� The Development Environment Maturity Model (DEMM)

� Summary

Page 23: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 23

What are the key benefits of architecting?

Page 24: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 24

The benefits of architecting

� Architecting addresses system qualities

�Method Usability, configurability, …

�Tools Performance, scalability, …

�Enablement Usability, …

�Infrastructure Performance, …

�Organization Evolvability, …

�Adoption Installability, maintainability, …

� Architecting ensures architectural integrity

�Across method, tools, enablement, infrastructure, organization, adoption

� Architecting supports the planning process

�Provides input on dependencies, risks, effort, skills etc.

� Architecting provides a basis for reuse

�Solution elements are often applied to more than one project

Page 25: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 25

The benefits of architecting (2)

� Architecting drives consensus

�By ensuring a fit between requirements and reality (the solution)

� Architecting helps manage complexity

�By focusing on appropriate abstractions

� Architecting supports impact analysis

�Through an understanding of the relationships between architectural elements

� Architecting reduces maintenance costs

�Since “maintainability” is one of our considerations

Page 26: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 26

Agenda

� Introduction

� The architecture of a development environment

� Characteristics of a Development Environment Architect

� The process of architecting a development environment

� Benefits of architecting a development environment

� The Development Environment Maturity Model (DEMM)

� Summary

Page 27: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 27

Development Environment Maturity Model (DEMM)Level 1(Initial)

Ad hoc

Methods

Tools(for automating aspects of

the method)

Infrastructure(for methods, tools and

enablement)

Organization(to use and support methods, tools,

enablement, infrastructure)

Enablement(in methods and tools)

Adoption(of the environment)

Build

Run

ElementLevel 2(Repeatable)

Standard

Level 3(Defined)

Integrated

Level 4(Managed)

Measured

Level 5(Optimizing)

Improving

Ad hoc

Standalone

Inconsistent

Non-standard

Inconsistent

Chaotic

Controlled Integrated Measured Improving

Smooth

Integrated

Program

Single

Team Working

Streamlined

Tuned

Focused

Tuned

Performing

Improving

Improving

Monitored

Measured

Monitored

Standard

Consistent

Standard

Consistent

Good enough

NowEnd08 ?

NowEnd

08?

NowEnd

08?

NowEnd

08?

NowEnd

08?

NowEnd

08?

Page 28: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 28

Summary

� Development Environment Architects are … Architects!

� Through analogy with software and systems engineering, we can better-

understand the role of the Development Environment Architect

�Architecture

�Architect

�Architecting

�Benefits of architecting

� The Development Environment Maturity Model can help us better-

understand where we are … and where we want to be

� White paper

�http://www.ibm.com/developerworks/rational/library/edge/08/apr08/eeles/index

.html

Page 29: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 29

QUESTIONS

Page 30: IBM Rational Software Development Conference 2008 Rise of...AC16 IBM Rational Software Development Conference 2008 ©2007 IBM Corporation ® The Rise of the Development Environment

IBM Rational Software Development Conference 2008

AC16 30

© Copyright IBM Corporation 2008. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, the on-demand business logo, Rational, the Rational logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.

Learn more at:

� IBM Rational software

� IBM Rational Software Delivery Platform

� Process and portfolio management

� Change and release management

� Quality management

� Architecture management

� Rational trial downloads

� Leading Innovation Web site

� developerWorks Rational

� IBM Rational TV

� IBM Rational Business Partners

THANKYOU