A talk that covers Continuous Integration, Continuous Development & Continuous Deployment, Development Workflow, Quality as a Mind-set, Agile Methodology including Scrum and how it all comes together including tools that can help.
Delivered as a Code Lab at Google DevFest Georgetown 2015.
2. So, Who am I?
• I work at Mindvalley – we are in the learning experience business
• Multi-cultural tech team with 35+ members
• We are hiring! mindvalley.com/careers
3. Technologies We Use
• Ruby on Rails
• Redis
• PostgreSQL
• PHP
• Python
• MongoDB
• MySQL
• Linode
• Etc…
4. This Talk & Pulse-check
• This talk covers:
• Continuous Integration/Development & Deployment
• Development Workflow
• Quality Development Mindset
• Agile Methodology & Scrum
• How it all comes together & Tools for 2015
• Pulse check – Github? Pull Request? Merge Conflicts?
6. Continuous Integration
• If you’re using Github or any modern VCS (properly) – you’re basically
already doing at least half of this.
“Continuous Integration (CI) is a development practice that requires
developers to integrate code into a shared repository several times a
day. Each check-in is then verified by an automated build, allowing
teams to detect problems early.”
7. Continuous Delivery
• This is where tools come in handy, simple projects and small dev
shops often haven’t reached this stage yet
“Continuous Delivery is the natural extension of Continuous Integration:
an approach in which teams ensure that every change to the system is
releasable, and that we can release any version at the push of a
button.”
8. Continuous Deployment
• Automating this stage is only for the brave! The first 2 MUST be solid
(CI/CD)
“Continuous Deployment is the deployment or release of code to
Production as soon as it is ready. There is no large batching in Staging
nor long UAT process that is directly before Production.”
10. Managing a Team Workflow
• It helps to standardise the IDE with standard settings (Sublime etc.)
• Have code conventions aka a style guide
• Have strict whitespace conventions
• Enforce daily stand-ups
• Ensure communication to avoid conflicts
• Don’t check in build artifacts (e.g scss/sass files)
11. Quality Driven Mind-set
• Everyone is responsible
• Automation DOES NOT remove
the need for code review
• Review every pull request with a
Systems Thinking attitude
• Allow time in your dev plan for
refactoring, cleaning code,
properly designing architecture
and code reviews
12. To Create Quality You Must Define It
• Have a shared definition of quality
• Communicate it through-out the team regularly
• Benchmark code reviews against the quality definition
• Example metrics for quality:
• Does it generate business value?
• Is it documented for developers?
• Is it documented for users?
• Is it tested (manually and automatically?)
• Is it secure?
• Is it optimized and so on
• Similar to the ‘Definition of Done’ in Scrum
14. Agile Methodology
“Agile software development is a group of software development
methods in which solutions evolve through collaboration between self-
organizing, cross-functional teams. It promotes adaptive planning,
evolutionary development, early delivery, continuous improvement,
and encourages rapid and flexible response to change.”
16. How Does it Connect?
• Agile methodology thrives in a development environment that is well
structured with a solid workflow
• The more complete your CI/CD systems are, the more agile you are
from a technical standpoint
• The higher quality software you produce, the less iterations you have
to waste fixing bad code and architectural oversights
17. CI/CD In Practise
• Feature branches and Pull Requests lead to automated testing, which
deals with low hanging fruit + human code review = high quality
software.
20. Conclusion
• Tools come and go, they fork, they die, they evolve
• Use what suits your project/organisation the best (that includes
budget)
• Most tools are free for Open Source projects
• Have an Agile mind-set and a Quality Driven focus and you’ll be fine
• Always test new methods, SaaS platforms, plugins, CI/CD tools and
agile processes/frameworks
• Have fun!
21. THE END
For Stalkers
Twitter: @ShaolinTiger
Blog: www.shaolintiger.com
Infosec: www.darknet.org.uk
This presentation: www.slideshare.net/ShaolinTiger