Process improvements for better quality

Slides:



Advertisements
Similar presentations
An open source QA stack testing tools for agile teams Presented by Aaron Evans
Advertisements

Epic’s Build Tools & Infrastructure
Validata Release Coordinator Accelerated application delivery through automated end-to-end release management.
How to Optimize Your Existing Regression Testing Arthur Hicken May 2012.
Andy Nicholls – Head of Consultancy DevelopR – formalising R Development.
Patterns & practices Symposium 2013 Introducing Git version control into your team Mark
#RefreshCache CI - Daily Builds w/Jenkins – an Open Source Continuous Integration Server Nick Airdo Community Developer Advocate Central Christian Church.
DNN LOVES JENKINS FOR CONTINUOUS INTEGRATION
CONTINUOUS DELIVERY / CONTINUOUS INTEGRATION. IDEAS -> SOLUTIONS Time.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Continuous Delivery Ajey Gore Head of Technology ThoughtWorks India.
DevOps Jesse Pai Robert Monical 8/14/2015. Agile Software Development 8/14/2015© 2015 SGT Inc.2.
Jenkins User Conference Jenkins User Conference Israel, 06 June 2013 #jenkinsconf Web and Gui Automation with Jenkins Aytunc Beken Turkcell
With Mercurial and Progress.   Introduction  What is version control ?  Why use version control ?  Centralised vs. Distributed  Why Mercurial ?
Created by: Maria Abrahms Modified Date: Classification: How to get it done Contributing to OpenStack.
1 Lecture 19 Configuration Management Software Engineering.
MAE Continuous Integration Administration guide July 8th, 2013.
Version Control. How do you share code? Discussion.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Putting the “Engineering” in Software Engineering: Technology Infrastructure in Process Improvement Adam Kolawa, Ph.D. CEO, Parasoft.
Created by Jan Medved Integration & Test Strategy for Lithium.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
Optimal Pipeline Using Perforce, Jenkins & Puppet Nitin Pathak Works on
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
Cruise Training Introduction of Continuous Integration.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Parasoft : Improving Productivity in IT Organizations David McCaw.
Release Management for Visual Studio 2013 Ana Roje Ivančić Ognjen Bajić Ekobit.
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
PRODUCT - ORGANIZATION - AGILE - LEAN CD - Agile on Steroids - (and what Jenkins got to do with it) Paul Bakker linkedin.com/paulgbakker github.com/p-bakker.
Introduction Aaron Day ● Software Architect ● Open Solutions Interests and Hobbies ● Family ● Software Development ● Woodworking ● Gaming ● Shooting.
ALM Deployment Pipeline Implementation. Create a Repeatable, Reliable Process for Releasing Software. Automate Almost Everything Keep Everything in Version.
The Atlassian Tool Suite for Collaborative Science
Version Control for PL/SQL
Implementing Cloud-based Agile Team Development - Lessons Learned
Joonas Sirén, Technology Architect, Emerging Technologies Accenture
Implementing Cloud-based Agile Team Development - Lessons Learned
Open-O Integration Project Introduction
Proposal for ONAP Development Best Practices Gildas Lanilis – ONAP Release Manager June 23 , 2017.
Essentials of UrbanCode Deploy v6.1 QQ147
Proposed IT Infrastructure for TOP OS project
LECTURE 2: Software Configuration Management
SonarQube and Sonatype Nexus IQ Server
Continuous Integration and Testing
Delphi or C++ Builder, with Subversion and Jenkins
T Project Review Group: pdm I2 Iteration
LECTURE 3: Software Configuration Management
X in [Integration, Delivery, Deployment]
Open Source Continuous Integration Server
YeahMobi CD Practice based on Container -- openstack meetup
Simplified Development Toolkit
Git Best Practices Jay Patel Git Best Practices.
JENKINS TIPS Ideas for making your life with Jenkins easier
Real World Scrum with TFS & VSTS / Azure DevOps
Continuous Integration
What is Software Testing?
Agile testing for web API with Postman
Approaches Taken by Two Large Scale Open Source Projects
Dr. Rob Hasker SE 3800 Note 9 Reviews.
CI/CD Workflow and Event Pages
DEVOPS & THE FUTURE OF TESTING
Keeping your SQL Code safe
Erik Vollebekk Application Architect
Advanced Tips and Tricks
Presentation transcript:

Process improvements for better quality Nikolay Kolev

Let’s talk about … quality Good specification Good design Good code Good unit & integration tests Good test suite Good management Good development process Good monitoring over quality metrics and development process

Let’s talk about … standards Can we improve the quality by enforcing standards on the development process? Enforcing standards will lead to: Better specification Better design Better code & tests Better management And also to: A little slower development speed A little reduced productivity Some people may get uncomfortable in the beginning

Let’s talk about … Git Stash (Bitbucket) Jenkins SonarQube Continuous Integration “Events” notifications Testing Statistics and monitoring

Git workflow Typical Git workflow and typical build workflow …

Git workflow QA finds a bug in the software and creates a task for a developer to fix it.

Git workflow The developer creates a new branch and works on the bug … … ofcourse he forgets to update bug’s status.

Git workflow The developer creates a pull request, some other guys make a review and the bugfix is merged into the master… … ofcourse he forgets to update bug’s status again.

Git workflow Meanwhile… The QA is wondering what’s going on with his bugfix!?! The bug’s status is still “Open”, but is should have been fixed long time ago… … after a discussion the QA finds out it is ready, but not updated.

Git workflow The build on the test server is ready and the QA starts to retest his bugs … … it seems that the developer broke more functionalities than he fixed.

What we can improve? Add automated tasks management Add automated code quality metrics and code quality gate Add pull request merge hooks and conditions Use continuous integration Add automated launch of unit & other tests Add automated notifications to some people for some events Automate status reports

Improved workflow

Jira improvements Customized tasks workflow Automated task status changes (triggers) Automated notifications Automated tasks creation Development progress information Automated tasks/sprints reports

Code quality improvements Keep your code clean Know your problems early Make sure your code will get merged successfully

Automated builds on branches Unit tests on branches Sonar analysis Code coverage analysis Other checks before marking the branch as successful

Make sure EVERYTHING is meeting your requirements Pull requests improvements Make sure EVERYTHING is meeting your requirements All review comments are going to be fixed Pull request approvals Code meets quality gate conditions and all tests pass All connected jira tasks are in the right status/condition

Spread the word Tell Jenkins to run tests and analysis on the master Tell Jenkins to run a Continuous Integration build Tell sonar to clean branch’s analysis Tell other involved systems or people about the merge

Remote triggers Using SCM changes triggers Jenkins jobs can be triggered by anything

Continuous integration Infrastructure automation Automated tests Test reports Artifacts archiving

Test servers builds Fast builds Guaranteed build quality

Final results Find problems as early as possible (fail fast) All new code is reviewed All new code is tested Almost no chance for broken code in the master Code quality is easy to be reviewed and managed Code quality is improving in time (boy scout rule) Development progress is visible and trackable Jira tasks are updated and trackable Less time is lost in tasks management

Final results Automated reports are sent Repeatable results Everyone interested in some events are notified Faster builds Young developers have more courage

T-shirt anyone?

ANY STIONS?

Thank you! Nikolay Kolev DevOps Engineer Sirma ITT nikolay.kolev@sirma.bg www.qachallengeaccepted.com