SlideShare uma empresa Scribd logo
1 de 21
Continuous Integration &
Quality Development
By Gareth Davies
Mindvalley CTO
www.darknet.org.uk
slideshare.com/ShaolinTiger
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
Technologies We Use
• Ruby on Rails
• Redis
• PostgreSQL
• PHP
• Python
• MongoDB
• MySQL
• Linode
• Etc…
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?
Continuous what?
Integration, Delivery & Deployment
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.”
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.”
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.”
Development Workflow
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)
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
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
Agile Programming?
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.”
Scrum Framework
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
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.
How We Do It
Tools Used
• Github - https://github.com/
• Circle-CI - https://circleci.com/
• Code Climate - https://codeclimate.com/
• Hipchat - https://www.hipchat.com/
• Linode - https://www.linode.com/
• Capistrano - http://capistranorb.com/
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!
THE END
For Stalkers
Twitter: @ShaolinTiger
Blog: www.shaolintiger.com
Infosec: www.darknet.org.uk
This presentation: www.slideshare.net/ShaolinTiger

Mais conteúdo relacionado

Mais procurados

[OWASP Poland Day] Security knowledge framework
[OWASP Poland Day] Security knowledge framework[OWASP Poland Day] Security knowledge framework
[OWASP Poland Day] Security knowledge frameworkOWASP
 
WordPress Security Implementation Guideline - Presentation for OWASP Romania ...
WordPress Security Implementation Guideline - Presentation for OWASP Romania ...WordPress Security Implementation Guideline - Presentation for OWASP Romania ...
WordPress Security Implementation Guideline - Presentation for OWASP Romania ...Dan Vasile
 
Dan Catalin Vasile - Hacking the Wordpress Ecosystem
Dan Catalin Vasile - Hacking the Wordpress EcosystemDan Catalin Vasile - Hacking the Wordpress Ecosystem
Dan Catalin Vasile - Hacking the Wordpress EcosystemDan Vasile
 
Devbeat Conference - Developer First Security
Devbeat Conference - Developer First SecurityDevbeat Conference - Developer First Security
Devbeat Conference - Developer First SecurityMichael Coates
 
2013 michael coates-javaone
2013 michael coates-javaone2013 michael coates-javaone
2013 michael coates-javaoneMichael Coates
 
Dan Catalin Vasile - Defcamp2013 - Does it pay to be a blackhat hacker
Dan Catalin Vasile - Defcamp2013 - Does it pay to be a blackhat hackerDan Catalin Vasile - Defcamp2013 - Does it pay to be a blackhat hacker
Dan Catalin Vasile - Defcamp2013 - Does it pay to be a blackhat hackerDan Vasile
 
Top 10 web application security risks akash mahajan
Top 10 web application security risks   akash mahajanTop 10 web application security risks   akash mahajan
Top 10 web application security risks akash mahajanAkash Mahajan
 
Mobile security, OWASP Mobile Top 10, OWASP Seraphimdroid
Mobile security, OWASP Mobile Top 10, OWASP SeraphimdroidMobile security, OWASP Mobile Top 10, OWASP Seraphimdroid
Mobile security, OWASP Mobile Top 10, OWASP SeraphimdroidNikola Milosevic
 
Security guidelines
Security guidelinesSecurity guidelines
Security guidelineskarthz
 
Phishing past mail protection controls using azure information
Phishing past mail protection controls using azure informationPhishing past mail protection controls using azure information
Phishing past mail protection controls using azure informationOddvar Moe
 
Web application security
Web application securityWeb application security
Web application securityAkash Mahajan
 
Top Azure security fails and how to avoid them
Top Azure security fails and how to avoid themTop Azure security fails and how to avoid them
Top Azure security fails and how to avoid themKarl Ots
 
Cm9 secure code_training_1day_input sanitization
Cm9 secure code_training_1day_input sanitizationCm9 secure code_training_1day_input sanitization
Cm9 secure code_training_1day_input sanitizationdcervigni
 
Infosec girls training-hackcummins-college-jan-2020(v0.1)
Infosec girls training-hackcummins-college-jan-2020(v0.1)Infosec girls training-hackcummins-college-jan-2020(v0.1)
Infosec girls training-hackcummins-college-jan-2020(v0.1)Shrutirupa Banerjiee
 
Meetup code security
Meetup code securityMeetup code security
Meetup code securityUttamParmar7
 
Zero Credential Development with Managed Identities for Azure resources
Zero Credential Development with Managed Identities for Azure resourcesZero Credential Development with Managed Identities for Azure resources
Zero Credential Development with Managed Identities for Azure resourcesJoonas Westlin
 
WordPress Security Basics
WordPress Security BasicsWordPress Security Basics
WordPress Security BasicsRyan Plas
 
DevOps and Application Security
DevOps and Application SecurityDevOps and Application Security
DevOps and Application SecurityShahee Mirza
 

Mais procurados (20)

[OWASP Poland Day] Security knowledge framework
[OWASP Poland Day] Security knowledge framework[OWASP Poland Day] Security knowledge framework
[OWASP Poland Day] Security knowledge framework
 
WordPress Security Implementation Guideline - Presentation for OWASP Romania ...
WordPress Security Implementation Guideline - Presentation for OWASP Romania ...WordPress Security Implementation Guideline - Presentation for OWASP Romania ...
WordPress Security Implementation Guideline - Presentation for OWASP Romania ...
 
Dan Catalin Vasile - Hacking the Wordpress Ecosystem
Dan Catalin Vasile - Hacking the Wordpress EcosystemDan Catalin Vasile - Hacking the Wordpress Ecosystem
Dan Catalin Vasile - Hacking the Wordpress Ecosystem
 
Devbeat Conference - Developer First Security
Devbeat Conference - Developer First SecurityDevbeat Conference - Developer First Security
Devbeat Conference - Developer First Security
 
2013 michael coates-javaone
2013 michael coates-javaone2013 michael coates-javaone
2013 michael coates-javaone
 
Dan Catalin Vasile - Defcamp2013 - Does it pay to be a blackhat hacker
Dan Catalin Vasile - Defcamp2013 - Does it pay to be a blackhat hackerDan Catalin Vasile - Defcamp2013 - Does it pay to be a blackhat hacker
Dan Catalin Vasile - Defcamp2013 - Does it pay to be a blackhat hacker
 
Top 10 web application security risks akash mahajan
Top 10 web application security risks   akash mahajanTop 10 web application security risks   akash mahajan
Top 10 web application security risks akash mahajan
 
Web security
Web security Web security
Web security
 
Mobile security, OWASP Mobile Top 10, OWASP Seraphimdroid
Mobile security, OWASP Mobile Top 10, OWASP SeraphimdroidMobile security, OWASP Mobile Top 10, OWASP Seraphimdroid
Mobile security, OWASP Mobile Top 10, OWASP Seraphimdroid
 
Security guidelines
Security guidelinesSecurity guidelines
Security guidelines
 
Phishing past mail protection controls using azure information
Phishing past mail protection controls using azure informationPhishing past mail protection controls using azure information
Phishing past mail protection controls using azure information
 
Hyves en Open Social
Hyves en Open SocialHyves en Open Social
Hyves en Open Social
 
Web application security
Web application securityWeb application security
Web application security
 
Top Azure security fails and how to avoid them
Top Azure security fails and how to avoid themTop Azure security fails and how to avoid them
Top Azure security fails and how to avoid them
 
Cm9 secure code_training_1day_input sanitization
Cm9 secure code_training_1day_input sanitizationCm9 secure code_training_1day_input sanitization
Cm9 secure code_training_1day_input sanitization
 
Infosec girls training-hackcummins-college-jan-2020(v0.1)
Infosec girls training-hackcummins-college-jan-2020(v0.1)Infosec girls training-hackcummins-college-jan-2020(v0.1)
Infosec girls training-hackcummins-college-jan-2020(v0.1)
 
Meetup code security
Meetup code securityMeetup code security
Meetup code security
 
Zero Credential Development with Managed Identities for Azure resources
Zero Credential Development with Managed Identities for Azure resourcesZero Credential Development with Managed Identities for Azure resources
Zero Credential Development with Managed Identities for Azure resources
 
WordPress Security Basics
WordPress Security BasicsWordPress Security Basics
WordPress Security Basics
 
DevOps and Application Security
DevOps and Application SecurityDevOps and Application Security
DevOps and Application Security
 

Destaque

[Meetup] Code Quality tools used at Wolox for Web developing.
[Meetup] Code Quality tools used at Wolox for Web developing.[Meetup] Code Quality tools used at Wolox for Web developing.
[Meetup] Code Quality tools used at Wolox for Web developing.Esteban Pintos
 
Static code analysis
Static code analysisStatic code analysis
Static code analysisRune Sundling
 
Static Code Analysis
Static Code AnalysisStatic Code Analysis
Static Code AnalysisAnnyce Davis
 
High Performance Wordpress
High Performance WordpressHigh Performance Wordpress
High Performance WordpressGareth Davies
 
Gestor de Mobilitat - Curs CCOO
Gestor de Mobilitat - Curs CCOOGestor de Mobilitat - Curs CCOO
Gestor de Mobilitat - Curs CCOOCarlesCuervaClaver
 
Современный подход к проектированию
Современный подход к проектированиюСовременный подход к проектированию
Современный подход к проектированиюДмитрий Силаев
 
Ortiz riofrio
Ortiz riofrioOrtiz riofrio
Ortiz riofriospacexxi
 
historia de Zaragoza
historia de Zaragozahistoria de Zaragoza
historia de Zaragoza93-estoy-y0
 
Religious information literacy: using information to learn in church community
Religious information literacy: using information to learn in church communityReligious information literacy: using information to learn in church community
Religious information literacy: using information to learn in church communityRAILS7
 
Мобильные банки 2015: сравнительное юзабилити-исследование
Мобильные банки 2015: сравнительное юзабилити-исследованиеМобильные банки 2015: сравнительное юзабилити-исследование
Мобильные банки 2015: сравнительное юзабилити-исследованиеДмитрий Силаев
 
Онлайн-семинары от А до Я
Онлайн-семинары от А до ЯОнлайн-семинары от А до Я
Онлайн-семинары от А до ЯPavel Levushkan
 
Вестник Католической Церкви 6/2011
Вестник Католической Церкви 6/2011Вестник Католической Церкви 6/2011
Вестник Католической Церкви 6/2011Pavel Levushkan
 
Банковские сайты: сравнительное юзабилити-исследование_методология
Банковские сайты: сравнительное юзабилити-исследование_методологияБанковские сайты: сравнительное юзабилити-исследование_методология
Банковские сайты: сравнительное юзабилити-исследование_методологияДмитрий Силаев
 
The History Of The Future
The History Of The FutureThe History Of The Future
The History Of The FutureGareth Davies
 

Destaque (20)

[Meetup] Code Quality tools used at Wolox for Web developing.
[Meetup] Code Quality tools used at Wolox for Web developing.[Meetup] Code Quality tools used at Wolox for Web developing.
[Meetup] Code Quality tools used at Wolox for Web developing.
 
Static code analysis
Static code analysisStatic code analysis
Static code analysis
 
Static Code Analysis
Static Code AnalysisStatic Code Analysis
Static Code Analysis
 
Prova
ProvaProva
Prova
 
High Performance Wordpress
High Performance WordpressHigh Performance Wordpress
High Performance Wordpress
 
Shorty
ShortyShorty
Shorty
 
Informática básica
Informática básicaInformática básica
Informática básica
 
Gestor de Mobilitat - Curs CCOO
Gestor de Mobilitat - Curs CCOOGestor de Mobilitat - Curs CCOO
Gestor de Mobilitat - Curs CCOO
 
Современный подход к проектированию
Современный подход к проектированиюСовременный подход к проектированию
Современный подход к проектированию
 
Ortiz riofrio
Ortiz riofrioOrtiz riofrio
Ortiz riofrio
 
historia de Zaragoza
historia de Zaragozahistoria de Zaragoza
historia de Zaragoza
 
Religious information literacy: using information to learn in church community
Religious information literacy: using information to learn in church communityReligious information literacy: using information to learn in church community
Religious information literacy: using information to learn in church community
 
Endeavour Launch
Endeavour LaunchEndeavour Launch
Endeavour Launch
 
Мобильные банки 2015: сравнительное юзабилити-исследование
Мобильные банки 2015: сравнительное юзабилити-исследованиеМобильные банки 2015: сравнительное юзабилити-исследование
Мобильные банки 2015: сравнительное юзабилити-исследование
 
Memòria pràctiques Màster
Memòria pràctiques MàsterMemòria pràctiques Màster
Memòria pràctiques Màster
 
Онлайн-семинары от А до Я
Онлайн-семинары от А до ЯОнлайн-семинары от А до Я
Онлайн-семинары от А до Я
 
Вестник Католической Церкви 6/2011
Вестник Католической Церкви 6/2011Вестник Католической Церкви 6/2011
Вестник Католической Церкви 6/2011
 
Банковские сайты: сравнительное юзабилити-исследование_методология
Банковские сайты: сравнительное юзабилити-исследование_методологияБанковские сайты: сравнительное юзабилити-исследование_методология
Банковские сайты: сравнительное юзабилити-исследование_методология
 
Mindlin Resume2010[1]
Mindlin Resume2010[1]Mindlin Resume2010[1]
Mindlin Resume2010[1]
 
The History Of The Future
The History Of The FutureThe History Of The Future
The History Of The Future
 

Semelhante a Continuous Integration and Quality Development

Agile, DevOps & Test
Agile, DevOps & TestAgile, DevOps & Test
Agile, DevOps & TestQualitest
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+OpsShalu Ahuja
 
To successfully deliver your IT project: build your team, build your Agile it...
To successfully deliver your IT project: build your team, build your Agile it...To successfully deliver your IT project: build your team, build your Agile it...
To successfully deliver your IT project: build your team, build your Agile it...Jean-François Nguyen
 
Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015Steve Mercier
 
Павел Чуняев - State of Continuous Delivery in 2015
Павел Чуняев - State of Continuous Delivery in 2015Павел Чуняев - State of Continuous Delivery in 2015
Павел Чуняев - State of Continuous Delivery in 2015ITSpringBY
 
State of continuous delivery in 2015 - Minsk 15-5-2015
State of continuous delivery in 2015 - Minsk 15-5-2015State of continuous delivery in 2015 - Minsk 15-5-2015
State of continuous delivery in 2015 - Minsk 15-5-2015Pavel Chunyayev
 
Delivering the Dude: Continuous X
Delivering the Dude: Continuous XDelivering the Dude: Continuous X
Delivering the Dude: Continuous XBrent Pabst
 
SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016w2fong
 
Building QA Team that matters for an Agile World
Building QA Team that matters for an Agile WorldBuilding QA Team that matters for an Agile World
Building QA Team that matters for an Agile WorldMaurizio Mancini
 
An evening with... DevOps
An evening with... DevOpsAn evening with... DevOps
An evening with... DevOpsArkhotech
 
ProdSec: A Technical Approach
ProdSec: A Technical ApproachProdSec: A Technical Approach
ProdSec: A Technical ApproachJeremy Brown
 
A Roadmap to Enterprise Quality
A Roadmap to Enterprise QualityA Roadmap to Enterprise Quality
A Roadmap to Enterprise QualityJeff Bramwell
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own wordsSUBHENDU KARMAKAR
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8Rajwinder Singh
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Jean-Philippe Briend
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
Continuous Delivery Distilled
Continuous Delivery DistilledContinuous Delivery Distilled
Continuous Delivery DistilledMatt Callanan
 

Semelhante a Continuous Integration and Quality Development (20)

Agile, DevOps & Test
Agile, DevOps & TestAgile, DevOps & Test
Agile, DevOps & Test
 
Key items for a digital enterprise
Key items for a digital enterpriseKey items for a digital enterprise
Key items for a digital enterprise
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
 
To successfully deliver your IT project: build your team, build your Agile it...
To successfully deliver your IT project: build your team, build your Agile it...To successfully deliver your IT project: build your team, build your Agile it...
To successfully deliver your IT project: build your team, build your Agile it...
 
Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015
 
Павел Чуняев - State of Continuous Delivery in 2015
Павел Чуняев - State of Continuous Delivery in 2015Павел Чуняев - State of Continuous Delivery in 2015
Павел Чуняев - State of Continuous Delivery in 2015
 
State of continuous delivery in 2015 - Minsk 15-5-2015
State of continuous delivery in 2015 - Minsk 15-5-2015State of continuous delivery in 2015 - Minsk 15-5-2015
State of continuous delivery in 2015 - Minsk 15-5-2015
 
Delivering the Dude: Continuous X
Delivering the Dude: Continuous XDelivering the Dude: Continuous X
Delivering the Dude: Continuous X
 
SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016
 
Building QA Team that matters for an Agile World
Building QA Team that matters for an Agile WorldBuilding QA Team that matters for an Agile World
Building QA Team that matters for an Agile World
 
An evening with... DevOps
An evening with... DevOpsAn evening with... DevOps
An evening with... DevOps
 
ProdSec: A Technical Approach
ProdSec: A Technical ApproachProdSec: A Technical Approach
ProdSec: A Technical Approach
 
A Roadmap to Enterprise Quality
A Roadmap to Enterprise QualityA Roadmap to Enterprise Quality
A Roadmap to Enterprise Quality
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Continuous Delivery Distilled
Continuous Delivery DistilledContinuous Delivery Distilled
Continuous Delivery Distilled
 

Mais de Gareth Davies

Web Application Security - DevFest + GDay George Town 2016
Web Application Security - DevFest + GDay George Town 2016Web Application Security - DevFest + GDay George Town 2016
Web Application Security - DevFest + GDay George Town 2016Gareth Davies
 
Advanced Information Gathering AKA Google Hacking
Advanced Information Gathering AKA Google HackingAdvanced Information Gathering AKA Google Hacking
Advanced Information Gathering AKA Google HackingGareth Davies
 
Building Scalable Web Apps - LVL.UP KL
Building Scalable Web Apps - LVL.UP KLBuilding Scalable Web Apps - LVL.UP KL
Building Scalable Web Apps - LVL.UP KLGareth Davies
 
Introduction to Information Security
Introduction to Information SecurityIntroduction to Information Security
Introduction to Information SecurityGareth Davies
 
High Availabiltity & Replica Sets with mongoDB
High Availabiltity & Replica Sets with mongoDBHigh Availabiltity & Replica Sets with mongoDB
High Availabiltity & Replica Sets with mongoDBGareth Davies
 

Mais de Gareth Davies (6)

Web Application Security - DevFest + GDay George Town 2016
Web Application Security - DevFest + GDay George Town 2016Web Application Security - DevFest + GDay George Town 2016
Web Application Security - DevFest + GDay George Town 2016
 
Advanced Information Gathering AKA Google Hacking
Advanced Information Gathering AKA Google HackingAdvanced Information Gathering AKA Google Hacking
Advanced Information Gathering AKA Google Hacking
 
Building Scalable Web Apps - LVL.UP KL
Building Scalable Web Apps - LVL.UP KLBuilding Scalable Web Apps - LVL.UP KL
Building Scalable Web Apps - LVL.UP KL
 
Introduction to Information Security
Introduction to Information SecurityIntroduction to Information Security
Introduction to Information Security
 
Blogging WTF?
Blogging WTF?Blogging WTF?
Blogging WTF?
 
High Availabiltity & Replica Sets with mongoDB
High Availabiltity & Replica Sets with mongoDBHigh Availabiltity & Replica Sets with mongoDB
High Availabiltity & Replica Sets with mongoDB
 

Último

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 

Último (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

Continuous Integration and Quality Development

  • 1. Continuous Integration & Quality Development By Gareth Davies Mindvalley CTO www.darknet.org.uk slideshare.com/ShaolinTiger
  • 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.
  • 18. How We Do It
  • 19. Tools Used • Github - https://github.com/ • Circle-CI - https://circleci.com/ • Code Climate - https://codeclimate.com/ • Hipchat - https://www.hipchat.com/ • Linode - https://www.linode.com/ • Capistrano - http://capistranorb.com/
  • 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