You are on page 1of 24

Translated from German to English - www.onlinedoctranslator.

com

From agile software development to


continuous deployment

Seminar "Contributions to Software Engineering" AG


Software Engineering
Free University of Berlin

Patrick Hobusch, 02/16/2017


Theme

• processes and practicesbeyondof agile software development

• Obstacles and key initiatives to success

• "Stairway to Heaven"

From agile software development to continuous deployment - Patrick Hobusch 2


Multiple case study

• Helena Holmstrom Olsson, Jan Bosch, and Hiva Alahyari. "Towards


R&D as innovation experiment systems: A framework for moving
beyond agile software development." Proceedings of the IASTED.
2013

• Semi-structured interviews with open questions

• A total of 32 interviews lasting at least 1 hour in five


companies

• Data analysis based on "Grounded Theory"

From agile software development to continuous deployment - Patrick Hobusch 3


Agile software development

• Reduce change fears and costs

• High value software

• Counter-movement to "traditional", plan-driven


software development

From agile software development to continuous deployment - Patrick Hobusch 4


continuous integration

• Regular process in which changes to the software are


integrated

• tool support

• Often includes other actions


• test execution
• code analysis
• Etc.

From agile software development to continuous deployment - Patrick Hobusch 5


Continuous deployment

• continuous delivery
• Deliverable software for every change
• Manual delivery of individual artifacts

• Continuous deployment
• Software delivery for each change

http://blog.crisp.se/2013/02/05/yassalsundman/continuous-delivery-vs-continuous-deployment

From agile software development to continuous deployment - Patrick Hobusch 6


Innovation Experiment Systems

• Data collection directly from the customer

• Derivation of new requirements

• Term coined by Jan Bosch

• "[…] requirements evolve in real-time based on data collected from


systems in actual use with customers instead of being frozen early
based on the opinions of product management […]”

From agile software development to continuous deployment - Patrick Hobusch 7


Occurrence of the stages in agile SE

• Which stages of the "Stairway to Heaven" are used bytheagile


software development covered?

• viewing of

• Agile Manifesto

• extreme programming

• scrum

From agile software development to continuous deployment - Patrick Hobusch 8th


Principles of the "Agile Manifesto"

• early,continuous deliveryof valuable software


• Openness to changes in requirements
• Deliveryworking softwarein short periods of time
• Daily collaboration between subject matter experts and developers
• Motivated individuals, support, trust
• Exchange of information in face-to-face conversations
• Working software as a measure of progress
• Sustainable development
• Technical excellence and good design
• simplicity
• self-organized teams
• reflection

From agile software development to continuous deployment - Patrick Hobusch 9


extreme programming

• sit together
• whole team
• Informational Workspace
• Energized Work
• pair programming
• Stories
• Weekly Cycle
• Quarterly Cycle
• Slack
• Ten Minute Build
• continuous integration
• Test First Programming
• Incremental design

From agile software development to continuous deployment - Patrick Hobusch 10


scrum

http://scrum-master.de/Was_ist_Scrum/Scrum_auf_einer_Seite_erklaert

From agile software development to continuous deployment - Patrick Hobusch 11


Conclusion on occurrence in agile SE

• Continuous integration included

• Continuous deployment often doesn't

• Innovation Experiment Systems not named

From agile software development to continuous deployment - Patrick Hobusch 12


Step to agile organization

• Advantages

• Shorter development cycles


• Improved response to changing customer requirements
• obstacles
• External dependencies on (non-agile) teams and suppliers
• control by management
• complex companies
• key initiatives
ecosystem Renegotiation of supplier contracts, approval of all
stakeholders, alignment of processes
Pursue Management commitment to create awareness for feature-oriented
development, team leaders instead of project managers

architecture Architect support in each team, feature teams


execution Self-directed team building

From agile software development to continuous deployment - Patrick Hobusch 13


step towards continuous integration

• Advantages

• A (potentially) shippable product at all times


• quality improvement
• obstacles
• Lack of test automation
• Lack of discipline regarding test cases and tools
• Need to learn new technologies and tools
• key initiatives
ecosystem Involvement of external suppliers
Pursue Moving away from milestones, regular deliveries
architecture Modularization of the software

execution TDD, test automation, alignment of the "validation" and


"verification" processes, avoidance of branching

From agile software development to continuous deployment - Patrick Hobusch 14


Step to Continuous Deployment

• Advantages

• Cheaper and faster development through earlier feedback


• obstacles
• Lack of knowledge about the quality of the overall product
• Strange feeling due to softer requirements
(working agile vs. delivering regularly)
• key initiatives
ecosystem Identify leading customers to start with
Pursue Adaptation of the business model
architecture Roll-back mechanisms, delivery of individual components
execution Alignment of the "Release" process

From agile software development to continuous deployment - Patrick Hobusch 15


Step to Innovation Experiment System

• Advantages

• Quick feedback on alternative solutions


• obstacles
• Resistance to delivery of "experimental features" (developers
as well as customers)
• key initiatives
ecosystem Involvement of the customer, quick answers possible
Pursue Business and pricing models support changes in
short cycles based on customer usage data
architecture Infrastructure allows adjustments at runtime, architecture
with data collection mechanisms
execution "Requirement", "Research & Development", "Validation" and
"Release" must all work together

From agile software development to continuous deployment - Patrick Hobusch 16


Comparison with agile SE study

• Minna Pikkarainen, et al. "Strengths and barriers behind the


successful agile deployment—insights from the three software
intensive companies in Finland." Empirical software engineering
17.6 (2012): 675-702.

• Multiple case study in 3 companies with focus on Scrum

• 5 pilot projects

• 40 semi-structured interviews (lasting at least 1 hour), 5 post-


mortem meetings, 12 improvement workshops

From agile software development to continuous deployment - Patrick Hobusch 17


category obstacles

case 1 case 2 case 3

architecture --
customer needs -
Technical Environment -- --
communication and collaboration +
estimation and planning - --
requirements management -- - -
project monitoring -
Testing

domain knowledge -
Learn

improvement techniques

self-organized teams +
UI process

Roles and responsibilities

documentation

version controlFrom agile software edevelopment towards-to Continuous D edeployment—Patrick Hobusch 18


Common hurdles I

• architecture
• Inflexible with stuck technical standards

• Technical Environment
• Use of tools for continuous integration
• Difficult synchronization between HW and SW development in
iterative cycles

• Testing
• Missing automatic tests

• customer needs
• Customers prefer to buy a product that immediately covers all
requirements

From agile software development to continuous deployment - Patrick Hobusch 19


Common hurdles II

• To know
• Lack of knowledge about agile methods among developers and
managers
• Lack of knowledge about application domain

• estimation and planning


• Unfavorable allocation of resources
• Developer in several projects
• Too big, complex projects
• Unclear responsibilities
• Traditional plans still in place
• priorities misunderstood
• Effort estimation difficult at first

From agile software development to continuous deployment - Patrick Hobusch 20


Summary

• The most important advantages and hurdles in the transition to Continuous


Deployment and Innovation Experiment Systems are presented

• Key initiatives presented for ecosystem, business model,


architecture and execution

• Together, these form a framework that successfully led to the


achievement of the individual stages in the companies under
consideration, which, however, should also be expanded

From agile software development to continuous deployment - Patrick Hobusch 21


Conclusion

• Reaching the levels "Continuous Deployment" or


"Innovation Experiment Systems" is only possible if
• everyone involved stands behind this goal
• they are given sufficient time to understand new
concepts, technologies and tools
• and everyone feels responsible for the success of the project

• long term
• This makes it easier for software companies and their customers to
work together
• the new achievements can lead to an increase in the value
of software and cost/time savings in the projects

From agile software development to continuous deployment - Patrick Hobusch 22


Thanks very much
for your attention
More literature

• Helena Holmstrom Olsson, Hiva Alahyari, and Jan Bosch.


"Climbing the" Stairway to Heaven" - A Multiple-Case Study
Exploring Barriers in the Transition from Agile Development
towards Continuous Deployment of Software." Software
Engineering and Advanced Applications (SEAA), 2012 38th
EUROMICRO Conference on. IEEE, 2012.

• Pilar Rodriguez, et al. "Continuous deployment of software


intensive products and services: A systematic mapping study."
Journal of Systems and Software 123 (2017): 263-291.

• Jan Bosch. "Building products as innovation experiment systems."


International Conference of Software Business. Springer Berlin
Heidelberg, 2012.

From agile software development to continuous deployment - Patrick Hobusch 24

You might also like