1 / 25

Process improvements for better quality

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.

catheryn
Télécharger la présentation

Process improvements for better quality

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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 • 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 nikolay.kolev@sirma.bg www.qachallengeaccepted.com

More Related