際際滷

際際滷Share a Scribd company logo
Lean Mean PHP
                           Machine


                       Jason Austin   @jason_austin   TEK-X


Friday, May 21, 2010
A little about me...




Friday, May 21, 2010
The team at NC State
                       2 full time employees
                       2 part time students
                       1 manager




Friday, May 21, 2010
We do the internet
                       Support apps
                       Campus-wide initiatives
                       Community engagement




Friday, May 21, 2010
A little history
                       Started with one part-time developer
                       No standards
                       No best practices
                       No idea what I was doing




Friday, May 21, 2010
A little more history...
                       Added a developer and a manager
                       Went to ZendCon 2006
                       Plugged into #phpc
                       Re-invented ourselves




Friday, May 21, 2010
Daily challenges
                       Our business is not so'ware
                       Budget
                       Educating management
                       Demanding clientele




Friday, May 21, 2010
David vs. Goliath
Friday, May 21, 2010
Goliath Shops

                       Project managers

                       UI designers

                       Code developers

                       QA sta鍖

                       Support sta鍖

                                          flickr @gadgetgirl70




Friday, May 21, 2010
Goliath Shops
                       Multiple people responsible
                       Focus on a single part of a project
                       Anonymity
                       Lack of payo鍖




Friday, May 21, 2010
David Shops

                       Everyone is
                       responsible for
                       everything

                       Hazy job
                       responsibilities



                                          flickr @helico




Friday, May 21, 2010
David Shops
                       Focus on the whole project (or multiple
                       projects)
                       Support a'er release
                       Make your mark
                       See the payo鍖




Friday, May 21, 2010
To be successful
                       Hire and retain great developers
                       Spend money wisely
                       Communicate and collaborate
                       Code smarter




Friday, May 21, 2010
Tip #1
       Successful shops are built on
      the backs of successful people




Friday, May 21, 2010
It starts with hiring
                       Know your needs
                       Targeted, clear job descriptions
                       Post everywhere
                       Recruit
                       Reputation




Friday, May 21, 2010
Hiring is risky
                       Contract positions
                       Part-time workers
                       Outsource




Friday, May 21, 2010
Bad hires are poison
                       Trust
                       E鍖ciency
                       Culture clash




Friday, May 21, 2010
Who do we interview?
                       LinkedIn, Resum辿
                       Blog, twitter, facebook
                       Ask for code
                       Virtual interviews




Friday, May 21, 2010
Interviews suck
                       Not a true representation of skill
                       Easy to fake
                       Time waster for the existing team




Friday, May 21, 2010
But if its required...
                       Dont play games
                       Have a loose plan
                       Ask what you want to know




Friday, May 21, 2010
Face time
                       See how they think
                       Problem solving skills
                       Communication skills




Friday, May 21, 2010
The successful types:
                       Motivated (are you interested)
                       Go-getter
                       Eager to learn
                       Engaged
                       Team Player




Friday, May 21, 2010
Be part of the process
                       Read resumes
                       Research
                       Interview if you have to




Friday, May 21, 2010
Team assembled. Now what?
Friday, May 21, 2010
Care for the team
                       Feed and water daily
                       Encourage participation
                       Engage
                       Reward
                       Compensate




Friday, May 21, 2010
Build team chemistry
                       Get away from your workspace
                       Sports? Video games? Beer?
                       Whatever it takes
                       Avoid crazy HR team building exercises




Friday, May 21, 2010
Keep the good devs
                       Hiring new devs is expensive
                         Training
                         Exposure to apps
                       Institutional knowledge




Friday, May 21, 2010
Tip #2




                       A happy developer is a
                       productive developer

Friday, May 21, 2010
Developers are unique
                       Platform
                       IDE
                       Hours
                       Work environment




Friday, May 21, 2010
Listen
                       Open participation
                       Feedback sessions
                       Find what 鍖ts each dev and go with it




Friday, May 21, 2010
Shield the new guys
                       Meetings generally suck
                       Block out time
                       Keep politics to a min




Friday, May 21, 2010
Management
                       Manage up or around
                       Facts
                       Deliverables




Friday, May 21, 2010
Training
                       Continuous and Strategic
                       Webinars are cheap
                       Team up




Friday, May 21, 2010
Telecommuting
                       Works for some, not all
                       More focus
                       Small, dark places where awesome code
                       lives




Friday, May 21, 2010
Tip #3
        Spend money where you get
        the most bang for your buck




Friday, May 21, 2010
Open Source is your friend
                       Project Management
                       Issue Tracking
                       Administrative Tools
                       Productivity Tools




Friday, May 21, 2010
Use existing tools
                       Codebase management
                       Support
                       Cheaper in the long run




Friday, May 21, 2010
Prove the value
                       Case studies
                       Documentation
                       Expert Trusted advice




Friday, May 21, 2010
Follow through
                       Results are critical
                       Credibility
                       Makes the next request easier




Friday, May 21, 2010
Tip #4
      Join in the discussion at every
                   level



                                        flickr: @danielygo




Friday, May 21, 2010
Get local
                       Meetup.com
                       Find a user group
                       Connect with colleagues




Friday, May 21, 2010
Get global
                       IRC at #phpc
                       Twitter
                       Conferences




Friday, May 21, 2010
Put yourself out there
                       PHPers arent scary (mostly)
                       Take initiative
                       Connect yourself, then connect others




Friday, May 21, 2010
Tip #5
                 Reduce, reuse, recycle




Friday, May 21, 2010
Write once, use many
                       Code reusability
                       Module portability
                       Testability




Friday, May 21, 2010
Frameworks!
                       Use them...now
                         Zend Framework
                         CakePHP
                         Symphony
                         Whatever




Friday, May 21, 2010
Code re-use
                       OT Framework
                         Auth and ACL
                         Navigation
                         Themes
                       Its an app shell




Friday, May 21, 2010
Re-use bene鍖ts
                       Setup time
                       Common methods
                       Upgradability




Friday, May 21, 2010
Last Tip
        Integrate best practices from
                  the start



                                        flickr @enerva




Friday, May 21, 2010
Development is not just typing
                       Testing is a requirement, not a feature
                       Plan for usability and accessibility
                       Design then develop
                       Single-step deployment




Friday, May 21, 2010
flickr @lwr




                       Any questions?
Friday, May 21, 2010
Rate me on
                           Jason Austin    @jason_austin
                          http://www.jasonawesome.com
                       Review this talk at http://joind.in/1608




Friday, May 21, 2010

More Related Content

Lean mean php machine

  • 1. Lean Mean PHP Machine Jason Austin @jason_austin TEK-X Friday, May 21, 2010
  • 2. A little about me... Friday, May 21, 2010
  • 3. The team at NC State 2 full time employees 2 part time students 1 manager Friday, May 21, 2010
  • 4. We do the internet Support apps Campus-wide initiatives Community engagement Friday, May 21, 2010
  • 5. A little history Started with one part-time developer No standards No best practices No idea what I was doing Friday, May 21, 2010
  • 6. A little more history... Added a developer and a manager Went to ZendCon 2006 Plugged into #phpc Re-invented ourselves Friday, May 21, 2010
  • 7. Daily challenges Our business is not so'ware Budget Educating management Demanding clientele Friday, May 21, 2010
  • 9. Goliath Shops Project managers UI designers Code developers QA sta鍖 Support sta鍖 flickr @gadgetgirl70 Friday, May 21, 2010
  • 10. Goliath Shops Multiple people responsible Focus on a single part of a project Anonymity Lack of payo鍖 Friday, May 21, 2010
  • 11. David Shops Everyone is responsible for everything Hazy job responsibilities flickr @helico Friday, May 21, 2010
  • 12. David Shops Focus on the whole project (or multiple projects) Support a'er release Make your mark See the payo鍖 Friday, May 21, 2010
  • 13. To be successful Hire and retain great developers Spend money wisely Communicate and collaborate Code smarter Friday, May 21, 2010
  • 14. Tip #1 Successful shops are built on the backs of successful people Friday, May 21, 2010
  • 15. It starts with hiring Know your needs Targeted, clear job descriptions Post everywhere Recruit Reputation Friday, May 21, 2010
  • 16. Hiring is risky Contract positions Part-time workers Outsource Friday, May 21, 2010
  • 17. Bad hires are poison Trust E鍖ciency Culture clash Friday, May 21, 2010
  • 18. Who do we interview? LinkedIn, Resum辿 Blog, twitter, facebook Ask for code Virtual interviews Friday, May 21, 2010
  • 19. Interviews suck Not a true representation of skill Easy to fake Time waster for the existing team Friday, May 21, 2010
  • 20. But if its required... Dont play games Have a loose plan Ask what you want to know Friday, May 21, 2010
  • 21. Face time See how they think Problem solving skills Communication skills Friday, May 21, 2010
  • 22. The successful types: Motivated (are you interested) Go-getter Eager to learn Engaged Team Player Friday, May 21, 2010
  • 23. Be part of the process Read resumes Research Interview if you have to Friday, May 21, 2010
  • 24. Team assembled. Now what? Friday, May 21, 2010
  • 25. Care for the team Feed and water daily Encourage participation Engage Reward Compensate Friday, May 21, 2010
  • 26. Build team chemistry Get away from your workspace Sports? Video games? Beer? Whatever it takes Avoid crazy HR team building exercises Friday, May 21, 2010
  • 27. Keep the good devs Hiring new devs is expensive Training Exposure to apps Institutional knowledge Friday, May 21, 2010
  • 28. Tip #2 A happy developer is a productive developer Friday, May 21, 2010
  • 29. Developers are unique Platform IDE Hours Work environment Friday, May 21, 2010
  • 30. Listen Open participation Feedback sessions Find what 鍖ts each dev and go with it Friday, May 21, 2010
  • 31. Shield the new guys Meetings generally suck Block out time Keep politics to a min Friday, May 21, 2010
  • 32. Management Manage up or around Facts Deliverables Friday, May 21, 2010
  • 33. Training Continuous and Strategic Webinars are cheap Team up Friday, May 21, 2010
  • 34. Telecommuting Works for some, not all More focus Small, dark places where awesome code lives Friday, May 21, 2010
  • 35. Tip #3 Spend money where you get the most bang for your buck Friday, May 21, 2010
  • 36. Open Source is your friend Project Management Issue Tracking Administrative Tools Productivity Tools Friday, May 21, 2010
  • 37. Use existing tools Codebase management Support Cheaper in the long run Friday, May 21, 2010
  • 38. Prove the value Case studies Documentation Expert Trusted advice Friday, May 21, 2010
  • 39. Follow through Results are critical Credibility Makes the next request easier Friday, May 21, 2010
  • 40. Tip #4 Join in the discussion at every level flickr: @danielygo Friday, May 21, 2010
  • 41. Get local Meetup.com Find a user group Connect with colleagues Friday, May 21, 2010
  • 42. Get global IRC at #phpc Twitter Conferences Friday, May 21, 2010
  • 43. Put yourself out there PHPers arent scary (mostly) Take initiative Connect yourself, then connect others Friday, May 21, 2010
  • 44. Tip #5 Reduce, reuse, recycle Friday, May 21, 2010
  • 45. Write once, use many Code reusability Module portability Testability Friday, May 21, 2010
  • 46. Frameworks! Use them...now Zend Framework CakePHP Symphony Whatever Friday, May 21, 2010
  • 47. Code re-use OT Framework Auth and ACL Navigation Themes Its an app shell Friday, May 21, 2010
  • 48. Re-use bene鍖ts Setup time Common methods Upgradability Friday, May 21, 2010
  • 49. Last Tip Integrate best practices from the start flickr @enerva Friday, May 21, 2010
  • 50. Development is not just typing Testing is a requirement, not a feature Plan for usability and accessibility Design then develop Single-step deployment Friday, May 21, 2010
  • 51. flickr @lwr Any questions? Friday, May 21, 2010
  • 52. Rate me on Jason Austin @jason_austin http://www.jasonawesome.com Review this talk at http://joind.in/1608 Friday, May 21, 2010