View
215
Download
0
Category
Tags:
Preview:
Citation preview
Zen
dco
n 2
01
3
1
Enterprise Development on a Shoestring Budget
EMAIL: CHRIS@CTANKERSLEY.COM
TWITTER: @DRAGONMANTANK
Oct 9
20
13
Zen
dco
n 2
01
3
2Who 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
Oct 9
20
13
Zen
dco
n 2
01
3
3So 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
$$$$$$$$$$$$$$$$$$$$$$$$$$$
Oct 9
20
13
Zen
dco
n 2
01
3
4So 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
$$$$$$$$$$$$$$$$$$$$$$$$$$$
Oct 9
20
13
Zen
dco
n 2
01
3
5How do you become Enterprise?
Pass (parts) of the Joel Test
Project Management
Managed Environments
Automated Processes
Standards!
Oct 9
20
13
Zen
dco
n 2
01
3
6The 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 partsO
ct 9 2
01
3
Zen
dco
n 2
01
3
7Project 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 doneO
ct 9 2
01
3
Zen
dco
n 2
01
3
8Project Management Tools
Basecamp HQ
Planbox
Spreadsheet
Whiteboard/Corkboard
Oct 9
20
13
Zen
dco
n 2
01
3
9Scheduling and Budgets
Take your specs, build a schedule
Take your specs, and put a price on your time
Oct 9
20
13
Zen
dco
n 2
01
3
10
Fast
Cheap
Right
You can only pick two, and these affect your schedule
and budget.
Oct 9
20
13
Zen
dco
n 2
01
3
12Managed 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
Oct 9
20
13
Zen
dco
n 2
01
3
13Development
Here Be Dragons
Code here is never considered stable
Can be any machine (local, a VM, space on a server, wherever)
Oct 9
20
13
Zen
dco
n 2
01
3
14Quality
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
Oct 9
20
13
Zen
dco
n 2
01
3
15Integration
Production-lite
Used to catch deployment bugs
Uses production data
Should be EXACTLY the same as Production Same OS, configuration, and version levels
Oct 9
20
13
Zen
dco
n 2
01
3
19Love 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
Oct 9
20
13
Zen
dco
n 2
01
3
20Source 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
Oct 9
20
13
Zen
dco
n 2
01
3
21Quality 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
Oct 9
20
13
Zen
dco
n 2
01
3
22Continuous 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
Oct 9
20
13
Zen
dco
n 2
01
3
23Continuous Integration Software
Jenkins http://jenkins-php.org/
phing and xinc
Oct 9
20
13
Zen
dco
n 2
01
3
24
What about the real world?I’VE PAINTED A WONDERFUL PICTURE, BUT PUTTING IT INTO PRACTICE IS SOMETHING ELSE
Oct 9
20
13
Zen
dco
n 2
01
3
25Get the pieces into place
Get Proper Specs
Get Source Control
Get Task/Bug Tracking
Get Environments
Get the tools
Oct 9
20
13
Zen
dco
n 2
01
3
26Automate 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
Oct 9
20
13
Zen
dco
n 2
01
3
27Development
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
Oct 9
20
13
Zen
dco
n 2
01
3
29Thank You!
chris@ctankersley.com
@dragonmantank
https://joind.in/9091
Oct 9
20
13
Recommended