Passing The Joel Test In The PHP World

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    svn: existing backups, hooks, stable server

    http://www.flickr.com/photos/barnaby_s/2689622236/

    caches like APC actually do compile + store

    bug trackers integrate with source control

    Users like this are like a mongoose backed into a corner: with its back to the wall and seeing certain death staring it in the face, it attacks frantically, because doing something has to be better than doing nothing. This is not well adapted to the type of problems computers produce. Instead of being a mongoose, be an antelope. When an antelope is confronted with something unexpected or frightening, it freezes. It stays absolutely still and tries not to attract any attention, while it stops and thinks and works out the best thing to do. (If antelopes had a technical support line, it would be telephoning it at this point.) Then, once it has decided what the safest thing to do is, it does it.

    drop hourly rates absorb overrun BUT DO NOT CUT ESTIMATES

    http://www.flickr.com/photos/uk_parliament/2524365036/

    Phone: and those nearby Meetings: and what time of day Email: expected instant response? Its about control Telecommute helps

    http://www.flickr.com/photos/stefanyasin/2434657543/

    http://www.flickr.com/photos/spadgy/313251515/

    http://www.flickr.com/photos/artnow/1351601518/sizes/l/

    http://www.flickr.com/photos/bfionline/3117948329/

    For each task write test test fails write code test passes End up with a suite of tests covering application ties in to continuous integration and automated testing

    PEAR/PECL Frameworks Javascript libraries/frameworks Beware license restrictions

    Resources Courses Events Encourage advancement

    7 Favorites

    Passing The Joel Test In The PHP World - Presentation Transcript

    1. Passing the Joel Test in the PHP World
    2. Who am I?
      • Lorna Mitchell
      • PHP Developer at Ibuildings
      • Personal site http://lornajane.net
      • European Rep for phpwomen.org
      • PHPNW organiser
      • Twitter: @lornajane
    3. Who is Joel?
      • Joel Spolsky
      • Founder of Fog Creek Software
      • Blogs at http://joelonsoftware.com
      • Author of numerous books, particularly Best Software Writing
      • Co-founder of http://stackoverflow.com
    4. What is the Joel Test?
      • 12 questions about your organisation
      • "... a highly irresponsible, sloppy test to rate the quality of a software team"
      • Rule-of-thumb for best practice
      • How does it apply to PHP?
    5. The Joel Test (1-6)
      • Do you use source control?
      • Can you make a build in one step?
      • Do you make daily builds?
      • Do you have a bug database?
      • Do you fix bugs before writing new code?
      • Do you have an up-to-date schedule?
    6. The Joel Test (7-12)
      • Do you have a spec?
      • Do programmers have quiet working conditions?
      • Do you use the best tools money can buy?
      • Do you have testers?
      • Do new candidates write code during their interview?
      • Do you do hallway usability testing?
    7. What is the Joel Test For?
      • Scoring your current organisation
      • Improving your current organisation
      • Scoring your next organisation
      http://jobs.joelonsoftware.com
    8. Comparison Scores
      • Microsoft: 12/12
      • Ibuildings: 8 or 9
      • eZ Components: 8 or 9
      • Red Embedded: 10
      • Your organisation … ?
    9.  
    10. Source Control
      • Central storage
      • Change history
      • Enables collaboration
      • Manage multiple versions
    11. Source Control Solutions
      • CVS
        • http://www.nongnu.org/cvs/
      • Subversion (svn)
        • http://subversion.tigris.org/
      • Git
        • http://git.or.cz/
      • Bazaar (bzr)
        • http://www.bazaar-vcs.org/
    12. Traditional Source Control user repo user user user
    13. Distributed Source Control repo repo repo repo repo
    14. Distributed Source Control
      • Local machine has repository
      • Has full history
      • Commit locally
      • Commit globally later
    15. Recommendations subversion Developers using command line IDE plugins git-svn, bzr-svn bridges Designers using TortoiseSVN Managers using WebSVN
    16. Resources
      • git-svn
        • http://www.kernel.org/pub/software/scm/git/docs/git-svn.html
      • bzr-svn
        • http://bazaar-vcs.org/BzrForeignBranches/Subversion
      • WebSVN
        • http://www.websvn.info/
      • TortoiseSVN
        • http://tortoisesvn.tigris.org/
    17. Ask Me This In The Bar
      • Branching
      • Tagging
      • Versions
    18.  
    19.  
    20. PHP is Interpreted
      • So do we care about builds?
    21. What's in a Build?
      • Code compilation
      • Document generation
      • Test suite execution and feedback
      • Application deployment
      • Packaging
    22. Ask Me This In The Bar
      • Deployment Scripts
      • Rollback
      • Databases
    23. Sounds like Continuous Integration
    24. Continuous Integration
      • A running process
      • Responds to commit (and/or hooks)
      • Performs tasks
      • Gives feedback
    25. Continuous Integration
    26. Continuous Integration
    27. Continuous Integration Solutions
      • Hudson https://hudson.dev.java.net/
      • phpUnderControl http://phpundercontrol.org/
      • Xinc http://sourceforge.net/projects/xinc/
      • COMPULSORY
    28. I have a personal bug tracker
    29. Bug Trackers
      • Capture features/tasks
      • Who does what?
      • Progress for each task, keep updated
      • Can reallocate items
    30. Bug Tracker Solutions
      • Trac http://trac.edgewall.org/
      • Mantis http://www.mantisbt.org/
      • Jira http://www.atlassian.com/software/jira/
      • Eventum http://forge.mysql.com/wiki/Eventum/
      • Hosted Options
        • github
        • sourceforge
    31.  
    32. Joel Says
      • Keep bugs near to zero
      • Cannot estimate bug fix time
      • Minimise unknowns
    33. Capturing Bugs
      • As a minimum, record bug
      • Buggy behaviour
      • Expected behaviour
      • Smallest possible replication case
    34. How to Report a Bug
      • http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
      it's not worth reporting that the program generated an error unless you can also report what the error message was. if a computer does anything unexpected, freeze Some of the worst bug reports I've ever seen come from programmers Try to remember as much detail as you can about what you were doing to it when it did fall over, and if you see any patterns, mention them. Anything you can provide has to be some help.
    35.  
    36.  
    37. Scheduling Workflow collect requirements write specification separate into discrete tasks estimate task duration
    38. Who Estimates?
      • Ideally the do-er
      • At least someone who could do it
      • Never cut estimates
    39. Schedule
      • What each person is doing
      • When it is due to finish
      • Can record progress/actions
      • What is next
    40. Specification
      • Holds the information needed for each task
      • May include acceptance criteria
      • More detail means fewer misunderstandings
        • mockups/pictures
        • form fields
    41. Agile and Timings
      • Agile development is reactive
      • Always on time at start of sprint
      • Estimates and spec detail can be prepared per sprint
    42. Burndown Charts
      • List of tasks
      • Tasks have estimates
      • Sprint is as many tasks as you have man-hours
    43. Burndown Example
    44. Burndown Example (Mon)
    45. Burndown Example (Tue)
    46. Burndown Example (Wed)
    47. Burndown Example (Thu)
    48. Burndown Example (Fri)
    49.  
    50. Interruptions Meetings Phone Email
    51.  
    52. Tools
      • Software
      • Hardware
      • Resources
      • All cost money (or time, or effort)
    53. Software
      • IDE
        • Zend Studio (£250)
        • Visual Studio (£200)
        • many free alternatives
      • Graphics
        • Photoshop (£450)
        • Paint Shop Pro (£400)
        • free alternatives
    54. Hardware
    55.  
    56.  
    57.  
    58.  
    59. Resources
      • Magazines
        • php|architect (£25 / year)
      • Site memberships
        • Experts' Exchange (pay per question)
        • Safari (£155 / year)
      • Books
    60. Ask Me This In The Bar
      • Free resources
      • How to train your employer
    61.  
    62. Assessing Candidate Code
      • During interview
      • As part of recruitment process
      • Ibuildings uses this
      • The coding task makes a big impression on the candidate
    63.  
    64.  
    65. Testers are not developers Developers are not testers
    66. Tools for Testing in PHP
      • Unit Testing
        • PHPUnit
        • SimpleTest
        • phpt
      • Browser Testing
        • Selenium
    67. Points Missing from Joel's Test?
    68. Do you use test-driven development?
    69. Do you avoid reinventing the wheel?
    70. Do you help your employees to develop themselves professionally?
    71. And?
    72. http://joind.in/612

    + Lorna MitchellLorna Mitchell, 1 month ago

    custom

    1435 views, 7 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1435
      • 1435 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 7
    • Downloads 25
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories