SlideShare una empresa de Scribd logo
1 de 29
Enterprise
Development on a
Shoestring Budget
EMAIL: CHRIS@CTANKERSLEY.COM
TWITTER: @DRAGONMANTANK
1
Who Am I?
 Chris Tankersley
 Been Doing PHP for 9+ Years
 Lots of projects no one uses, and a few that
some do:
 https://github.com/dragonmantank
 Worked in and with “enterprise” developers
2
So what is “Enterprise”?
What you think you are getting:
 Robust, Powerful software
 Structured to meet your needs
 Standardized development and best practices
What most of them really are:
 Overly complicated
 Unrealistic
 $$$$$$$$$$$$$$$$$$$$$$$$$$$
3
So what is “Enterprise”?
What you think you are getting:
 Robust, Powerful software
 Structured to meet your needs
 Standardized development and best practices
What most of them really are:
 Overly complicated
 Unrealistic
 $$$$$$$$$$$$$$$$$$$$$$$$$$$
4
How do you become Enterprise?
 Pass (parts) of the Joel Test
 Project Management
 Managed Environments
 Automated Processes
 Standards!
5
The Joel Test
1. Do you have a spec?
2. Do you use source control?
3. Can you make a build in one step?
4. Do you make daily builds?
5. Do you have an up-to-date schedule?
6. Do you have a bug database?
Or at least the relevant parts
6
Project Management
 Pick a project management style
 SCRUM
 Kanban
 Generate a functional and technical spec
 Formal documents
 User stories
 Stick with it
You can‟t do work unless you know what needs to be done
7
Project Management Tools
 Basecamp HQ
 Planbox
 Spreadsheet
 Whiteboard/Corkboard
8
Scheduling and Budgets
 Take your specs, build a schedule
 Take your specs, and put a price on your time
9
Fast
Cheap
Right
You can only pick two, and
these affect your schedule
and budget.
10
Managed Environments
11
Managed Environments
 A work area with a specific purpose
 Should have at least these three areas:
 Development
 Quality
 Production
 If you can, add „Integration‟ before
Production
 Code always moves up, not down, the
chain
12
Development
 Here Be Dragons
 Code here is never considered stable
 Can be any machine (local, a VM, space on a server, wherever)
13
Quality
 Code should always work here (ignoring bugs)
 This is where your QA testers live
 Should be as close to Production‟s setup as possible
 Should have logging and debugging on
14
Integration
 Production-lite
 Used to catch deployment bugs
 Uses production data
 Should be EXACTLY the same as Production
 Same OS, configuration, and version levels
15
Production 16
Managing Environments
 Virtualization
 Configuration Management
17
Software
18
Love your IDE
 Pick an IDE (or a good text editor) and learn it
 For text editing I prefer vim or SublimeText
 For IDEs I prefer Zend Studio or PHPStorm
 Pick what you use based on the power it gives you
19
Source Control
 Pick One, it doesn‟t matter
 But don‟t pick Visual Source Safe
 Make sure that it works with your other tools
 When in doubt, use git
20
Quality Assurance
Setting up QA automation will help you find things that break
 PHPUnit/Behat
 Selenium/phantomjs + casperjs
 PHPLOC
 PHP Mess Detector
 PHP_CodeSniffer
 PHP Copy/Paste Dectector
21
Continuous Integration
 Act of automating build tasks
 How is a PHP project built?
 Check out the source code from the SCM
 Run the unit tests
 Run any code helpers
 Build documentation
 Packaging
22
Continuous Integration Software
 Jenkins
 http://jenkins-php.org/
 phing and xinc
23
What about the real world?
I‟VE PAINTED A WONDERFUL PICTURE, BUT PUTTING IT INTO PRACTICE IS
SOMETHING ELSE
24
Get the pieces into place
 Get Proper Specs
 Get Source Control
 Get Task/Bug Tracking
 Get Environments
 Get the tools
25
Automate as much as possible
 Every step (but the specs, scheduling, and budget) can be
automated
 You don‟t have to automate all of the steps
 Some automation is better than nothing
 Start small
26
Development
 Get a good IDE/Text Editor that you are familiar with
 Use the QA tools to make sure your code isn‟t breaking
 There‟s a reason TDD/BDD keeps coming up at conferences
 Keep track of bugs, and be strict about people following the
process
27
Questions? 28
Thank You!
 chris@ctankersley.com
 @dragonmantank
 https://joind.in/9091
29

Más contenido relacionado

La actualidad más candente

Software testing presentation
Software testing presentationSoftware testing presentation
Software testing presentationNikolas Vourlakis
 
How to be proud when you are done
How to be proud when you are doneHow to be proud when you are done
How to be proud when you are doneAleksey Solntsev
 
Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Fatkul Amri
 
The Perfect Neos Project Setup
The Perfect Neos Project SetupThe Perfect Neos Project Setup
The Perfect Neos Project SetupKarsten Dambekalns
 
Agile and test driven development
Agile and test driven developmentAgile and test driven development
Agile and test driven developmentAhmed El-Deeb
 
Preparing for the WebGeek DevCup
Preparing for the WebGeek DevCupPreparing for the WebGeek DevCup
Preparing for the WebGeek DevCupbryanbibat
 
Teamleader testcon 2019
Teamleader testcon 2019Teamleader testcon 2019
Teamleader testcon 2019Thomas Noë
 
html5 & phonegap
html5 & phonegaphtml5 & phonegap
html5 & phonegapCaesar Chi
 
Extreme Programming - to the next-level
Extreme Programming - to the next-levelExtreme Programming - to the next-level
Extreme Programming - to the next-levelLars Thorup
 
JavaOne 2016 - The DevOps Disaster
JavaOne 2016 -  The DevOps DisasterJavaOne 2016 -  The DevOps Disaster
JavaOne 2016 - The DevOps DisasterBert Jan Schrijver
 
Automated Performance Testing
Automated Performance TestingAutomated Performance Testing
Automated Performance TestingLars Thorup
 
Continuous Integration using TFS
Continuous Integration using TFSContinuous Integration using TFS
Continuous Integration using TFSMohamed Samy
 
Step away from that knife!
Step away from that knife!Step away from that knife!
Step away from that knife!Michael Goetz
 
Put "fast" back in "fast feedback"
Put "fast" back in "fast feedback"Put "fast" back in "fast feedback"
Put "fast" back in "fast feedback"Lars Thorup
 
The Clash Between Devops and Quality Assurance
The Clash Between Devops and Quality AssuranceThe Clash Between Devops and Quality Assurance
The Clash Between Devops and Quality AssuranceWebcsonsultsEU
 
The Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego MolinaThe Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego MolinaSauce Labs
 

La actualidad más candente (20)

Develop 4 Developers
Develop 4 DevelopersDevelop 4 Developers
Develop 4 Developers
 
Software testing presentation
Software testing presentationSoftware testing presentation
Software testing presentation
 
How to be proud when you are done
How to be proud when you are doneHow to be proud when you are done
How to be proud when you are done
 
XP Injection
XP InjectionXP Injection
XP Injection
 
Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)
 
Code review
Code reviewCode review
Code review
 
The Perfect Neos Project Setup
The Perfect Neos Project SetupThe Perfect Neos Project Setup
The Perfect Neos Project Setup
 
Agile and test driven development
Agile and test driven developmentAgile and test driven development
Agile and test driven development
 
Preparing for the WebGeek DevCup
Preparing for the WebGeek DevCupPreparing for the WebGeek DevCup
Preparing for the WebGeek DevCup
 
Teamleader testcon 2019
Teamleader testcon 2019Teamleader testcon 2019
Teamleader testcon 2019
 
html5 & phonegap
html5 & phonegaphtml5 & phonegap
html5 & phonegap
 
Extreme Programming - to the next-level
Extreme Programming - to the next-levelExtreme Programming - to the next-level
Extreme Programming - to the next-level
 
Fast end-to-end-tests
Fast end-to-end-testsFast end-to-end-tests
Fast end-to-end-tests
 
JavaOne 2016 - The DevOps Disaster
JavaOne 2016 -  The DevOps DisasterJavaOne 2016 -  The DevOps Disaster
JavaOne 2016 - The DevOps Disaster
 
Automated Performance Testing
Automated Performance TestingAutomated Performance Testing
Automated Performance Testing
 
Continuous Integration using TFS
Continuous Integration using TFSContinuous Integration using TFS
Continuous Integration using TFS
 
Step away from that knife!
Step away from that knife!Step away from that knife!
Step away from that knife!
 
Put "fast" back in "fast feedback"
Put "fast" back in "fast feedback"Put "fast" back in "fast feedback"
Put "fast" back in "fast feedback"
 
The Clash Between Devops and Quality Assurance
The Clash Between Devops and Quality AssuranceThe Clash Between Devops and Quality Assurance
The Clash Between Devops and Quality Assurance
 
The Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego MolinaThe Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego Molina
 

Destacado

Television Quiz | Quizot
Television Quiz | QuizotTelevision Quiz | Quizot
Television Quiz | QuizotQuizot
 
Latte App & SaaS pitch
Latte App & SaaS pitchLatte App & SaaS pitch
Latte App & SaaS pitchJean Mauris
 
Hr 17 11 09 Template Mb 2.4
Hr 17 11 09 Template Mb 2.4Hr 17 11 09 Template Mb 2.4
Hr 17 11 09 Template Mb 2.4Hugues Rey
 
Fashion & Design Channel (Live iDTV) - Lifestyle and ecommerce TV - 1 fashion...
Fashion & Design Channel (Live iDTV) - Lifestyle and ecommerce TV - 1 fashion...Fashion & Design Channel (Live iDTV) - Lifestyle and ecommerce TV - 1 fashion...
Fashion & Design Channel (Live iDTV) - Lifestyle and ecommerce TV - 1 fashion...Fernando Goyanes
 
Interactive TV Advertising – The Shift to Second Screens
Interactive TV Advertising – The Shift to Second ScreensInteractive TV Advertising – The Shift to Second Screens
Interactive TV Advertising – The Shift to Second ScreensBeenius
 
Emerging online TV revenue businesss models - New advertising, ecommerce and ...
Emerging online TV revenue businesss models - New advertising, ecommerce and ...Emerging online TV revenue businesss models - New advertising, ecommerce and ...
Emerging online TV revenue businesss models - New advertising, ecommerce and ...Fernando Goyanes
 
Gartner Go to Market Strategy Assumptions
Gartner Go to Market Strategy AssumptionsGartner Go to Market Strategy Assumptions
Gartner Go to Market Strategy AssumptionsFour Quadrant LLC
 
Interactive Digital TV in Belgium
Interactive Digital TV in BelgiumInteractive Digital TV in Belgium
Interactive Digital TV in BelgiumThierry Briers
 
The Coming Revolution in Retail Marketing by Greg Obrien, Comcast
The Coming Revolution in Retail Marketing by Greg Obrien, ComcastThe Coming Revolution in Retail Marketing by Greg Obrien, Comcast
The Coming Revolution in Retail Marketing by Greg Obrien, ComcastThe Chicago Convergence
 
Live Interactive TV Quiz Shows
Live Interactive TV Quiz ShowsLive Interactive TV Quiz Shows
Live Interactive TV Quiz ShowsKontainers
 
INTERACTIVE ADVERTISING ON DIGITAL TELEVISION
INTERACTIVE ADVERTISING ON DIGITAL TELEVISIONINTERACTIVE ADVERTISING ON DIGITAL TELEVISION
INTERACTIVE ADVERTISING ON DIGITAL TELEVISIONCleverwood Belgium
 
Decoding ecommerce business models
Decoding ecommerce business modelsDecoding ecommerce business models
Decoding ecommerce business modelsAbhijit Prabhudan
 
Redbird SaaS Pitch Deck
Redbird SaaS Pitch DeckRedbird SaaS Pitch Deck
Redbird SaaS Pitch DeckGoRedbird
 
MediaEval 2016 - UVigo System for Multimodal Person Discovery in Broadcast TV...
MediaEval 2016 - UVigo System for Multimodal Person Discovery in Broadcast TV...MediaEval 2016 - UVigo System for Multimodal Person Discovery in Broadcast TV...
MediaEval 2016 - UVigo System for Multimodal Person Discovery in Broadcast TV...multimediaeval
 
Go-to-Market Business Plan Template
Go-to-Market Business Plan TemplateGo-to-Market Business Plan Template
Go-to-Market Business Plan TemplateJoseph Schwartz
 
IBM - Full year Go-to-market plan template
IBM - Full year Go-to-market plan templateIBM - Full year Go-to-market plan template
IBM - Full year Go-to-market plan templateArrow ECS UK
 
Go-to-market strategy for tech startups
Go-to-market strategy for tech startupsGo-to-market strategy for tech startups
Go-to-market strategy for tech startupsSovita Chander
 
Go to-market strategy for B2B SaaS companies
Go to-market strategy for B2B SaaS companiesGo to-market strategy for B2B SaaS companies
Go to-market strategy for B2B SaaS companiesGuillaume Lerouge
 

Destacado (20)

Television Quiz | Quizot
Television Quiz | QuizotTelevision Quiz | Quizot
Television Quiz | Quizot
 
Latte App & SaaS pitch
Latte App & SaaS pitchLatte App & SaaS pitch
Latte App & SaaS pitch
 
Hr 17 11 09 Template Mb 2.4
Hr 17 11 09 Template Mb 2.4Hr 17 11 09 Template Mb 2.4
Hr 17 11 09 Template Mb 2.4
 
Fashion & Design Channel (Live iDTV) - Lifestyle and ecommerce TV - 1 fashion...
Fashion & Design Channel (Live iDTV) - Lifestyle and ecommerce TV - 1 fashion...Fashion & Design Channel (Live iDTV) - Lifestyle and ecommerce TV - 1 fashion...
Fashion & Design Channel (Live iDTV) - Lifestyle and ecommerce TV - 1 fashion...
 
Interactive TV Advertising – The Shift to Second Screens
Interactive TV Advertising – The Shift to Second ScreensInteractive TV Advertising – The Shift to Second Screens
Interactive TV Advertising – The Shift to Second Screens
 
Emerging online TV revenue businesss models - New advertising, ecommerce and ...
Emerging online TV revenue businesss models - New advertising, ecommerce and ...Emerging online TV revenue businesss models - New advertising, ecommerce and ...
Emerging online TV revenue businesss models - New advertising, ecommerce and ...
 
Miniweb White Paper
Miniweb White PaperMiniweb White Paper
Miniweb White Paper
 
Gartner Go to Market Strategy Assumptions
Gartner Go to Market Strategy AssumptionsGartner Go to Market Strategy Assumptions
Gartner Go to Market Strategy Assumptions
 
Interactive Digital TV in Belgium
Interactive Digital TV in BelgiumInteractive Digital TV in Belgium
Interactive Digital TV in Belgium
 
The Coming Revolution in Retail Marketing by Greg Obrien, Comcast
The Coming Revolution in Retail Marketing by Greg Obrien, ComcastThe Coming Revolution in Retail Marketing by Greg Obrien, Comcast
The Coming Revolution in Retail Marketing by Greg Obrien, Comcast
 
Live Interactive TV Quiz Shows
Live Interactive TV Quiz ShowsLive Interactive TV Quiz Shows
Live Interactive TV Quiz Shows
 
INTERACTIVE ADVERTISING ON DIGITAL TELEVISION
INTERACTIVE ADVERTISING ON DIGITAL TELEVISIONINTERACTIVE ADVERTISING ON DIGITAL TELEVISION
INTERACTIVE ADVERTISING ON DIGITAL TELEVISION
 
Decoding ecommerce business models
Decoding ecommerce business modelsDecoding ecommerce business models
Decoding ecommerce business models
 
Redbird SaaS Pitch Deck
Redbird SaaS Pitch DeckRedbird SaaS Pitch Deck
Redbird SaaS Pitch Deck
 
MediaEval 2016 - UVigo System for Multimodal Person Discovery in Broadcast TV...
MediaEval 2016 - UVigo System for Multimodal Person Discovery in Broadcast TV...MediaEval 2016 - UVigo System for Multimodal Person Discovery in Broadcast TV...
MediaEval 2016 - UVigo System for Multimodal Person Discovery in Broadcast TV...
 
Go-to-Market Business Plan Template
Go-to-Market Business Plan TemplateGo-to-Market Business Plan Template
Go-to-Market Business Plan Template
 
K2 keynote 2_oracle_saa_s_strategy
K2 keynote 2_oracle_saa_s_strategyK2 keynote 2_oracle_saa_s_strategy
K2 keynote 2_oracle_saa_s_strategy
 
IBM - Full year Go-to-market plan template
IBM - Full year Go-to-market plan templateIBM - Full year Go-to-market plan template
IBM - Full year Go-to-market plan template
 
Go-to-market strategy for tech startups
Go-to-market strategy for tech startupsGo-to-market strategy for tech startups
Go-to-market strategy for tech startups
 
Go to-market strategy for B2B SaaS companies
Go to-market strategy for B2B SaaS companiesGo to-market strategy for B2B SaaS companies
Go to-market strategy for B2B SaaS companies
 

Similar a Enterprise Development on a Shoestring Budget

How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopJim Plush
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAdam Stephensen
 
GMO'less Software Development Practices
GMO'less Software Development PracticesGMO'less Software Development Practices
GMO'less Software Development PracticesLemi Orhan Ergin
 
DeKnowledge - Try us
DeKnowledge - Try usDeKnowledge - Try us
DeKnowledge - Try usBob Pinto
 
The Professional Programmer
The Professional ProgrammerThe Professional Programmer
The Professional ProgrammerDave Cross
 
Continuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoContinuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoPeter Bittner
 
Uklug 2011 administrator development synergy
Uklug 2011 administrator development synergyUklug 2011 administrator development synergy
Uklug 2011 administrator development synergydominion
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Testing practicies not only in scala
Testing practicies not only in scalaTesting practicies not only in scala
Testing practicies not only in scalaPaweł Panasewicz
 
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldPassing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldLorna Mitchell
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Ivo Jansch
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedLB Denker
 
Adrian marinica continuous integration in the visual studio world
Adrian marinica   continuous integration in the visual studio worldAdrian marinica   continuous integration in the visual studio world
Adrian marinica continuous integration in the visual studio worldCodecamp Romania
 
Devops Journey - internet tech startup
Devops Journey - internet tech startupDevops Journey - internet tech startup
Devops Journey - internet tech startupViresh Doshi
 
Building Scalable Development Environments
Building Scalable Development EnvironmentsBuilding Scalable Development Environments
Building Scalable Development EnvironmentsShahar Evron
 
Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developersDUONG Trong Tan
 
Slides from LAX & DEN usergroup meetings
Slides from LAX & DEN usergroup meetingsSlides from LAX & DEN usergroup meetings
Slides from LAX & DEN usergroup meetings10n Software, LLC
 

Similar a Enterprise Development on a Shoestring Budget (20)

How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP Shop
 
Automated tests
Automated testsAutomated tests
Automated tests
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
GMO'less Software Development Practices
GMO'less Software Development PracticesGMO'less Software Development Practices
GMO'less Software Development Practices
 
DeKnowledge - Try us
DeKnowledge - Try usDeKnowledge - Try us
DeKnowledge - Try us
 
The Professional Programmer
The Professional ProgrammerThe Professional Programmer
The Professional Programmer
 
Continuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoContinuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon Otto
 
Uklug 2011 administrator development synergy
Uklug 2011 administrator development synergyUklug 2011 administrator development synergy
Uklug 2011 administrator development synergy
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Testing practicies not only in scala
Testing practicies not only in scalaTesting practicies not only in scala
Testing practicies not only in scala
 
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldPassing The Joel Test In The PHP World
Passing The Joel Test In The PHP World
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
 
Adrian marinica continuous integration in the visual studio world
Adrian marinica   continuous integration in the visual studio worldAdrian marinica   continuous integration in the visual studio world
Adrian marinica continuous integration in the visual studio world
 
Devops Journey - internet tech startup
Devops Journey - internet tech startupDevops Journey - internet tech startup
Devops Journey - internet tech startup
 
Building Scalable Development Environments
Building Scalable Development EnvironmentsBuilding Scalable Development Environments
Building Scalable Development Environments
 
Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developers
 
Slides from LAX & DEN usergroup meetings
Slides from LAX & DEN usergroup meetingsSlides from LAX & DEN usergroup meetings
Slides from LAX & DEN usergroup meetings
 

Más de Chris Tankersley

Docker is Dead: Long Live Containers
Docker is Dead: Long Live ContainersDocker is Dead: Long Live Containers
Docker is Dead: Long Live ContainersChris Tankersley
 
Bend time to your will with git
Bend time to your will with gitBend time to your will with git
Bend time to your will with gitChris Tankersley
 
Using PHP Functions! (Not those functions, Google Cloud Functions)
Using PHP Functions! (Not those functions, Google Cloud Functions)Using PHP Functions! (Not those functions, Google Cloud Functions)
Using PHP Functions! (Not those functions, Google Cloud Functions)Chris Tankersley
 
Dead Simple APIs with OpenAPI
Dead Simple APIs with OpenAPIDead Simple APIs with OpenAPI
Dead Simple APIs with OpenAPIChris Tankersley
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for DevelopmentChris Tankersley
 
Docker for Developers - PHP Detroit 2018
Docker for Developers - PHP Detroit 2018Docker for Developers - PHP Detroit 2018
Docker for Developers - PHP Detroit 2018Chris Tankersley
 
BASHing at the CLI - Midwest PHP 2018
BASHing at the CLI - Midwest PHP 2018BASHing at the CLI - Midwest PHP 2018
BASHing at the CLI - Midwest PHP 2018Chris Tankersley
 
You Were Lied To About Optimization
You Were Lied To About OptimizationYou Were Lied To About Optimization
You Were Lied To About OptimizationChris Tankersley
 
Docker for PHP Developers - php[world] 2017
Docker for PHP Developers - php[world] 2017Docker for PHP Developers - php[world] 2017
Docker for PHP Developers - php[world] 2017Chris Tankersley
 
Docker for PHP Developers - Madison PHP 2017
Docker for PHP Developers - Madison PHP 2017Docker for PHP Developers - Madison PHP 2017
Docker for PHP Developers - Madison PHP 2017Chris Tankersley
 
Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017Chris Tankersley
 
Why Docker? Dayton PHP, April 2017
Why Docker? Dayton PHP, April 2017Why Docker? Dayton PHP, April 2017
Why Docker? Dayton PHP, April 2017Chris Tankersley
 
OOP Is More Then Cars and Dogs - Midwest PHP 2017
OOP Is More Then Cars and Dogs - Midwest PHP 2017OOP Is More Then Cars and Dogs - Midwest PHP 2017
OOP Is More Then Cars and Dogs - Midwest PHP 2017Chris Tankersley
 
From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017Chris Tankersley
 
Docker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPDocker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPChris Tankersley
 
Coming to Terms with OOP In Drupal - php[world] 2016
Coming to Terms with OOP In Drupal - php[world] 2016Coming to Terms with OOP In Drupal - php[world] 2016
Coming to Terms with OOP In Drupal - php[world] 2016Chris Tankersley
 
How We Got Here: A Brief History of Open Source
How We Got Here: A Brief History of Open SourceHow We Got Here: A Brief History of Open Source
How We Got Here: A Brief History of Open SourceChris Tankersley
 

Más de Chris Tankersley (20)

Docker is Dead: Long Live Containers
Docker is Dead: Long Live ContainersDocker is Dead: Long Live Containers
Docker is Dead: Long Live Containers
 
Bend time to your will with git
Bend time to your will with gitBend time to your will with git
Bend time to your will with git
 
Using PHP Functions! (Not those functions, Google Cloud Functions)
Using PHP Functions! (Not those functions, Google Cloud Functions)Using PHP Functions! (Not those functions, Google Cloud Functions)
Using PHP Functions! (Not those functions, Google Cloud Functions)
 
Dead Simple APIs with OpenAPI
Dead Simple APIs with OpenAPIDead Simple APIs with OpenAPI
Dead Simple APIs with OpenAPI
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
 
You Got Async in my PHP!
You Got Async in my PHP!You Got Async in my PHP!
You Got Async in my PHP!
 
Docker for Developers - PHP Detroit 2018
Docker for Developers - PHP Detroit 2018Docker for Developers - PHP Detroit 2018
Docker for Developers - PHP Detroit 2018
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
 
They are Watching You
They are Watching YouThey are Watching You
They are Watching You
 
BASHing at the CLI - Midwest PHP 2018
BASHing at the CLI - Midwest PHP 2018BASHing at the CLI - Midwest PHP 2018
BASHing at the CLI - Midwest PHP 2018
 
You Were Lied To About Optimization
You Were Lied To About OptimizationYou Were Lied To About Optimization
You Were Lied To About Optimization
 
Docker for PHP Developers - php[world] 2017
Docker for PHP Developers - php[world] 2017Docker for PHP Developers - php[world] 2017
Docker for PHP Developers - php[world] 2017
 
Docker for PHP Developers - Madison PHP 2017
Docker for PHP Developers - Madison PHP 2017Docker for PHP Developers - Madison PHP 2017
Docker for PHP Developers - Madison PHP 2017
 
Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017
 
Why Docker? Dayton PHP, April 2017
Why Docker? Dayton PHP, April 2017Why Docker? Dayton PHP, April 2017
Why Docker? Dayton PHP, April 2017
 
OOP Is More Then Cars and Dogs - Midwest PHP 2017
OOP Is More Then Cars and Dogs - Midwest PHP 2017OOP Is More Then Cars and Dogs - Midwest PHP 2017
OOP Is More Then Cars and Dogs - Midwest PHP 2017
 
From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017
 
Docker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPDocker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHP
 
Coming to Terms with OOP In Drupal - php[world] 2016
Coming to Terms with OOP In Drupal - php[world] 2016Coming to Terms with OOP In Drupal - php[world] 2016
Coming to Terms with OOP In Drupal - php[world] 2016
 
How We Got Here: A Brief History of Open Source
How We Got Here: A Brief History of Open SourceHow We Got Here: A Brief History of Open Source
How We Got Here: A Brief History of Open Source
 

Último

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 

Último (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 

Enterprise Development on a Shoestring Budget

  • 1. Enterprise Development on a Shoestring Budget EMAIL: CHRIS@CTANKERSLEY.COM TWITTER: @DRAGONMANTANK 1
  • 2. Who Am I?  Chris Tankersley  Been Doing PHP for 9+ Years  Lots of projects no one uses, and a few that some do:  https://github.com/dragonmantank  Worked in and with “enterprise” developers 2
  • 3. So what is “Enterprise”? What you think you are getting:  Robust, Powerful software  Structured to meet your needs  Standardized development and best practices What most of them really are:  Overly complicated  Unrealistic  $$$$$$$$$$$$$$$$$$$$$$$$$$$ 3
  • 4. So what is “Enterprise”? What you think you are getting:  Robust, Powerful software  Structured to meet your needs  Standardized development and best practices What most of them really are:  Overly complicated  Unrealistic  $$$$$$$$$$$$$$$$$$$$$$$$$$$ 4
  • 5. How do you become Enterprise?  Pass (parts) of the Joel Test  Project Management  Managed Environments  Automated Processes  Standards! 5
  • 6. The Joel Test 1. Do you have a spec? 2. Do you use source control? 3. Can you make a build in one step? 4. Do you make daily builds? 5. Do you have an up-to-date schedule? 6. Do you have a bug database? Or at least the relevant parts 6
  • 7. Project Management  Pick a project management style  SCRUM  Kanban  Generate a functional and technical spec  Formal documents  User stories  Stick with it You can‟t do work unless you know what needs to be done 7
  • 8. Project Management Tools  Basecamp HQ  Planbox  Spreadsheet  Whiteboard/Corkboard 8
  • 9. Scheduling and Budgets  Take your specs, build a schedule  Take your specs, and put a price on your time 9
  • 10. Fast Cheap Right You can only pick two, and these affect your schedule and budget. 10
  • 12. Managed Environments  A work area with a specific purpose  Should have at least these three areas:  Development  Quality  Production  If you can, add „Integration‟ before Production  Code always moves up, not down, the chain 12
  • 13. Development  Here Be Dragons  Code here is never considered stable  Can be any machine (local, a VM, space on a server, wherever) 13
  • 14. Quality  Code should always work here (ignoring bugs)  This is where your QA testers live  Should be as close to Production‟s setup as possible  Should have logging and debugging on 14
  • 15. Integration  Production-lite  Used to catch deployment bugs  Uses production data  Should be EXACTLY the same as Production  Same OS, configuration, and version levels 15
  • 17. Managing Environments  Virtualization  Configuration Management 17
  • 19. Love your IDE  Pick an IDE (or a good text editor) and learn it  For text editing I prefer vim or SublimeText  For IDEs I prefer Zend Studio or PHPStorm  Pick what you use based on the power it gives you 19
  • 20. Source Control  Pick One, it doesn‟t matter  But don‟t pick Visual Source Safe  Make sure that it works with your other tools  When in doubt, use git 20
  • 21. Quality Assurance Setting up QA automation will help you find things that break  PHPUnit/Behat  Selenium/phantomjs + casperjs  PHPLOC  PHP Mess Detector  PHP_CodeSniffer  PHP Copy/Paste Dectector 21
  • 22. Continuous Integration  Act of automating build tasks  How is a PHP project built?  Check out the source code from the SCM  Run the unit tests  Run any code helpers  Build documentation  Packaging 22
  • 23. Continuous Integration Software  Jenkins  http://jenkins-php.org/  phing and xinc 23
  • 24. What about the real world? I‟VE PAINTED A WONDERFUL PICTURE, BUT PUTTING IT INTO PRACTICE IS SOMETHING ELSE 24
  • 25. Get the pieces into place  Get Proper Specs  Get Source Control  Get Task/Bug Tracking  Get Environments  Get the tools 25
  • 26. Automate as much as possible  Every step (but the specs, scheduling, and budget) can be automated  You don‟t have to automate all of the steps  Some automation is better than nothing  Start small 26
  • 27. Development  Get a good IDE/Text Editor that you are familiar with  Use the QA tools to make sure your code isn‟t breaking  There‟s a reason TDD/BDD keeps coming up at conferences  Keep track of bugs, and be strict about people following the process 27
  • 29. Thank You!  chris@ctankersley.com  @dragonmantank  https://joind.in/9091 29