Download presentation
Presentation is loading. Please wait.
Published byEmmeline Brianna Merritt Modified over 6 years ago
1
Process improvements for better quality
Nikolay Kolev
2
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
3
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
4
Let’s talk about … Git Stash (Bitbucket) Jenkins SonarQube
Continuous Integration “Events” notifications Testing Statistics and monitoring
5
Git workflow Typical Git workflow and typical build workflow …
6
Git workflow QA finds a bug in the software and creates a task for a developer to fix it.
7
Git workflow The developer creates a new branch and works on the bug …
… ofcourse he forgets to update bug’s status.
8
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.
9
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.
10
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.
11
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
12
Improved workflow
13
Jira improvements Customized tasks workflow
Automated task status changes (triggers) Automated notifications Automated tasks creation Development progress information Automated tasks/sprints reports
14
Code quality improvements
Keep your code clean Know your problems early Make sure your code will get merged successfully
15
Automated builds on branches
Unit tests on branches Sonar analysis Code coverage analysis Other checks before marking the branch as successful
16
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
17
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
18
Remote triggers Using SCM changes triggers
Jenkins jobs can be triggered by anything
19
Continuous integration
Infrastructure automation Automated tests Test reports Artifacts archiving
20
Test servers builds Fast builds Guaranteed build quality
21
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
22
Final results Automated reports are sent Repeatable results
Everyone interested in some events are notified Faster builds Young developers have more courage
23
T-shirt anyone?
24
ANY STIONS?
25
Thank you! Nikolay Kolev DevOps Engineer Sirma ITT
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.