SlideShare a Scribd company logo

Making software development processes to work for you

Ambientia
Ambientia

JIRA & Confluence Nordic Conference 9.10.2014 Mikko Paukkila, Nokia

1 of 25
Download to read offline
Making software
development
processes to
work for you
Optimizing investments to balance between bureaucracy and
total liberalism in software development
Mikko Paukkila – 9-Oct-2014
Background
• Mikko Paukkila is a Principal Systems Engineer in software build, release,
testing and integration area. He has experience of multiple software
development environments like Linux, Mac, Windows, Android, Qt, Symbian
etc. He has also wide knowledge of agile & lean processes and related tools
from small 10-20 people software&hardware development product projects
to very large programs of 1000+ developers. He has been driving deployment
of continuous integration processes in an international environment and has
been administrating related tools like Jenkins and Gerrit. Expert of SCM
tools like git. Mikko currently for Nokia Technologies for imaging technology
business.
• Disclaimer:
The presentation will contain a lot of opinions that are mine, not company’s.
Some words about software
development processes
From need to product
Purpose of software development processes&tools should be enabled smooth
flow between these phases:
1. From (customer) need to requirement
2. From requirement to a software change
3. From software change to high quality product
4. Product creation/finalization process
Requirement
management
Product
creation
Software
development
And not forgetting feedback loop.
Continuous Integration enables fast and
extensive feedback of software changes that
are in our release chain. This is done by
automated tools, but it requires that
developer commits software change(s) often
and react fast if there are problems in
builds.
CI is done to enable errors and integration
problems to be found earlier. This eventually
leads us to produce better quality software
already from the beginning and enables also
us to get our products and solutions faster to
the market.
Basic Continuous Integration system:
Continuous Integration
Developer practices:
1. Commit changes often
2. Follow the status
(build & test results)
3. React when needed
(debug, fix, merge etc.)
Automated
testingFast builds
Enablers of Continuous
Integration
Version control
system (git,…)
Build system
(e.g. Jenkins)
Test automation
system
Developers
+ other linked practices: Test Driven Development, …
Instant feedback and easy
access to the latest
environment and results
What? Why?
Error cost curve:
CI
Continuous Integration tools
Ad

Recommended

The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014David Funaro
 
ISTQB Agile Tester - Agile Test Tools
ISTQB Agile Tester - Agile Test ToolsISTQB Agile Tester - Agile Test Tools
ISTQB Agile Tester - Agile Test ToolsMoataz Nabil
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013David Funaro
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WaySmartBear
 
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demoAgile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demoGrid Dynamics
 

More Related Content

What's hot

The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - FunaroCodemotion
 
Continuous Integration Practices
Continuous Integration Practices Continuous Integration Practices
Continuous Integration Practices Marcelo Freire
 
How Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom LineHow Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom LineImaginet
 
The Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous DeliveryThe Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous DeliveryPerforce
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationRahul Sudame
 
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi SharmaAgile Testing Alliance
 
Project Management With Scrum
Project Management With ScrumProject Management With Scrum
Project Management With ScrumTommy Norman
 
Agile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureAgile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureWee Witthawaskul
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsLinards Liep
 
Continuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database InsightsContinuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database InsightsMichael Medin
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveWee Witthawaskul
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Jean-Philippe Briend
 
Building an Automated Database Deployment Pipeline
Building an Automated Database Deployment PipelineBuilding an Automated Database Deployment Pipeline
Building an Automated Database Deployment PipelineGrant Fritchey
 
Agile Adoption Story in LGE (Aps2010)
Agile Adoption Story in LGE (Aps2010)Agile Adoption Story in LGE (Aps2010)
Agile Adoption Story in LGE (Aps2010)Woogon Shim
 
Agile Testing Introduction
Agile Testing IntroductionAgile Testing Introduction
Agile Testing IntroductionHai Tran Son
 
Dev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops toolsDev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops toolsJanBask Training
 
Building an automated database deployment pipeline
Building an automated database deployment pipelineBuilding an automated database deployment pipeline
Building an automated database deployment pipelineRed Gate Software
 
Automated Database Deployment at SQL Rally
Automated Database Deployment at SQL RallyAutomated Database Deployment at SQL Rally
Automated Database Deployment at SQL RallyGrant Fritchey
 
Dev ops is more than CI+CD tools
Dev ops is more than CI+CD toolsDev ops is more than CI+CD tools
Dev ops is more than CI+CD toolsSudipta Lahiri
 

What's hot (20)

The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 
Continuous Integration Practices
Continuous Integration Practices Continuous Integration Practices
Continuous Integration Practices
 
How Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom LineHow Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom Line
 
The Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous DeliveryThe Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous Delivery
 
Top DevOps tools
Top DevOps toolsTop DevOps tools
Top DevOps tools
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
 
Project Management With Scrum
Project Management With ScrumProject Management With Scrum
Project Management With Scrum
 
Agile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureAgile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai Culture
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepins
 
Continuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database InsightsContinuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database Insights
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer Perspective
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
 
Building an Automated Database Deployment Pipeline
Building an Automated Database Deployment PipelineBuilding an Automated Database Deployment Pipeline
Building an Automated Database Deployment Pipeline
 
Agile Adoption Story in LGE (Aps2010)
Agile Adoption Story in LGE (Aps2010)Agile Adoption Story in LGE (Aps2010)
Agile Adoption Story in LGE (Aps2010)
 
Agile Testing Introduction
Agile Testing IntroductionAgile Testing Introduction
Agile Testing Introduction
 
Dev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops toolsDev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops tools
 
Building an automated database deployment pipeline
Building an automated database deployment pipelineBuilding an automated database deployment pipeline
Building an automated database deployment pipeline
 
Automated Database Deployment at SQL Rally
Automated Database Deployment at SQL RallyAutomated Database Deployment at SQL Rally
Automated Database Deployment at SQL Rally
 
Dev ops is more than CI+CD tools
Dev ops is more than CI+CD toolsDev ops is more than CI+CD tools
Dev ops is more than CI+CD tools
 

Viewers also liked

Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0Jasmine Conseil
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0Jasmine Conseil
 
Designing OpenStack Architectures
Designing OpenStack ArchitecturesDesigning OpenStack Architectures
Designing OpenStack ArchitecturesMirantis
 
Deep dive into highly available open stack architecture openstack summit va...
Deep dive into highly available open stack architecture   openstack summit va...Deep dive into highly available open stack architecture   openstack summit va...
Deep dive into highly available open stack architecture openstack summit va...Arthur Berezin
 
OpenStack Architecture and Use Cases
OpenStack Architecture and Use CasesOpenStack Architecture and Use Cases
OpenStack Architecture and Use CasesJalal Mostafa
 
Delivering IaaS with Open Source Software
Delivering IaaS with Open Source SoftwareDelivering IaaS with Open Source Software
Delivering IaaS with Open Source SoftwareMark Hinkle
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack ArchitectureMirantis
 

Viewers also liked (7)

Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Designing OpenStack Architectures
Designing OpenStack ArchitecturesDesigning OpenStack Architectures
Designing OpenStack Architectures
 
Deep dive into highly available open stack architecture openstack summit va...
Deep dive into highly available open stack architecture   openstack summit va...Deep dive into highly available open stack architecture   openstack summit va...
Deep dive into highly available open stack architecture openstack summit va...
 
OpenStack Architecture and Use Cases
OpenStack Architecture and Use CasesOpenStack Architecture and Use Cases
OpenStack Architecture and Use Cases
 
Delivering IaaS with Open Source Software
Delivering IaaS with Open Source SoftwareDelivering IaaS with Open Source Software
Delivering IaaS with Open Source Software
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 

Similar to Making software development processes to work for you

Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOpsEklove Mohan
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareDevOps for Enterprise Systems
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own wordsSUBHENDU KARMAKAR
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1G R VISHAL
 
#ESPC19 How to do #DevOps with #SPFx
#ESPC19 How to do #DevOps with #SPFx#ESPC19 How to do #DevOps with #SPFx
#ESPC19 How to do #DevOps with #SPFxVincent Biret
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAdam Stephensen
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answersHopeTutors1
 
Session on evaluation of DevSecOps
Session on evaluation of DevSecOpsSession on evaluation of DevSecOps
Session on evaluation of DevSecOpsAbdullah al Mamun
 
Developing PHP Applications Faster
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications FasterAdam Culp
 
An evening with... DevOps
An evening with... DevOpsAn evening with... DevOps
An evening with... DevOpsArkhotech
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build AutomationHeiswayi Nrird
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test AutomationSauce Labs
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAppDynamics
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGroup
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOpsMoataz Mahmoud
 

Similar to Making software development processes to work for you (20)

Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1
 
#ESPC19 How to do #DevOps with #SPFx
#ESPC19 How to do #DevOps with #SPFx#ESPC19 How to do #DevOps with #SPFx
#ESPC19 How to do #DevOps with #SPFx
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
DevOps Presentation.pptx
DevOps Presentation.pptxDevOps Presentation.pptx
DevOps Presentation.pptx
 
intro to DevOps
intro to DevOpsintro to DevOps
intro to DevOps
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answers
 
Session on evaluation of DevSecOps
Session on evaluation of DevSecOpsSession on evaluation of DevSecOps
Session on evaluation of DevSecOps
 
Developing PHP Applications Faster
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications Faster
 
Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model
 
An evening with... DevOps
An evening with... DevOpsAn evening with... DevOps
An evening with... DevOps
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOps
 

More from Ambientia

Itms atlassian way-final-2017-10
Itms atlassian way-final-2017-10Itms atlassian way-final-2017-10
Itms atlassian way-final-2017-10Ambientia
 
Dev ops atlassianway-final-2017-10
Dev ops atlassianway-final-2017-10Dev ops atlassianway-final-2017-10
Dev ops atlassianway-final-2017-10Ambientia
 
Insight Asset Management for JIRA Service Desk
Insight Asset Management for JIRA Service DeskInsight Asset Management for JIRA Service Desk
Insight Asset Management for JIRA Service DeskAmbientia
 
APIen hallinnalla uutta liiketoimintaa
APIen hallinnalla uutta liiketoimintaaAPIen hallinnalla uutta liiketoimintaa
APIen hallinnalla uutta liiketoimintaaAmbientia
 
Miten API management toimii
Miten API management toimiiMiten API management toimii
Miten API management toimiiAmbientia
 
Tunnistamalla asiakaspolut tehostat asiakaspalvelusi toimintaa
Tunnistamalla asiakaspolut tehostat asiakaspalvelusi toimintaaTunnistamalla asiakaspolut tehostat asiakaspalvelusi toimintaa
Tunnistamalla asiakaspolut tehostat asiakaspalvelusi toimintaaAmbientia
 
OpenShift-webinaari 31.1. / Ambientian esitykset
OpenShift-webinaari 31.1. / Ambientian esityksetOpenShift-webinaari 31.1. / Ambientian esitykset
OpenShift-webinaari 31.1. / Ambientian esityksetAmbientia
 
ITSM & JIRA Service Desk
ITSM & JIRA Service DeskITSM & JIRA Service Desk
ITSM & JIRA Service DeskAmbientia
 
Ambientia Service Design -työpaja SYTYKE
Ambientia Service Design -työpaja SYTYKEAmbientia Service Design -työpaja SYTYKE
Ambientia Service Design -työpaja SYTYKEAmbientia
 
Liferayn rooli Valtorin palveluvalikoimassa
Liferayn rooli Valtorin palveluvalikoimassaLiferayn rooli Valtorin palveluvalikoimassa
Liferayn rooli Valtorin palveluvalikoimassaAmbientia
 
Digitaalinen asiakaskokemus ja palvelumuotoilu
Digitaalinen asiakaskokemus ja palvelumuotoiluDigitaalinen asiakaskokemus ja palvelumuotoilu
Digitaalinen asiakaskokemus ja palvelumuotoiluAmbientia
 
Liferay Audience Targeting
Liferay Audience TargetingLiferay Audience Targeting
Liferay Audience TargetingAmbientia
 
Case Procountor: Zephyr test tool deployment
Case Procountor: Zephyr test tool deploymentCase Procountor: Zephyr test tool deployment
Case Procountor: Zephyr test tool deploymentAmbientia
 
JIRA Portfolio
JIRA PortfolioJIRA Portfolio
JIRA PortfolioAmbientia
 
Case Containerships JIRA Service Desk
Case Containerships JIRA Service DeskCase Containerships JIRA Service Desk
Case Containerships JIRA Service DeskAmbientia
 
Liferay Road Show Sosiaali- ja terveysministeriö
Liferay Road Show Sosiaali- ja terveysministeriöLiferay Road Show Sosiaali- ja terveysministeriö
Liferay Road Show Sosiaali- ja terveysministeriöAmbientia
 
Liferay Road Show Responsiivinen suunnittelu
Liferay Road Show Responsiivinen suunnitteluLiferay Road Show Responsiivinen suunnittelu
Liferay Road Show Responsiivinen suunnitteluAmbientia
 
Liferay Road Show Linnunmaa LEX
 Liferay Road Show Linnunmaa LEX Liferay Road Show Linnunmaa LEX
Liferay Road Show Linnunmaa LEXAmbientia
 
Liferay Road Show Rolf van der Steen
Liferay Road Show Rolf van der SteenLiferay Road Show Rolf van der Steen
Liferay Road Show Rolf van der SteenAmbientia
 

More from Ambientia (20)

Itms atlassian way-final-2017-10
Itms atlassian way-final-2017-10Itms atlassian way-final-2017-10
Itms atlassian way-final-2017-10
 
Dev ops atlassianway-final-2017-10
Dev ops atlassianway-final-2017-10Dev ops atlassianway-final-2017-10
Dev ops atlassianway-final-2017-10
 
Insight Asset Management for JIRA Service Desk
Insight Asset Management for JIRA Service DeskInsight Asset Management for JIRA Service Desk
Insight Asset Management for JIRA Service Desk
 
APIen hallinnalla uutta liiketoimintaa
APIen hallinnalla uutta liiketoimintaaAPIen hallinnalla uutta liiketoimintaa
APIen hallinnalla uutta liiketoimintaa
 
Miten API management toimii
Miten API management toimiiMiten API management toimii
Miten API management toimii
 
Tunnistamalla asiakaspolut tehostat asiakaspalvelusi toimintaa
Tunnistamalla asiakaspolut tehostat asiakaspalvelusi toimintaaTunnistamalla asiakaspolut tehostat asiakaspalvelusi toimintaa
Tunnistamalla asiakaspolut tehostat asiakaspalvelusi toimintaa
 
OpenShift-webinaari 31.1. / Ambientian esitykset
OpenShift-webinaari 31.1. / Ambientian esityksetOpenShift-webinaari 31.1. / Ambientian esitykset
OpenShift-webinaari 31.1. / Ambientian esitykset
 
ITSM & JIRA Service Desk
ITSM & JIRA Service DeskITSM & JIRA Service Desk
ITSM & JIRA Service Desk
 
Ambientia Service Design -työpaja SYTYKE
Ambientia Service Design -työpaja SYTYKEAmbientia Service Design -työpaja SYTYKE
Ambientia Service Design -työpaja SYTYKE
 
Liferayn rooli Valtorin palveluvalikoimassa
Liferayn rooli Valtorin palveluvalikoimassaLiferayn rooli Valtorin palveluvalikoimassa
Liferayn rooli Valtorin palveluvalikoimassa
 
Digitaalinen asiakaskokemus ja palvelumuotoilu
Digitaalinen asiakaskokemus ja palvelumuotoiluDigitaalinen asiakaskokemus ja palvelumuotoilu
Digitaalinen asiakaskokemus ja palvelumuotoilu
 
Liferay Audience Targeting
Liferay Audience TargetingLiferay Audience Targeting
Liferay Audience Targeting
 
Case Procountor: Zephyr test tool deployment
Case Procountor: Zephyr test tool deploymentCase Procountor: Zephyr test tool deployment
Case Procountor: Zephyr test tool deployment
 
JIRA Portfolio
JIRA PortfolioJIRA Portfolio
JIRA Portfolio
 
Case Containerships JIRA Service Desk
Case Containerships JIRA Service DeskCase Containerships JIRA Service Desk
Case Containerships JIRA Service Desk
 
Jira 7
Jira 7Jira 7
Jira 7
 
Liferay Road Show Sosiaali- ja terveysministeriö
Liferay Road Show Sosiaali- ja terveysministeriöLiferay Road Show Sosiaali- ja terveysministeriö
Liferay Road Show Sosiaali- ja terveysministeriö
 
Liferay Road Show Responsiivinen suunnittelu
Liferay Road Show Responsiivinen suunnitteluLiferay Road Show Responsiivinen suunnittelu
Liferay Road Show Responsiivinen suunnittelu
 
Liferay Road Show Linnunmaa LEX
 Liferay Road Show Linnunmaa LEX Liferay Road Show Linnunmaa LEX
Liferay Road Show Linnunmaa LEX
 
Liferay Road Show Rolf van der Steen
Liferay Road Show Rolf van der SteenLiferay Road Show Rolf van der Steen
Liferay Road Show Rolf van der Steen
 

Recently uploaded

Dynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineeringDynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineeringMassimo Talia
 
Battle of React State Managers in frontend applications
Battle of React State Managers in frontend applicationsBattle of React State Managers in frontend applications
Battle of React State Managers in frontend applicationsEvangelia Mitsopoulou
 
Apex Replay Debugger and Salesforce Platform Events.pptx
Apex Replay Debugger and Salesforce Platform Events.pptxApex Replay Debugger and Salesforce Platform Events.pptx
Apex Replay Debugger and Salesforce Platform Events.pptxmohayyudin7826
 
Curtain Module Manual Zigbee Neo CS01-1C.pdf
Curtain Module Manual Zigbee Neo CS01-1C.pdfCurtain Module Manual Zigbee Neo CS01-1C.pdf
Curtain Module Manual Zigbee Neo CS01-1C.pdfDomotica daVinci
 
Relationship Counselling: From Disjointed Features to Product-First Thinking ...
Relationship Counselling: From Disjointed Features to Product-First Thinking ...Relationship Counselling: From Disjointed Features to Product-First Thinking ...
Relationship Counselling: From Disjointed Features to Product-First Thinking ...Product School
 
"Running Open-Source LLM models on Kubernetes", Volodymyr Tsap
"Running Open-Source LLM models on Kubernetes",  Volodymyr Tsap"Running Open-Source LLM models on Kubernetes",  Volodymyr Tsap
"Running Open-Source LLM models on Kubernetes", Volodymyr TsapFwdays
 
"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google
"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google
"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, GoogleISPMAIndia
 
Confoo 2024 Gettings started with OpenAI and data science
Confoo 2024 Gettings started with OpenAI and data scienceConfoo 2024 Gettings started with OpenAI and data science
Confoo 2024 Gettings started with OpenAI and data scienceSusan Ibach
 
LF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIELF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIEDanBrown980551
 
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...htrindia
 
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERNRonnelBaroc
 
AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...
AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...
AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...ISPMAIndia
 
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...DianaGray10
 
How to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response PlanHow to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response PlanDatabarracks
 
Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?MENGSAYLOEM1
 
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Product School
 
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24Umar Saif
 
Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...
Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...
Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...MarcovanHurne2
 
AI Act & Standardization: UNINFO involvement
AI Act & Standardization: UNINFO involvementAI Act & Standardization: UNINFO involvement
AI Act & Standardization: UNINFO involvementMimmo Squillace
 
Power of 2024 - WITforce Odyssey.pptx.pdf
Power of 2024 - WITforce Odyssey.pptx.pdfPower of 2024 - WITforce Odyssey.pptx.pdf
Power of 2024 - WITforce Odyssey.pptx.pdfkatalinjordans1
 

Recently uploaded (20)

Dynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineeringDynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineering
 
Battle of React State Managers in frontend applications
Battle of React State Managers in frontend applicationsBattle of React State Managers in frontend applications
Battle of React State Managers in frontend applications
 
Apex Replay Debugger and Salesforce Platform Events.pptx
Apex Replay Debugger and Salesforce Platform Events.pptxApex Replay Debugger and Salesforce Platform Events.pptx
Apex Replay Debugger and Salesforce Platform Events.pptx
 
Curtain Module Manual Zigbee Neo CS01-1C.pdf
Curtain Module Manual Zigbee Neo CS01-1C.pdfCurtain Module Manual Zigbee Neo CS01-1C.pdf
Curtain Module Manual Zigbee Neo CS01-1C.pdf
 
Relationship Counselling: From Disjointed Features to Product-First Thinking ...
Relationship Counselling: From Disjointed Features to Product-First Thinking ...Relationship Counselling: From Disjointed Features to Product-First Thinking ...
Relationship Counselling: From Disjointed Features to Product-First Thinking ...
 
"Running Open-Source LLM models on Kubernetes", Volodymyr Tsap
"Running Open-Source LLM models on Kubernetes",  Volodymyr Tsap"Running Open-Source LLM models on Kubernetes",  Volodymyr Tsap
"Running Open-Source LLM models on Kubernetes", Volodymyr Tsap
 
"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google
"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google
"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google
 
Confoo 2024 Gettings started with OpenAI and data science
Confoo 2024 Gettings started with OpenAI and data scienceConfoo 2024 Gettings started with OpenAI and data science
Confoo 2024 Gettings started with OpenAI and data science
 
LF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIELF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIE
 
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
 
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
 
AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...
AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...
AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...
 
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
 
How to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response PlanHow to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response Plan
 
Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?
 
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
 
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
 
Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...
Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...
Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...
 
AI Act & Standardization: UNINFO involvement
AI Act & Standardization: UNINFO involvementAI Act & Standardization: UNINFO involvement
AI Act & Standardization: UNINFO involvement
 
Power of 2024 - WITforce Odyssey.pptx.pdf
Power of 2024 - WITforce Odyssey.pptx.pdfPower of 2024 - WITforce Odyssey.pptx.pdf
Power of 2024 - WITforce Odyssey.pptx.pdf
 

Making software development processes to work for you

  • 1. Making software development processes to work for you Optimizing investments to balance between bureaucracy and total liberalism in software development Mikko Paukkila – 9-Oct-2014
  • 2. Background • Mikko Paukkila is a Principal Systems Engineer in software build, release, testing and integration area. He has experience of multiple software development environments like Linux, Mac, Windows, Android, Qt, Symbian etc. He has also wide knowledge of agile & lean processes and related tools from small 10-20 people software&hardware development product projects to very large programs of 1000+ developers. He has been driving deployment of continuous integration processes in an international environment and has been administrating related tools like Jenkins and Gerrit. Expert of SCM tools like git. Mikko currently for Nokia Technologies for imaging technology business. • Disclaimer: The presentation will contain a lot of opinions that are mine, not company’s.
  • 3. Some words about software development processes
  • 4. From need to product Purpose of software development processes&tools should be enabled smooth flow between these phases: 1. From (customer) need to requirement 2. From requirement to a software change 3. From software change to high quality product 4. Product creation/finalization process Requirement management Product creation Software development And not forgetting feedback loop.
  • 5. Continuous Integration enables fast and extensive feedback of software changes that are in our release chain. This is done by automated tools, but it requires that developer commits software change(s) often and react fast if there are problems in builds. CI is done to enable errors and integration problems to be found earlier. This eventually leads us to produce better quality software already from the beginning and enables also us to get our products and solutions faster to the market. Basic Continuous Integration system: Continuous Integration Developer practices: 1. Commit changes often 2. Follow the status (build & test results) 3. React when needed (debug, fix, merge etc.) Automated testingFast builds Enablers of Continuous Integration Version control system (git,…) Build system (e.g. Jenkins) Test automation system Developers + other linked practices: Test Driven Development, … Instant feedback and easy access to the latest environment and results What? Why? Error cost curve: CI
  • 7. Tool selections: SCM • git is my option • git is the most powerful SCM tool, but requires time to learn even most important tricks of it • Use that SCM tool that developers have mostly got used it or if you some other specific requirements (like that your customers requires so) • git submodules solution sucks – If you need hierarchy of repositories then use for example Google’s repo tool • What to consider?  Distributed development – central SCM vs. distributed one?  A lot of open source alternatives vs. commercial ones commit e83c5163316f89bfbde7d9ab23ca2e25604af290 Author: Linus Torvalds <torvalds@ppc970.osdl.org> Date: Thu Apr 7 15:13:13 2005 -0700 Initial revision of "git", the information manager from hell
  • 8. Tool selections: repository hosting • Host yourself or outside?  Security  Performance  Price (also internal workforce costs) • Gerrit  Open source alternative with code review solution  Qt and Google are using too, but have intenal forked versions  Access management on quite detailed level and requires some learning  git is the only supported version control tool  https://android-review.googlesource.com/ , https://codereview.qt-project.org/ • Github  SAAS or Github Enterprise  Git only • Gitorious • Bitbucket by Atlassian • Deveo  Finnish version supporting git, Mercurial, Subversion
  • 9. Continuous Integration system • If your project is not having an automated build&test system, then make sure you get it! • Quite many open source alternatives:  Buildbot  Cruisecontrol  Jenkins  And commercial solutions too, like ElectricCommanders, Team Foundation Server, Bamboo by Atlassian • Unless you totally hate graphical interfaces or Java or open source software, then Jenkins is your choice.
  • 10. • Jenkins has probably the biggest Continuous Integration solution user space and very wide support for multiple tools via plugins • At least 61000 installations globally and 730+ plugins (information from May 2013, Cloudbees) • Java based, you can develop own plugins if needed • Master – slave architecture  You can have how many (slave) build machines that you like. Operations are run normally via ssh.  Commercial additions like Jenkins Enterprise by Cloudbees http://pages.cloudbees.com/rs/cloudbees/images/Jenkins-Enterprise-by- CloudBees.pdf
  • 12. Code reviews! Code reviews! Code reviews! • If you are running a project in which there is no code review practice, then think it again! • Code review is one of the most valuable part of steps in release chain.  Fast feedback  One of the best ways to prevent quality to drop • By code review (tool) you can:  Get feedback from your colleagues  Make better visible what changes are coming and prepare testing  Run what ever prechecks that you need  Visualize your changes • What can go wrong?  You code review tool is not part of chain – requires that developer need to do many additional steps to get a change under review. • Tool & practice recommendations  http://en.wikipedia.org/wiki/Gerrit_%28software%29  http://en.wikipedia.org/wiki/Crucible_%28software%29  http://en.wikipedia.org/wiki/List_of_tools_for_code_review
  • 13. Qt contribution model Picture from: http://qt-project.org/wiki/Qt-Contribution-Guidelines 1)2) 3) 4) 5) 6)
  • 14. Another release model Reviewer (approval, optional verification) Developer New commit Gerrit Pre-build & test Commit Verification Submit CI build & test Environment file for CI built environment Ok? Environment file for verified environment Ok? Release verification (manual testing) Ok? Developers Commit gets already available for other developers CI version for developers Stable version for developers Longer build & test Testing Development environment levels Bleeding edge Stable
  • 15. Build phase 1. Fetch source code 2. Run checks that you can run already at this phase and which are not taking too much time  Like lint, sonar, valgring etc.  Commercial options: Coverity etc. 3. Compile it  Not only for your main target, but to all of your product’s target environments: Linux? Windows? iOS? Mobile Platforms? 4. Provide feedback to the review system and directly to the developer if build fails • Package your code & binaries if those are reusable in another continuation steps • Run additional analyzer that are taking long time separately, like performance tools
  • 16. Test phase • Do you have already automated tests in place? • Do you have already automated tests in place? • Do you have already automated tests in place? • There is a huge amount of test frameworks and test runners available for various use cases. Choose what fits best for your technologies and processes. • Normally test automation is not enough, but you need also some manual testing
  • 18. CI CI Too complex and slow models Applications Middleware OS Adaptation Chipset CI for platform CI for adaptation (CI for Chipset SW) CI CI CI CI for package / package wrapper CI Packag e CI for package / package wrapper CI CI for package / package wrapper CI CI for package / package wrapper CI Deliveries via packages Package • Gating is done for package or package wrapper depending on teams • Multiple concurrent configurations shall be supported in all CI systems • Asset Creation environment is set up as is reasonable for the program Common CI environments CI Build & test setup Package CI Package CI Package CI Package CI Package CI Package CI Package CI Package CI Package CI Package CI Package CI Package CI Quality Gating level (package) CI AssetCreationCIsetups CI CI for sub-release verification: Package / Package wrapper CI for pre-verification: Asset Creation / Team CI CI for release verification Developers Software changes Team CommitGate CI Team CI Daily/weekly releases Daily/weekly releases
  • 19. Process optimizations • How long it takes from software change to get the change into a product?  Worse example: 1-2 weeks  Best example: less than 15 minutes  Optimizations:  Build time  Review time  Too many steps in the process? • Quality Gating  Too heavy?  Not at all? • Test automation  Do you really have it in place?
  • 20. Requirements / Errors / User Stories / Tasks / Defects / Epics / handling ’needs’ • We use Atlassian Jira  Together with Agile plugin • Various available solutions  I have experince on Bugzilla, Rally, ScrumWorks, Lotus Notes, ... • ”We have to use Scrum to be Agile?” – really?  Are you solving your problems by forcing team(s) to use specific model?  Agile/Scrum came with quite big hype  There is no single right way to deploy agile processes  You must be agile also by taking processes in use in an agile way. Not only forcing the same way as those are defined in books.  When Scrum is good? How about Kanban? Scrum Continous Integration DevOps Startup way of working in big companies Waterfall Lean Agile Kanban
  • 21. Other communication solutions for developers • Messaging:  Do you have a solution for developers to use for communication?  Hipchat, IRC+Quassel (one to many and one to one)  Lync, Skype (one to one + meetings)  Important especially if working on multiple locations • Information management  Do developers have a solution to share instructions etc.  TWiki, Concluence, Sharepoint, (Lotus Notes) etc.
  • 22. Developer environment • Can any developer repeat your product build? • If not, then make it happen. • It is better to package all tool that you need for compile  Put those into git reposity or package those otherwise  Support by installation scripts • Do developers have a working IDE package and don’t need to spend hours in installing & updating applications?
  • 23. Technical Optimizations • Speed?  Put more money to build machines  Start from changing from HDD to SDD -> normally huge improvement  What steps can be run in parallel?  Or reduce some step?  Some technical optimizations: ccache, icecc, ElectricCloud, btrfs, network optimizations • Money?  Are you investment on okay level?  Consider using more open source tools • Maintenance  Virtualization  Automatic ’installation’: puppet, netboot • Do you have all you tools integrated to your CI system?  Also requirement and error management systems
  • 24. Bureaucrazy or enhancement? • Are your software development processes and tools more supporting management? • Or • Are your software development processes and tools supporting software development? • Yes, visibility is important and tools for that, but not those tools that are bringing still more steps for developer to get changes in.
  • 25. Do you have the culture in place? • Continuous Integration developer practices: 1. Commit changes often 2. Follow the status (build & test results) 3. React when needed (debug, fix, merge etc.) • Do you have code review practice in use? • Do you have practices for test automation? • Do you allow others to touch ’any’ components?