Rilasciamo Rilasciamo
How we moved from 3 releases / yr to biweekly releases, and stuff
About
● Francesco Mapelli (it’s me!)
○ Android Dev @Funambol
○ Certified Scrum Master
○ Prof of Lean Development &
Agile Methodologies @ Uni
Insubria
● Funambol
○ White Label Cloud Solution
○ B2B2C
○ Zefiro.me if you want to try it
Context
● Company
○ Scrum
■ feature & platform
teams (squad / chapter)
○ 3 Big Releases / Yr
● Android Team (Chapter)
○ Control of our processes
○ Mature team
● We go in production 3 times /
year.
○ Issues discovered late or
after release
○ Release Date -> Stress &
Fear
● After: bugfixing
● Can we do better?
○ We should release every
iteration… can we do it?
Stress
Courage
We can do it!
Planning
● Goals, Steps, Expectations
● Document
○ For mgmt (?)
○ It seems we know what
we’re doing
■ We don’t :-)
Goals
● Release every iteration a new
production-ready build
● Keep retrocompatibility with old
server version
● Use production to gather
information & adapt
Steps
● Migration to git
● Better automation of release
process
● Different approach to US &
Iterations
● Adapt our code practices
Expectations
● Team growth
● Better product
● Potentially shippable product
increment
● Faster reaction to issues /
feedbacks
(Team)
Expectations
(Company)
● Better User Stories
● Better feature selection and split
● More focus on delivering value
at every iteration
● Backward compatibility of a
client with older version of the
server
● General increment in agility
Drawbacks
● Initial overhead
● Help needed by POs, UAs,
Graphics etc
● Feature toggles / hiding /
disabling
● Risk of bugs in production
Fears
Bugs in production
There is something very
important we’re missing
We will deliver
something half-done
We will skip iteration
builds
We will have to fix things
immediately
We will have
compatibility issues
with server
We will get bad
reviews on the store
Everything will crash and burn
and we will be doomed
forever
Let’s do it!
...15 days later...
● Ugly icon in production (the
designer was not aware we
needed a new icon, we went with
a suboptimal version)
● Missing message (bug!)
● Wrong empty view (bug!)
Fears
✔ Bugs in
production
There is something very
important we’re missing
We will deliver
something half-done
We will skip iteration
builds
✔ We will have to fix things
immediately
We will have
compatibility issues
with server
We will get bad
reviews on the store
Everything will crash and burn
and we will be doomed
forever
But..
● Learned to think in advance
about UI and book the designer
● Release script publish in beta
● Bugs fixed and released in two
hours
● CTO saw a UI solution and
discussed with POs
● Team tried a new feature and
discussed timing & frequencies
of notifications
✔ Bugs in
production
✔ We will have to fix
things immediately
in 3 months
✔ Bugs in
production
✔ There is something
very important we’re
missing
✔ We will deliver
something half-done
We will skip iteration
builds
✔ We will have to fix things
immediately
We will have
compatibility issues
with server
✔ We will get bad
reviews on the store
Everything will crash and burn
and we will be doomed
forever
● The review highlighted a real
issue
● We fixed the issue and replied to
the user that the fix was coming
soon
● He changed the review to 5 stars
even before receiving the fix
I had a problem, but the developer
contacted me and he fixed this issue.
Thanks for excellent support!
✔ We will get bad
reviews on the store
● We discovered we didn’t have a
plan to handle the upgrade of the
server to the new version with a
client already on the newer
version
● We discovered it before the
upgrade happened so we were
able to handle the issue with a
couple of possible options
✔ There is
something very
important we’re
missing
● We released a feature that was
half done. No big issue but this
was unexpected.
● We added a few safety nets to
prevent partially done features to
be released in production
● Recently (last week!) we added
Experimental Feature mode: the
user can try the experimental
feature even when it’s not
completed
✔ We will deliver
something half-done
From fears to opportunities
👻 We will deliver something half
done
👻 We will have bugs in production
👻 We will get bad reviews on the
store
👻 There is something important we
are missing
👻 We will have to fix things
immediately
☆ We can deliver features
iteratively
☆ We will discover bugs earlier
☆ We can react quickly to user
feedbacks
☆ We can discover what we’re
missing
☆ We have the opportunity to fix
things immediately
Similar to other
iteration builds
“The target date for GA is
approaching [...] so we merged from
dev to master and published in beta
[...]. This for us is the GA candidate,
and we’ll move it to production as
GA [...] unless something bad
happens”
And the Release?
What happened
after?
● We’re still delivering every iteration
● Impacted positively the company
processes
● The company expects us to release
every iteration
○ For good and for bad :)
● Other teams started releasing more
often
● Team earned respect
Inside the company
● Three scenarios
○ Sometimes it helps a lot
■ If we’re both focused we can
iterate fast
○ Sometimes we have to figure out how to
release them a recent version
○ Sometimes better to give them an older
version
● It poses questions
○ For some we don’t have yet figured out
the answers. That’s good.
● The value stream sometime has
some waterfalls in it
With customers
● Team was key
● Remember the values?
○ Courage
○ Respect
○ Commitment
○ Focus
○ Openness
● No pushback from mgmt
Some takeaways
● It’s easier to take courageous
decisions after you took one
○ In the last year: RxJava, Kotlin, pull
requests
“The worst thing that can happen is
that it does not work”
Wider takeaways
● Cross pollination of practices -
sometime moving team members
helps
● Just one team can be your trailblazer
or benchmark: others will follow, if
it’s worth
○ In this way you can try different things in
different teams, if you want
● Practices and different approaches
are tools your company has in its
arsenal. Availability of practices is
good
Change by example
Questions?
Credits
● The amazing pictures I used are
courtesy of Clement127 -
https://www.flickr.com/photos/c
lement127
Contacts
● @mapelli
● https://www.linkedin.com/in/fran
cescomapelli/
● francesco.mapelli@gmail.com
Rilasciamo rilasciamo
Rilasciamo rilasciamo

More Related Content

PDF
Test-Driven Development
PDF
The Continuous Delivery process
PPT
what's blocking our way
PPTX
Joomla! Bug Squashing at JUG Sorø
PDF
Beyond Agile Software
PDF
Agile or: how I learned to stop worrying and love changing requirements
ODP
TDD Mini Workshop @ Bucharest JUG 2014 04 24
PDF
Automated Performance Testing
Test-Driven Development
The Continuous Delivery process
what's blocking our way
Joomla! Bug Squashing at JUG Sorø
Beyond Agile Software
Agile or: how I learned to stop worrying and love changing requirements
TDD Mini Workshop @ Bucharest JUG 2014 04 24
Automated Performance Testing

What's hot (20)

PDF
Releases: What are contributors responsible for
PPTX
Scrum model in game development
PPTX
Scale quality with kaizen - Tech.Rocks conference
PDF
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
PDF
Too Frequent Continuous Integration Build Failures?
PPT
Danny Patterson: Slow Down
PDF
Building Awesome Product Experience - Iteratively
PDF
How do you get accurate visibility on a multi-team project?
PPTX
Learnings adopting Large Scale Scrum
PPTX
Agile Past The Team - Pillar Template
PPTX
Scrum101
PDF
Why no one is looking for rockstar programmers (updated version)
PPTX
Simple Agile
PPTX
A Story’s Journey
PPTX
Treinamento TDD
PPTX
Scrum introduction
PDF
Use Scrum and Continuous Delivery to innovate like crazy!
PPTX
Creating change from within - Agile Practitioners 2012
PPTX
The 7 Deadly Sins Of Almost Being Agile
Releases: What are contributors responsible for
Scrum model in game development
Scale quality with kaizen - Tech.Rocks conference
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Too Frequent Continuous Integration Build Failures?
Danny Patterson: Slow Down
Building Awesome Product Experience - Iteratively
How do you get accurate visibility on a multi-team project?
Learnings adopting Large Scale Scrum
Agile Past The Team - Pillar Template
Scrum101
Why no one is looking for rockstar programmers (updated version)
Simple Agile
A Story’s Journey
Treinamento TDD
Scrum introduction
Use Scrum and Continuous Delivery to innovate like crazy!
Creating change from within - Agile Practitioners 2012
The 7 Deadly Sins Of Almost Being Agile
Ad

Similar to Rilasciamo rilasciamo (20)

PDF
Release Management for Large Enterprises
PPTX
Your Client Wants What
PDF
Ncerc rlmca202 adm m1 ssm
KEY
Beyond TDD: Enabling Your Team to Continuously Deliver Software
PDF
PDF
Learning Fast With A/B Testing and Continuous Deployment
PPTX
What the music of the 1980s taught me about shipping software
KEY
Thezenofscrum1 090221154550-phpapp01
PDF
Innovation Experiment Systems Practices (ICSOB 2015)
PDF
JDD2014: Agile transformation - how to change minds, deliver amazing results ...
PDF
SFScon21 - Paolo d’Incau - Going to production in a few months – How we did it!
PPTX
Intro To Continuous Delivery
KEY
Agile Development Overview (with a bit about builds)
PDF
Selling UX to Coders
PPTX
Culture, Processes and Tools of Continuous Delivery
PPTX
Rapid Product Development
PPTX
Doing agile with an ISO-20000 Telco (AgilePT 2015)
PDF
Releasing To Production Every Week
PPTX
Agile 101
PPT
Making the Agile Leap to Continuous Deployment
Release Management for Large Enterprises
Your Client Wants What
Ncerc rlmca202 adm m1 ssm
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Learning Fast With A/B Testing and Continuous Deployment
What the music of the 1980s taught me about shipping software
Thezenofscrum1 090221154550-phpapp01
Innovation Experiment Systems Practices (ICSOB 2015)
JDD2014: Agile transformation - how to change minds, deliver amazing results ...
SFScon21 - Paolo d’Incau - Going to production in a few months – How we did it!
Intro To Continuous Delivery
Agile Development Overview (with a bit about builds)
Selling UX to Coders
Culture, Processes and Tools of Continuous Delivery
Rapid Product Development
Doing agile with an ISO-20000 Telco (AgilePT 2015)
Releasing To Production Every Week
Agile 101
Making the Agile Leap to Continuous Deployment
Ad

More from Francesco Mapelli (8)

PDF
Agile Methodologies and Scrum / Lean Development and Agile Methodologies - 2...
PDF
Lean manufacturing, lean development and kanban - Lean Development and Agile ...
PDF
Software development, mobile platforms, cloud services - Lean Development and...
PDF
Agile and Lean: dalla pratica alla teoria
PDF
User stories, estimates, planning, design - Lean development and Agile method...
PDF
Agile methoologies and scrum - Lean development and Agile methodologies lesson 3
PDF
Lean Thinking - Lean development and Agile methodologies lesson 2
PDF
Software solution - Lean development and Agile methodologies lesson 1
Agile Methodologies and Scrum / Lean Development and Agile Methodologies - 2...
Lean manufacturing, lean development and kanban - Lean Development and Agile ...
Software development, mobile platforms, cloud services - Lean Development and...
Agile and Lean: dalla pratica alla teoria
User stories, estimates, planning, design - Lean development and Agile method...
Agile methoologies and scrum - Lean development and Agile methodologies lesson 3
Lean Thinking - Lean development and Agile methodologies lesson 2
Software solution - Lean development and Agile methodologies lesson 1

Recently uploaded (20)

PPTX
SC Robotics Team Safety Training Presentation
PDF
Mechanics of materials week 2 rajeshwari
PDF
IAE-V2500 Engine Airbus Family A319/320
PPTX
Unit IImachinemachinetoolopeartions.pptx
PDF
Engineering Solutions for Ethical Dilemmas in Healthcare (www.kiu.ac.ug)
PDF
Performance, energy consumption and costs: a comparative analysis of automati...
PPT
Module_1_Lecture_1_Introduction_To_Automation_In_Production_Systems2023.ppt
PPTX
AI-Reporting for Emerging Technologies(BS Computer Engineering)
PDF
ECT443_instrumentation_Engg_mod-1.pdf indroduction to instrumentation
PPTX
SE unit 1.pptx aaahshdhajdviwhsiehebeiwheiebeiev
PDF
ST MNCWANGO P2 WIL (MEPR302) FINAL REPORT.pdf
PPT
UNIT-I Machine Learning Essentials for 2nd years
PPTX
ARCHITECTURE AND PROGRAMMING OF EMBEDDED SYSTEMS
PDF
Research on ultrasonic sensor for TTU.pdf
PDF
BBC NW_Tech Facilities_30 Odd Yrs Ago [J].pdf
PPTX
Solar energy pdf of gitam songa hemant k
PDF
electrical machines course file-anna university
PPT
Comprehensive Java Training Deck - Advanced topics
PPT
Programmable Logic Controller PLC and Industrial Automation
PPTX
Research Writing, Mechanical Engineering
SC Robotics Team Safety Training Presentation
Mechanics of materials week 2 rajeshwari
IAE-V2500 Engine Airbus Family A319/320
Unit IImachinemachinetoolopeartions.pptx
Engineering Solutions for Ethical Dilemmas in Healthcare (www.kiu.ac.ug)
Performance, energy consumption and costs: a comparative analysis of automati...
Module_1_Lecture_1_Introduction_To_Automation_In_Production_Systems2023.ppt
AI-Reporting for Emerging Technologies(BS Computer Engineering)
ECT443_instrumentation_Engg_mod-1.pdf indroduction to instrumentation
SE unit 1.pptx aaahshdhajdviwhsiehebeiwheiebeiev
ST MNCWANGO P2 WIL (MEPR302) FINAL REPORT.pdf
UNIT-I Machine Learning Essentials for 2nd years
ARCHITECTURE AND PROGRAMMING OF EMBEDDED SYSTEMS
Research on ultrasonic sensor for TTU.pdf
BBC NW_Tech Facilities_30 Odd Yrs Ago [J].pdf
Solar energy pdf of gitam songa hemant k
electrical machines course file-anna university
Comprehensive Java Training Deck - Advanced topics
Programmable Logic Controller PLC and Industrial Automation
Research Writing, Mechanical Engineering

Rilasciamo rilasciamo

  • 1. Rilasciamo Rilasciamo How we moved from 3 releases / yr to biweekly releases, and stuff
  • 2. About ● Francesco Mapelli (it’s me!) ○ Android Dev @Funambol ○ Certified Scrum Master ○ Prof of Lean Development & Agile Methodologies @ Uni Insubria ● Funambol ○ White Label Cloud Solution ○ B2B2C ○ Zefiro.me if you want to try it
  • 3. Context ● Company ○ Scrum ■ feature & platform teams (squad / chapter) ○ 3 Big Releases / Yr ● Android Team (Chapter) ○ Control of our processes ○ Mature team
  • 4. ● We go in production 3 times / year. ○ Issues discovered late or after release ○ Release Date -> Stress & Fear ● After: bugfixing ● Can we do better? ○ We should release every iteration… can we do it? Stress
  • 6. Planning ● Goals, Steps, Expectations ● Document ○ For mgmt (?) ○ It seems we know what we’re doing ■ We don’t :-)
  • 7. Goals ● Release every iteration a new production-ready build ● Keep retrocompatibility with old server version ● Use production to gather information & adapt
  • 8. Steps ● Migration to git ● Better automation of release process ● Different approach to US & Iterations ● Adapt our code practices
  • 9. Expectations ● Team growth ● Better product ● Potentially shippable product increment ● Faster reaction to issues / feedbacks (Team)
  • 10. Expectations (Company) ● Better User Stories ● Better feature selection and split ● More focus on delivering value at every iteration ● Backward compatibility of a client with older version of the server ● General increment in agility
  • 11. Drawbacks ● Initial overhead ● Help needed by POs, UAs, Graphics etc ● Feature toggles / hiding / disabling ● Risk of bugs in production
  • 12. Fears Bugs in production There is something very important we’re missing We will deliver something half-done We will skip iteration builds We will have to fix things immediately We will have compatibility issues with server We will get bad reviews on the store Everything will crash and burn and we will be doomed forever
  • 14. ...15 days later... ● Ugly icon in production (the designer was not aware we needed a new icon, we went with a suboptimal version) ● Missing message (bug!) ● Wrong empty view (bug!)
  • 15. Fears ✔ Bugs in production There is something very important we’re missing We will deliver something half-done We will skip iteration builds ✔ We will have to fix things immediately We will have compatibility issues with server We will get bad reviews on the store Everything will crash and burn and we will be doomed forever
  • 16. But.. ● Learned to think in advance about UI and book the designer ● Release script publish in beta ● Bugs fixed and released in two hours ● CTO saw a UI solution and discussed with POs ● Team tried a new feature and discussed timing & frequencies of notifications ✔ Bugs in production ✔ We will have to fix things immediately
  • 17. in 3 months ✔ Bugs in production ✔ There is something very important we’re missing ✔ We will deliver something half-done We will skip iteration builds ✔ We will have to fix things immediately We will have compatibility issues with server ✔ We will get bad reviews on the store Everything will crash and burn and we will be doomed forever
  • 18. ● The review highlighted a real issue ● We fixed the issue and replied to the user that the fix was coming soon ● He changed the review to 5 stars even before receiving the fix I had a problem, but the developer contacted me and he fixed this issue. Thanks for excellent support! ✔ We will get bad reviews on the store
  • 19. ● We discovered we didn’t have a plan to handle the upgrade of the server to the new version with a client already on the newer version ● We discovered it before the upgrade happened so we were able to handle the issue with a couple of possible options ✔ There is something very important we’re missing
  • 20. ● We released a feature that was half done. No big issue but this was unexpected. ● We added a few safety nets to prevent partially done features to be released in production ● Recently (last week!) we added Experimental Feature mode: the user can try the experimental feature even when it’s not completed ✔ We will deliver something half-done
  • 21. From fears to opportunities 👻 We will deliver something half done 👻 We will have bugs in production 👻 We will get bad reviews on the store 👻 There is something important we are missing 👻 We will have to fix things immediately ☆ We can deliver features iteratively ☆ We will discover bugs earlier ☆ We can react quickly to user feedbacks ☆ We can discover what we’re missing ☆ We have the opportunity to fix things immediately
  • 22. Similar to other iteration builds “The target date for GA is approaching [...] so we merged from dev to master and published in beta [...]. This for us is the GA candidate, and we’ll move it to production as GA [...] unless something bad happens” And the Release?
  • 24. ● We’re still delivering every iteration ● Impacted positively the company processes ● The company expects us to release every iteration ○ For good and for bad :) ● Other teams started releasing more often ● Team earned respect Inside the company
  • 25. ● Three scenarios ○ Sometimes it helps a lot ■ If we’re both focused we can iterate fast ○ Sometimes we have to figure out how to release them a recent version ○ Sometimes better to give them an older version ● It poses questions ○ For some we don’t have yet figured out the answers. That’s good. ● The value stream sometime has some waterfalls in it With customers
  • 26. ● Team was key ● Remember the values? ○ Courage ○ Respect ○ Commitment ○ Focus ○ Openness ● No pushback from mgmt Some takeaways
  • 27. ● It’s easier to take courageous decisions after you took one ○ In the last year: RxJava, Kotlin, pull requests “The worst thing that can happen is that it does not work” Wider takeaways
  • 28. ● Cross pollination of practices - sometime moving team members helps ● Just one team can be your trailblazer or benchmark: others will follow, if it’s worth ○ In this way you can try different things in different teams, if you want ● Practices and different approaches are tools your company has in its arsenal. Availability of practices is good Change by example
  • 30. Credits ● The amazing pictures I used are courtesy of Clement127 - https://www.flickr.com/photos/c lement127