Configuration Use Composer (http://getcomposer.org) to isolate tools to your project Modify your project to fit the defaults of tools whenever possible Avoid fighting with tools but also resist urge to write your own
Configuration Avoid “my project is SOOOOO unique” mentality Makes it increasingly difficult to integrate other projects Convention over configuration matters
Education Impossible to learn how to write tests in isolation Mentorships are awesome! (http://phpmentoring.org) Talking about mentoring is awesome (#phpmentoring on Freenode)
Coupling Dependency Injection Containers and Service Locators are simply globally-available ways to retrieve stuff Be sure to not make you code dependant on the container / locator!
Dependencies “Mocking” is the creation of copies of dependencies the code you are testing has You create those copies in a specific state Easiest way to see if your code is testable — can you easily inject dependencies in?
Misconceptions Getting paid not to write code, but to solve problems Many people discount the costs of fixing bugs Many people discount the costs of missed opportunities bugs create
Misconceptions TDD is about shifting bug-fixing to a cheaper part of the process TDD is a design pattern! 20% to 40% more time for 40% to 90% fewer bugs