Mikko Paukkila discusses optimizing software development processes to balance bureaucracy and flexibility. He advocates for continuous integration to find errors early and speed up feedback loops. Tools like Git, Jenkins, Gerrit enable CI by automating builds, testing and code reviews. Process optimizations include reducing time from change to product, automating more tests, and ensuring developers have easy environments and fast feedback. The goal is enabling smooth development flows from needs to requirements to changes to high quality products.
What is continuous integration?
Building a feature with continuous integration
Practices of continuous integration
Benefits of continuous integration
Introducing continuous integration
Final thoughts
Continuous integration tools
The Continuous delivery Value @ codemotion 2014David Funaro
System Crash, failure data migration, partial update: issues that no one would ever want to meet during the deploy and ... hoping for the best is not enough.
The deployment activity is important as those that precede it. The Continuous Delivery will give you low risk, cheap, fast, predictable delivery and ... soundly.
Release software is no less important than activities that precede it.
The Continuous Delivery is a set of practices and methodologies that build an ecosystem for the software development lifecycle.
We will see how to build this ecosystem around the applications developed, for which this release activities becomes a low-risk, inexpensive, fast and predictable.
Critical Capabilities to Shifting Left the Right WaySmartBear
The concept of testing earlier in the SDLC isn't new, but the term "shift left" has reignited its importance. See how shifting left can help you, and how to do it right.
Continuous Delivery offers a proven solution for streamlining software design that enables rapid, reliable, and repeated delivery code enhancements at low risk and with minimal overhead. Using a framework that automates processes from code design to deployment, software can be developed to high standards while reducing time-to-market. Continuous Delivery not only establishes consistent delivery of higher quality software with greater reliability, it does so at a lower overall cost.
DevOps is a software development method which is all about working together between Developers and IT Professionals. This presentation gives you an introduction to DevOps.
What is continuous integration?
Building a feature with continuous integration
Practices of continuous integration
Benefits of continuous integration
Introducing continuous integration
Final thoughts
Continuous integration tools
The Continuous delivery Value @ codemotion 2014David Funaro
System Crash, failure data migration, partial update: issues that no one would ever want to meet during the deploy and ... hoping for the best is not enough.
The deployment activity is important as those that precede it. The Continuous Delivery will give you low risk, cheap, fast, predictable delivery and ... soundly.
Release software is no less important than activities that precede it.
The Continuous Delivery is a set of practices and methodologies that build an ecosystem for the software development lifecycle.
We will see how to build this ecosystem around the applications developed, for which this release activities becomes a low-risk, inexpensive, fast and predictable.
Critical Capabilities to Shifting Left the Right WaySmartBear
The concept of testing earlier in the SDLC isn't new, but the term "shift left" has reignited its importance. See how shifting left can help you, and how to do it right.
Continuous Delivery offers a proven solution for streamlining software design that enables rapid, reliable, and repeated delivery code enhancements at low risk and with minimal overhead. Using a framework that automates processes from code design to deployment, software can be developed to high standards while reducing time-to-market. Continuous Delivery not only establishes consistent delivery of higher quality software with greater reliability, it does so at a lower overall cost.
DevOps is a software development method which is all about working together between Developers and IT Professionals. This presentation gives you an introduction to DevOps.
How Microsoft ALM Tools Can Improve Your Bottom LineImaginet
Improved efficiencies, enhanced productivity, reduction of wasted time and effort, and improved team collaboration. Each of these benefits that result from adopting a successful ALM strategy will all help your bottom line. Come find out how at this free webinar!
The Challenges & Pitfalls of Database Continuous DeliveryPerforce
Practicing database Continuous Delivery saves time and money and prevents downtime in production. However, dealing with automating database deployments is tricky. In this presentation, you will learn how to overcome the challenges and potential pitfalls of database Continuous Delivery and proven best practices for automating database changes.
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi SharmaAgile Testing Alliance
Pallavi Sharma delivered a session on Selenium Exceptions at #ATATalk - Episode 1
Pallavi Sharma is acting as a coach, writer, speaker and owner at 5 Elements Learning where she collaborate and work with many learning enthusiasts and mentors around the globe and use her polyglot skills. An avid learner, she likes to keep herself updated to latest trends and technologies by attending conferences and workshops, and life has been kind enough to provide her with such experiences.
To know more about ATA Events please check : https://ataevents.org/
Contains a quick review of the Scrum process, talks about the dangers of trying to map PMBOK to Scrum, and then tries to talk about the concepts behind managing an Agile project using Scrum.
Covering topics like:
CI CD DevOps Jenkins TFS TeamCity Compile Test Package Delpoy
See Disclaimer in the last slide and/or in file comments, if available.
Building an Automated Database Deployment PipelineGrant Fritchey
The pace of business accelerates fairly continuously and application development moves right with it. But we’re still trying to deploy databases the same way we did 10 years ago. This session addresses the need for changes in organizational structure, process and technology necessary to arrive at a nimble, fast, automatable and continuous database deployment process. We’ll use actual customer case studies to illustrate both the common methods and the unique context that led to a continuous delivery process that is best described as a pipeline. You will learn how to customize common practices and tool sets to build a database deployment pipeline unique to your environment in order to speed your own database delivery while still protecting your organization’s most valuable asset, it’s data.
Dev ops tutorial for beginners what is devops & devops toolsJanBask Training
DevOps Tools Are Used To Offer Improved Performance. You can explore more about above-listed DevOps tools (Puppet, Chef, Sensu, Nagios, Bamboo, Eclipse, Git, Saltstack, Jenkins ) that are used to provide improved performance by DevOps team. DevOps tools are used to improve the developer's efficiency.
Building an automated database deployment pipeline.
This presentation will cover:
1) Understand the technology and process requirements to work towards automation step-by-step in your release pipeline.
2) Learn about the organizational changes necessary to support process modifications.
3) Appreciate why these changes are necessary in support of modern development and deployment methodologies. To find out more go to http://www.red-gate.com/delivery/
Automated Database Deployment at SQL RallyGrant Fritchey
Deploying your database changes to production can be nerve-wracking. We'll discuss methods that take the stress out of the process by ensuring that you practise your deployments using continuous integration before you ever get near production. Automating the deployment and testing processes through your testing and pre-production environments can make the whole experience of production deployments more repeatable, more reliable and more robust.
In this session, we'll explore the concepts of continuous integration and continuous delivery for databases – what to consider, the challenges, the benefits, the testing, and the crucial approval gates necessary for a reliable production deployment. We'll discuss these and other release strategies as you think about how to evolve your deployment pipeline towards a more automated approach, starting with continuous integration and ending at your production systems.
There in an obsessions to jump to implementation of CI, CD tools when we talk about DevOps. In this talk, I focus on the many aspects that one needs to focus on when going on a DevOps journey
How Microsoft ALM Tools Can Improve Your Bottom LineImaginet
Improved efficiencies, enhanced productivity, reduction of wasted time and effort, and improved team collaboration. Each of these benefits that result from adopting a successful ALM strategy will all help your bottom line. Come find out how at this free webinar!
The Challenges & Pitfalls of Database Continuous DeliveryPerforce
Practicing database Continuous Delivery saves time and money and prevents downtime in production. However, dealing with automating database deployments is tricky. In this presentation, you will learn how to overcome the challenges and potential pitfalls of database Continuous Delivery and proven best practices for automating database changes.
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi SharmaAgile Testing Alliance
Pallavi Sharma delivered a session on Selenium Exceptions at #ATATalk - Episode 1
Pallavi Sharma is acting as a coach, writer, speaker and owner at 5 Elements Learning where she collaborate and work with many learning enthusiasts and mentors around the globe and use her polyglot skills. An avid learner, she likes to keep herself updated to latest trends and technologies by attending conferences and workshops, and life has been kind enough to provide her with such experiences.
To know more about ATA Events please check : https://ataevents.org/
Contains a quick review of the Scrum process, talks about the dangers of trying to map PMBOK to Scrum, and then tries to talk about the concepts behind managing an Agile project using Scrum.
Covering topics like:
CI CD DevOps Jenkins TFS TeamCity Compile Test Package Delpoy
See Disclaimer in the last slide and/or in file comments, if available.
Building an Automated Database Deployment PipelineGrant Fritchey
The pace of business accelerates fairly continuously and application development moves right with it. But we’re still trying to deploy databases the same way we did 10 years ago. This session addresses the need for changes in organizational structure, process and technology necessary to arrive at a nimble, fast, automatable and continuous database deployment process. We’ll use actual customer case studies to illustrate both the common methods and the unique context that led to a continuous delivery process that is best described as a pipeline. You will learn how to customize common practices and tool sets to build a database deployment pipeline unique to your environment in order to speed your own database delivery while still protecting your organization’s most valuable asset, it’s data.
Dev ops tutorial for beginners what is devops & devops toolsJanBask Training
DevOps Tools Are Used To Offer Improved Performance. You can explore more about above-listed DevOps tools (Puppet, Chef, Sensu, Nagios, Bamboo, Eclipse, Git, Saltstack, Jenkins ) that are used to provide improved performance by DevOps team. DevOps tools are used to improve the developer's efficiency.
Building an automated database deployment pipeline.
This presentation will cover:
1) Understand the technology and process requirements to work towards automation step-by-step in your release pipeline.
2) Learn about the organizational changes necessary to support process modifications.
3) Appreciate why these changes are necessary in support of modern development and deployment methodologies. To find out more go to http://www.red-gate.com/delivery/
Automated Database Deployment at SQL RallyGrant Fritchey
Deploying your database changes to production can be nerve-wracking. We'll discuss methods that take the stress out of the process by ensuring that you practise your deployments using continuous integration before you ever get near production. Automating the deployment and testing processes through your testing and pre-production environments can make the whole experience of production deployments more repeatable, more reliable and more robust.
In this session, we'll explore the concepts of continuous integration and continuous delivery for databases – what to consider, the challenges, the benefits, the testing, and the crucial approval gates necessary for a reliable production deployment. We'll discuss these and other release strategies as you think about how to evolve your deployment pipeline towards a more automated approach, starting with continuous integration and ending at your production systems.
There in an obsessions to jump to implementation of CI, CD tools when we talk about DevOps. In this talk, I focus on the many aspects that one needs to focus on when going on a DevOps journey
Verizon's Beth Cohen explains the process of creating the OpenStack Architecture Guide, as delivered to the Boston OpenStack Meetup September 10, 2014.
XP teams try to keep systems fully integrated at all times, and shorten the feedback cycle to minutes and hours instead of weeks or months. The sooner you know, the sooner you can adapt.
Watch our record for the webinar "Continuous Integration" to explore how Azure DevOps helps us in achieving continuous feedback using continuous integration.
What is DevOps?
Why DevOps?
How DevOps works?
DevOps impacts in testing.
Continuous Delivery.
Continuous Integration.
Continuous Testing and Automated Deployment.
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
Slides from my talk at ConFoo Montreal, February 2016. A presentation on how to apply configuration management (CM) principles for your various environments, to control changes made to them. You apply CM on your code, why not on your environments content? This presentation will present the infrastructure as code principles using Chef and/or Ansible. Topics discussed include Continuous Integration, Continuous Delivery/Deployment principles, Infrastructure As Code and DevOps.
DevOps is a set of practices that aims to provide superior quality software quickly by integrating the processes between the development and the operation teams. DevOps is an agile relationship between development and IT operations. DevOps is the abbreviation for Development and Operations. The development includes Plan, Create, Verify and Package. Operations include Release, Configure, and Monitor.
Session on evaluation of DevSecOps. This tutorial is made the very basic process of the DevOps cycle for the beginner level. So sometimes we won’t use very deep technical terms to understand.
Enterprise PHP development teams, no matter the maturity level, focus on one thing, releasing stable apps that perform. They also want to avoid reinventing the wheel. Therefore, make the investment to listen to the top lessons we've learned from across industries to deliver PHP code faster without sacrificing quality, user experience, or existing workflows.
You will learn:
How to dig deep into application behavior and performance at runtime
How to maximize existing continuous delivery principles and tools
When to take advantage of existing frameworks and extensions and when to do it yourself
How to avoid reinventing the wheel each time you deploy, upgrade, or rollback
Watch the recorded version of this Webinar here:
Curious about Continuous Integration? Tune in!
Continuous Integration (CI), which is a big part of continuous delivery, is the concept of continuously building and testing software using an automated process. We have learned that utilizing CI could help us catch bugs earlier, enable better visibility, reduce repetitive processes, enable the development team to produce deployable products at a moment's notice, and reduce risk overall.
These slides will identify the various levels of continuous integration and delivery with regards to a release maturity of the development team or parent organization.
DevOps es un conjunto de prácticas que automatizan los procesos entre el desarrollo de software y los equipos de infraestructura, de manera que el software pueda ser construido, probado y puesto en producción más rápidamente y con la misma confiabilidad.
El concepto de DevOps esta fundamentado en la construcción de una cultura de colaboración entre equipos que históricamente son silos. Los beneficios aparentes incluyen confianza mutua, más rápidos ciclos de puesta en producción, habilidad para resolución de incidentes más rápidamente y mejor adaptación a los cambios.
En esta sesión revisamos conceptos clave de DevOps, el estado del arte y algunas de las tecnologías involucradas.
5 Steps to Jump Start Your Test AutomationSauce Labs
With the acceleration of software creation and delivery, test activities must align to the new tempo. Developers need immediate feedback to be efficient and correct defects as those are introduced. The path to achieving this vision is to build a reliable and scalable continuous test solution.
All beginnings are hard. Having a well-defined plan outlining the approach for your organization to create test automation is key to ensure long term success. Join Diego Molina, Senior Software Engineer at Sauce Labs as he discusses:
The importance of setting up the team correctly from the start
Choosing the right Testing Framework for your organization
Identifying the right scenarios and workflows to test
Learning to avoid common pitfalls at the beginning of the transformation journey
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAppDynamics
A cornerstone of the DevOps philosophy, investment in automation at all stages across the SDLC has increased over recent years. Automation promises velocity and reduced errors, helps foster repeatable processes, and removes the need for long hours on dull, repetitive tasks. So what’s not to like? The downside of automation is that unless applied at the right place in your SDLC it can make a bad process worse. Automation also raises questions around job security, the need for re-skilling in other areas, and tool sprawl if different teams each choose their preferred technology. This session will outline:
-A short chronology of where automation has impacted the modern software stack
-Where it makes the most sense to automate (by identifying your key constraints)
-Best practices for adopting automation and how to identify where it’s working — and where it isn’t
For more information, visit: www.appdynamics.com
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGroup
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly gives an overview of the strengths and weaknesses of DevOps automation, tips on developing your automation strategy, and a high level overview of automation options across the DevOps toolchain.
- Introduction to DevOps.
- Glossary.
- Continuous testing.
- The DevOps lifecycle.
- Where does QA fit in DevOps.
- Test-Driven Development (TDD).
- References.
Similar to Making software development processes to work for you (20)
Itsepalvelukulttuuriin satsaaminen on jo nyt yksi keskeinen kilpailuetutekijä. Hyödyntääkö yrityksesi Knowlegde Basea, entä kannattaako yrityksellä olla oma, suomalainen Service Desk?
Kuinka DevOps näkyy Ambientian asiantuntijan arjessa? Entä mitä sovelluksen elinkaaren hallinta Ambientialla tarkoittaa? Estraadille astuvat kokeneet asiantuntijat - ALM expert Mika Nokka ja Platform Architect Tero Järvenpää.
Mitä on APIen hallinta ja miksi siitä kannattaa olla kiinnostunut? APIt luovat uusia liiketoiminnallisia mahdollisuuksia digitaalisessa maailmassa. APIt mahdollistavat uusia tuotteita ja rahavirtoja ja myös organisaation sisäisesti niitä voidaan hyödyntää innovaatioiden edistämiseen ja joustavuuden parantamiseen.
Mitä on APIen hallinta ja miksi siitä kannattaa olla kiinnostunut? APIt luovat uusia liiketoiminnallisia mahdollisuuksia digitaalisessa maailmassa. APIt mahdollistavat uusia tuotteita ja rahavirtoja ja myös organisaation sisäisesti niitä voidaan hyödyntää innovaatioiden edistämiseen ja joustavuuden parantamiseen.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
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.
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
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?