prerequisites for continuous software engineering

23
Teemu Karvonen, Tanja Sauvola, Pasi Kuvaja, and Markku Oivo University of Oulu, Finland Information Technology and Electrical Engineering The CRUSOE Framework A Holistic Approach to Analysing Prerequisites for Continuous Software Engineering PROFES 2016, Trondheim, Norway 22.-24.11.2016 Marko Juntunen University of Oulu, Finland Oulu Business School Tanja Suomalainen VTT Technical Research Centre of Finland

Upload: teemu-karvonen

Post on 12-Jan-2017

76 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Prerequisites for Continuous Software Engineering

Teemu Karvonen, Tanja Sauvola,

Pasi Kuvaja, and Markku OivoUniversity of Oulu, Finland

Information Technology and

Electrical Engineering

The CRUSOE Framework A Holistic Approach to

Analysing Prerequisites for Continuous Software Engineering

PROFES 2016, Trondheim, Norway 22.-24.11.2016

Marko Juntunen University of Oulu, Finland

Oulu Business School

Tanja SuomalainenVTT

Technical Research Centre of Finland

Page 2: Prerequisites for Continuous Software Engineering

Presentation contents

1. Future developments in Product-Focused Software Process Improvement– Experimentalism, DevOps, Continuous delivery…

2. Study background & Holistic models for case analysis:– Continuous Software Engineering (CSE) concepts

– ESAO - Ecosystem, Strategy, Architecture, and Organizing

– CRUSOE framework in a nutshell

3. ”Smartphone platform X” -case study– RQ: What are the prerequisites for CSE in software-

intensive product development?– Research design overview

4. Results:– Conclusion and discussion

Hello Trondheim!How are you?

Page 3: Prerequisites for Continuous Software Engineering

”Smartphone platform X”Case Study

RESEARCH QUESTION:What are the prerequisites for using

Continuous Software Engineeringin software-intensive product development?

Page 4: Prerequisites for Continuous Software Engineering

Section1/4FUTURE DEVELOPMENTS:

Roadmaps in Product-Focused Software Process

Improvement

Page 5: Prerequisites for Continuous Software Engineering

”DevOpsism”

Idea of developers and system

operators working in harmony

with little or no organizational

barriers between them towards

common goal.

Continuous delivery

“Delivery pipeline” - A way of

organizing a software delivery

process in which delivery

process is automated and

releases are done continuously.

Ideas and principles: Tools and practices:

”Experimentalism”

Idea that the way to truth (and

profit) is through experiments and

empiricism.

MVP

Minimum viable product (MVP) is a

(instrumented) product with just

enough features to gather

validated learning about the

product and its continued

development

PROCESS IMPROVEMENT ROADMAPS

Page 6: Prerequisites for Continuous Software Engineering

Lean Startup - method DevOps

Continuous Delivery Continuous Experimentation

Continuous Software Engineering:

Page 7: Prerequisites for Continuous Software Engineering

Section 2/4

STUDYBACKGROUND

Page 8: Prerequisites for Continuous Software Engineering

HOLISTIC MODELS FORCONTINUOUS

SOFTWARE ENGINEERING

Page 9: Prerequisites for Continuous Software Engineering

Business Strategy

Development Operations

Continuous Improvement

ContinuousPlanning

ContinuousBudgeting

ContinuousUse

ContinuousTrust

ContinuousRun-Time

Monitoring

Continuous Experimentation and Innovation

Continuous∗: a holistic view on activities from business, development, operations and innovation

Fitzgerald, B., Stol, K.J.: Continuous software engineering: A roadmap and agenda,

(2015)

ContinuousDelivery

ContinuousIntegration

ContinuousSecurity

ContinuousCompliance

ContinuousEvolution

ContinuousTesting

DevOpsBizDev

Page 10: Prerequisites for Continuous Software Engineering

A holistic view: Key questions in product development

Options for how to make profit from your products?

Options for technical means to build the software?

Options for roles, responsibilities and relationships?

Options for ecosystem and partnering?

STRATEGY & BUSINESS ARCHITECTURE

ORGANIZINGECOSYSTEM

Strategy

Organizing

Architecture

Page 11: Prerequisites for Continuous Software Engineering

Holistic models for product-development analysis

ESAO-modelBosch, J., Bosch-Sijtsema, P.:

ESAO: A Holistic Ecosystem-Driven Analysis Model. (2014).

Organizing

EcosystemOrganizing

Strategy Architecture

Organizing

Page 12: Prerequisites for Continuous Software Engineering

Simplified CRUSOE frameworkContinuous InteRdependencies in ProdUct-focused SOftware Engineering.

Strategy

Organizing

ArchitectureOrganizingWhat are the Options to connect Organizing with Architecture and Strategy?

ArchitectureWhat are the Options to connect Architecture with Strategy and Organizing?

StrategyWhat are the Options to connect Strategy with Organizing and Architecture?

What are options to connect Ecosystem, Strategy, Architecture and

Organizing?

The CRUSOE framework addresses 7 areas and 14 questions for analyzing holisticprerequisites for Continuous Software Engineering both from company internal andecosystem viewpoints..

1 4 2

6

3

75

Page 13: Prerequisites for Continuous Software Engineering

CRUSOE Framework Areas 1–7

Analysis Scope: Company Internal (I)

Analysis Scope:Ecosystem (E)

1* - Strategy What are the options for how the company generates revenue now and in the future? [ESAO-model]

What are the options that the company has available in its current role in the ecosystem? [ESAO-model]

2* - Architecture What are the options for technology choices, technical means and technical structures to build software-intensive products? [ESAO-model]

What are the options for how to design interfaces between the company’s internal architecture and related ecosystem partners, such as suppliers providing solutions and firms that build software on top of a product or platform? [ESAO-model]

3* - Organising What are the options for ways of organising work, ways of working, roles, responsibilities, processes and tools within software development? [ESAO-model]

What are the options for how a company works with customers, suppliers, and ecosystem partners in terms of processes, tools used, ways of working and ways of organising the collaboration? [ESAO-model]

4 - Strategy & Architecture interdependencies

What are the options to connect the internal strategy and architecture? E.g. what are the practices for continuously validating technology choices, technical means and technical structures that generate revenue now and in the future?

What are the options to connect the ecosystem strategy and architecture? E.g. what are the practices for continuously comparing different ecosystems’ technical capabilities and interfaces that generate revenue now and in the future?

5 - Strategy & Organising interdependencies

What are the options to connect the internal strategy and organising? E.g. practices for continuously adopting efficient ways of organising work, ways of working, roles, responsibilities, processes and tools.

What are the options to connect the ecosystem strategy and ecosystem organising? E.g. practices for continuously validating investments in ecosystem processes, tools, ways of working and ways of organising the collaboration in the ecosystem.

6 - Architecture & Organising interdependencies

What are the options to connect the architecture and organising? E.g. practices for continuously refactoring technical structures that provide efficient organising ways of working, roles, responsibilities, processes and tools.

What are the options to connect the ecosystem architecture and organising? E.g. practices for providing appropriate technical structures for continuous deployments and collaboration with customers and ecosystem partners.

7 - Strategy & Architecture & Organising interdependencies

What are the overarching company governance options for connecting the company strategy with technical architectures and with ways of organising? E.g. practices for enabling a company culture of continuous improvement, experimentation and innovation.

What are the overarching company governance options for connecting the company strategy with ecosystem interfaces and ways of collaborating with customers and ecosystem partners? E.g. practices for enabling a culture of continuous improvement, experimentation and innovation with customers and ecosystem partners.

CRUSOE framework

1

2

3

4

5

6

7

COMPANY INTERNAL ECOSYSTEM

What are the options for how to design interfaces between the company’s internal architecture and related

ecosystem partners, such as suppliers providing solutions and firms that build

software on top of a product or platform? [ESAO-model]

What are the options to connect the architecture and organising? E.g. practices for continuously

refactoring technical structures that provide efficient organising ways of working, roles, responsibilities,

processes and tools.

Page 14: Prerequisites for Continuous Software Engineering

Section 3/4

Case studySmartphone platform X

Page 15: Prerequisites for Continuous Software Engineering

Case study design

Case company

Size:• Personnel ~500

Offering products and servicesfor• Defence (military)• Public safety & security• Telecom• IOT and wearable solution• Special devices (platform)

Collected data:• 8 semi-structured face-to-face, 1- to 1.5-hour

interviews with business segment owner, product manager, project manager, qualitymanager, product specialists and developers

A comprehensive understanding of the • project’s goal and of development

and deployment practices

• information flow and interactions among company stakeholders, customers and suppliers

• company strategy planning practices and product development processes

Qualitative data-analysis by using CRUSOE framework areas (1-7) and pre-defined 14 questions.

Page 16: Prerequisites for Continuous Software Engineering
Page 17: Prerequisites for Continuous Software Engineering

• supply chain support (mechanics, chipset vendors, application dev)

• a team of experts to implement the technical CI and CD framework

• coaching projects on how to adopt CI development practice

• educated and motivated customer (public sector VS private sector)

5

Strategy and Organizing:

• over-the-air (OTA) update mechanism

• minimise breaks in service availability and deliver updates so that the end user is not interrupted (systems criticality)

• increase understanding of the experimentation process (HiPPO)

• methods for managing technical debt (piloting VS product quality)

• quality assurance practices and cycles for testing (automation)6

Architecture and Organizing:

• company’s senior management’s commitment (vision,

investment and leadership) 7

Overarching governance:

“What are the prerequisites for using Continuous Software Engineering

in a Smartphone platform X project?

4

Strategy and Architecture:

• synchronisation of development sprints with continuous strategic planning and budgeting cycles (2 weeks dev VS 3 months plan cycles)

CR

USO

E

Page 18: Prerequisites for Continuous Software Engineering

Applying Continuous Software Engineering to product-oriented development can involve a complex organizational change within and between software development and business activities.

Whereas the adoption of technical infrastructure and development practices is an important starting point for CSE, one should also consider the company’s culture, leadership and key stakeholder relations (ecosystem viewpoint).

CONCLUSION• ESAO model and CRUSOE framework has helped us to systematically

categorise and more clearly articulate the prerequisites for using CSE in

the case-study (smartphone platform) project.

• Continuous Software Engineering key prerequisites in a smartphone platform

project: • customer education and motivation,

• software ecosystem support,

• supply chain stakeholder support,

• leadership commitment,

• process rigor for experimentation,

• quality assurance process cycle duration,

• technical debt management,

• OTA updates with minimised breaks in service availability

• company internal experience sharing and bottom-up strategic planning.

Page 19: Prerequisites for Continuous Software Engineering

And now…. It is time for questions.

Email: [email protected]

Twitter: @ravennok

Thank You!

EcosystemOrganizing

Strategy

Organizing

Architecture

Page 20: Prerequisites for Continuous Software Engineering

EXTRA SLIDES

Page 21: Prerequisites for Continuous Software Engineering

Job title Job responsibilities Interview duration

Senior product manager Responsible for delivering product programs to customers 117 min

Software platform product owner Platform software component–related supervising 103 min

Quality manager Product quality management including conformance to product safety standards and environmental regulations 105 min

Senior specialist Design and implementation of continuous deployment processes and tools 104 min

President of the business segment Chief Executive Officer for the business segment 67 min

Business developer Product business development 78 min

Scrum master Responsible for coordinating software development team work 86 min

Product manager Responsible for coordination of the product program 92 min

Page 22: Prerequisites for Continuous Software Engineering

Recommended reading

Fitzgerald, B., Stol, K.J.: Continuous software engineering: A roadmap and agenda. Journal of Systems and Software (2015).

Bosch, J.: Continuous Software Engineering. Springer International Publishing, (2014).

Page 23: Prerequisites for Continuous Software Engineering