SlideShare a Scribd company logo
Smart
development
environments
Wojciech Sznapka
PHPCon Pl

Szczyrk 27.10.2013
Smart development environments
Smart development environments
Cześć!
:)
Hanys
ze Ślůnska wito Wos
pierońsko piyknie
Since 2006 regularly
in a teams of developers
Loves
software craftsmanship,
sophisticated architectures,
Big Data and automation
Why a development
environment
needs care?
Because mess
frustrates people
And repetitions leads
to routine and are always
error prone
Automation is always better
than written process
The version
control
GitHub private
repositories
Smart development environments
Every team member
has his own fork
He creates a feature branch
related to the User Story from
Jira, he is working on
He works on his
own machine
Smart development environments
After a series of commits to
his feature branch he opens
a pull request
Other devs
review the code
and make comments
Pro Tip:
smaller pull request
are easier to review
and maintain
Developer fixes things and
pushes again
The responsible person
merges pull request into
develop branch
The code metrics
Most of new projects
are started based on Symfony
XSolve Edition
Smart development environments
It contains standard build.xml
for Ant
There are around 28 targets
Most important are:
Most important are:
»» build - used to deploy
Most important are:
»» build - used to deploy
»» ci - run on Jenkins
Most important are:
»» build — used to deploy
»» ci — run on Jenkins
»» cli — runs code sniffer, mess detector,
copy paste detector on CLI to check curremt
status before committing
Most important are:
»» build — used to deploy
»» ci — run on Jenkins
»» cli — runs code sniffer, mess detector,
copy paste detector on CLI to check curremt
status before committing
»» thresholds-check — to build PRs
Code metrics
are collected by Jenkins
and available there
Builds
We build every change
in develop branch
Also we build every project
in the morning to see
if passing time hasn’t affected
the code :-)
The third build goes
for Pull Requests
We’ve integrated
Jenkins GitHub PR Builder
It runs tests
and checks if code metrics
warnings don’t exceed
thresholds
Smart development environments
Smart development environments
Smart development environments
This mechanisms helps us
to not watch for code style
or obvious things during code
reviews, but to focus on
what’s important
Deployments
A standard servers structure:
A standard servers structure:
»» development
A standard servers structure:
»» development
»» CI server
A standard servers structure:
»» development
»» CI server
»» test server
A standard servers structure:
»» development
»» CI server
»» test server
»» stagagging (A.K.A. Preview) server
A standard servers structure:
»» development
»» CI server
»» test server
»» stagagging (A.K.A. Preview) server
»» production
We use launcher
to update application on test
and stagging server
Launcher is our Silex
based application that
launches ant tasks, triggered
by github hook
It updates test env for every
change...
... and staging for every
new tag
Communication
We use HipChat
Smart development environments
It has a great
and simple API
And plenty of tools
has built-in integration
And plenty of tools
has built-in integration
»» GitHub
And plenty of tools
has built-in integration
»» GitHub
»» Jira
And plenty of tools
has built-in integration
»» GitHub
»» Jira
»» Jenkins
And plenty of tools
has built-in integration
»» GitHub
»» Jira
»» Jenkins
»» New Relic
And plenty of tools
has built-in integration
»» GitHub
»» Jira
»» Jenkins
»» New Relic
»» Zabbix
Also our internal tools
uses HipChat API to notify
important facts
Of course we have
github, jira, jenkins emails
notifications
Extras
Github-metrics
It counts pull requests
and commits per developer
across all repos and pushes it
to HipChat every morning
at 10:00
Smart development environments
XSolve Developers Metrics
Harvesters Jenkins API
to get number of violations
(or fixes) for every developer
Smart development environments
Summary
It requires a lot of
effort to put all those tools
together
Even more work is required
to maintain and keeps it
running
But after some time
it works gloriously
Teams don’t waste
time on non-programming
work
It’s way easier
to introduce new team
members
And you have a lot
more time to think about
solving world’s problems
Thank you
wojciech@sznapka.pl

@twitter twitter.com/sznapka

@github github.com/wowo
Dołącz do nas!

More Related Content

PPTX
Taking your version control to a next level with TFS and Git
PDF
Chicago alm user group tfs version control poster - tfvc and git
PPTX
Developing Infrastructure Code for CI & CD
PPTX
Operations Validation for Infrastructure As Code - PSConfEU 2016
PPTX
Continuous integration
PPTX
Continuous Security Testing in a Devops World #OWASPHelsinki
PPTX
Automating security tests for Continuous Integration
PDF
DevOps Illustrated - A practical approach
Taking your version control to a next level with TFS and Git
Chicago alm user group tfs version control poster - tfvc and git
Developing Infrastructure Code for CI & CD
Operations Validation for Infrastructure As Code - PSConfEU 2016
Continuous integration
Continuous Security Testing in a Devops World #OWASPHelsinki
Automating security tests for Continuous Integration
DevOps Illustrated - A practical approach

What's hot (20)

PDF
Continuous Integration 101
PDF
Jenkins CI
PDF
WSO2 IoTS Device Manufacturer Guide
PPTX
Azure Integration DTAP Series, How to go from Development to Production – Par...
PPTX
Continous integration with jenkins
PDF
T23 HTML5 Security Testing at Spotify
ZIP
Continuous Integration, Build Pipelines and Continuous Deployment
PDF
Improving software quality using Continuous Integration
PDF
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
PDF
Seminar continuous delivery 19092013
PDF
Sencha Roadshow 2017: What's New in Sencha Test
PDF
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
PPTX
Zalenium - How to run Selenium Script using Docker and Selenium Grid
PPTX
Using PowerShell DSC with AWS Cloud and CloudFormation
PDF
Vulnerabilities are bugs, Let's Test For Them!
PDF
Continuous Integration (CI) - An effective development practice
PPTX
#speakgell - Continuous Integration in iconnect360
PPTX
DevOps Engineer [Arabic]
PDF
Continuous Delivery for Front-End Engineers
PDF
CICD by Teerapat
Continuous Integration 101
Jenkins CI
WSO2 IoTS Device Manufacturer Guide
Azure Integration DTAP Series, How to go from Development to Production – Par...
Continous integration with jenkins
T23 HTML5 Security Testing at Spotify
Continuous Integration, Build Pipelines and Continuous Deployment
Improving software quality using Continuous Integration
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Seminar continuous delivery 19092013
Sencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Zalenium - How to run Selenium Script using Docker and Selenium Grid
Using PowerShell DSC with AWS Cloud and CloudFormation
Vulnerabilities are bugs, Let's Test For Them!
Continuous Integration (CI) - An effective development practice
#speakgell - Continuous Integration in iconnect360
DevOps Engineer [Arabic]
Continuous Delivery for Front-End Engineers
CICD by Teerapat
Ad

Viewers also liked (9)

PDF
Automated tests - facts and myths
ODP
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
ODP
MongoDB - baza danych zorientowana dokumentowo. Czy ruch NoSQL ma sens?
ODP
Symfony2 showcase
PDF
Symfony2 w chmurze
PPTX
Mongo db – document oriented database
PDF
MUSIC and ARTS Gr. 10 Learner's Module Quarter 1 to 4 complete
PDF
The Outcome Economy
PDF
The Six Highest Performing B2B Blog Post Formats
Automated tests - facts and myths
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
MongoDB - baza danych zorientowana dokumentowo. Czy ruch NoSQL ma sens?
Symfony2 showcase
Symfony2 w chmurze
Mongo db – document oriented database
MUSIC and ARTS Gr. 10 Learner's Module Quarter 1 to 4 complete
The Outcome Economy
The Six Highest Performing B2B Blog Post Formats
Ad

Similar to Smart development environments (20)

PPT
Part 2 improving your software development v1.0
PPTX
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
PPTX
Continous integration and delivery for single page applications
PPTX
#ESPC19 How to do #DevOps with #SPFx
PDF
Intro to DevOps 4 undergraduates
PPTX
Continuous integration
PPTX
Introduction to Continuous integration
PDF
3_PDFsam_DevOps.pdf
PPT
Continuous Integration: A Case Study
PPTX
Continuous Integration & the Release Maturity Model
PPTX
Continuous Integration and development environment approach
PPTX
Continuous Integration
PPTX
Making software development processes to work for you
PPT
Presentation 1 open source tools in continuous integration environment v1.0
PDF
DevOps & DevEx
PPTX
#SPSToronto How to do #DevOps with #SPFx and why it matters
PPTX
Software engineering
PPTX
Build Time Hacking
PDF
Code review automation and functional tests on Carrefour
Part 2 improving your software development v1.0
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continous integration and delivery for single page applications
#ESPC19 How to do #DevOps with #SPFx
Intro to DevOps 4 undergraduates
Continuous integration
Introduction to Continuous integration
3_PDFsam_DevOps.pdf
Continuous Integration: A Case Study
Continuous Integration & the Release Maturity Model
Continuous Integration and development environment approach
Continuous Integration
Making software development processes to work for you
Presentation 1 open source tools in continuous integration environment v1.0
DevOps & DevEx
#SPSToronto How to do #DevOps with #SPFx and why it matters
Software engineering
Build Time Hacking
Code review automation and functional tests on Carrefour

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PPT
Teaching material agriculture food technology
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Machine learning based COVID-19 study performance prediction
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Electronic commerce courselecture one. Pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
1. Introduction to Computer Programming.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
Approach and Philosophy of On baking technology
Teaching material agriculture food technology
gpt5_lecture_notes_comprehensive_20250812015547.pdf
A comparative analysis of optical character recognition models for extracting...
Assigned Numbers - 2025 - Bluetooth® Document
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Machine learning based COVID-19 study performance prediction
SOPHOS-XG Firewall Administrator PPT.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Electronic commerce courselecture one. Pdf
Programs and apps: productivity, graphics, security and other tools
Spectral efficient network and resource selection model in 5G networks
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
1. Introduction to Computer Programming.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
“AI and Expert System Decision Support & Business Intelligence Systems”
Diabetes mellitus diagnosis method based random forest with bat algorithm

Smart development environments