3. How we used to integrate changes
New Development
Release
4. How we used to integrate changes
New Development
Release
This was problematic:
5. How we used to integrate changes
New Development
Release
This was problematic:
• Developer may be only person
aware of a change
6. How we used to integrate changes
New Development
Release
This was problematic:
• Developer may be only person
aware of a change
• Unintended consequences from
lack of awareness
7. How we used to integrate changes
New Development
Release
This was problematic:
• Developer may be only person
aware of a change
• Unintended consequences from
lack of awareness
• Formalised testing and review not
enforced
8. How we used to integrate changes
New Development
Release
This was problematic:
• Developer may be only person
aware of a change
• Unintended consequences from
lack of awareness
• Formalised testing and review not
enforced
• Only trusted developers could
‘commit’
9. How we used to integrate changes
New Development
Release
This was problematic:
• Developer may be only person
aware of a change
• Unintended consequences from
lack of awareness
• Formalised testing and review not
enforced
• Only trusted developers could
‘commit’
...It did work though :)
11. Integration Process
Process to increase quality:
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
12. Integration Process
Process to increase quality:
• 3 sets of eyes on each change
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
13. Integration Process
Process to increase quality:
• 3 sets of eyes on each change
• Increased code quality through
review and iterations
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
14. Integration Process
Process to increase quality:
• 3 sets of eyes on each change
• Increased code quality through
review and iterations
• Large focus on testing
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
15. Integration Process
Process to increase quality:
• 3 sets of eyes on each change
• Increased code quality through
review and iterations
• Large focus on testing
http://docs.moodle.org/dev/Process
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
16. New Development
• Accessible to anyone in community
• No longer need to restrict process to
known ‘trusted’ developers.
• Large developments discussed with
community in Future major features
forum
• Specification developed on
MoodleDocs
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
17. Peer Review
Technical Review from another
developer
• Checking code against
standards
• Discuss the approach to
solving problem
• Suggest improvements
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
18. Automated Checks
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
• Coding standards
• Keeping Moodle maintainable
and sustainable
19. Integration Review
Final review by ‘gatekeepers’
• Focus on quality and stability
• Facilitate communication between
different area experts
• Bring historical context
• Ensure changes meet the needs of
whole community
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
20. Automated Tests
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
• Over 6000 tests being run
automatically every day
• Upgrade tests between
versions checking
compatibility
• Additional tests added each
day
21. Testing
• Tester assigned to each issue
• Runs through a test plan created
by developer
• Looks out for problems and
inconsistencies in the change
• Very time-intensive process
• But frequently worthwhile!
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
22. Release
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
• Each week focus on all issues
tested and passed
• Failing issues get fixes or
backed out
• Weekly release produced and
distributed through
download.moodle.org and git
23. Is it making a difference?
9%
15%
75%
Integrated Issues
Accepted
Problem during integration review
Problem during testing
•Yes!
•1104 changes
rejected..!
•Standards increasing
week by week