prerequisites for continuous software engineering
TRANSCRIPT
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
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?
”Smartphone platform X”Case Study
RESEARCH QUESTION:What are the prerequisites for using
Continuous Software Engineeringin software-intensive product development?
Section1/4FUTURE DEVELOPMENTS:
Roadmaps in Product-Focused Software Process
Improvement
”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
Lean Startup - method DevOps
Continuous Delivery Continuous Experimentation
Continuous Software Engineering:
Section 2/4
STUDYBACKGROUND
HOLISTIC MODELS FORCONTINUOUS
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
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
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
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
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.
Section 3/4
Case studySmartphone platform X
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.
• 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
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.
And now…. It is time for questions.
Email: [email protected]
Twitter: @ravennok
Thank You!
EcosystemOrganizing
Strategy
Organizing
Architecture
EXTRA SLIDES
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
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).