In October, I'll be delivering a tutorial at the mighty PHPNW Conference which contains very little PHP. Why? Because I think, as developers, it's our other professional skills that suffer. As a consultant, I work with lots of different teams, and it is very rare for code to be the problem (and the one time it was, it wasn't the only problem!).
In web development, our biggest challenges are not writing code, we can do that. But getting the code safely from one place to another, with many people's work preserved, having our platform(s) correctly configured and understanding how to use them, making use of the tools in the ecosystem which will help us improve the quality of our code; these are the big challenges we face, and that's why I proposed this workshop and why I think all these topics are important.
I've been speaking on the circuit long enough to remember when half the room would raise their hand to admit they're not using source control. Nowadays, it isn't socially acceptable to say that but I still work with lots of organisations to implement source control for the first time and help them to use it effectively. As a result, we'll use a project that's on github and the tutorial will show you how to safely get your own repo and collaborate with others. If you're already using git, then great! Help the person next to you. If you're using SVN or something else, or you're new to source control, then great! You're in the right place.
Static Analysis Tools
Do you need to implement every static analysis tool in the PHP ecosystem against your project? Probably not :) But I'd like you to know what's out there so you can decide which of them might be useful to work with in your project. We'll look at a few and use a few, and give a feel for the kind of output they produce, what they can measure, and what you might want to do with that output. In particular I'm a big fan of PHPDocumentor (and we'll use version 2) for generating useful API documentation - so we'll look at that.
Tired of people saying "your site is slow"? Me, too. Which bit and how slow? You can measure this for yourself - and then measure how much you improved it by! I like to use XHProf for this, it creates some solid numbers and is easy to use. Without a profiling tool, you can optimise all you want but you're probably not optimising the right thing.
This is the closest thing to a silver bullet that I'm aware of in development terms, especially as we move closer to small, incremental changes and increasingly frequent releases. If deployment takes time and requires anyone to do more than just press a button, then you're burning resource every single time, and introducing the potential for mistakes. I use phing for this and will show you how to automate the various steps.
Just Enough Sysadmin to be Dangerous
There isn't time to teach you everything you might need, but the tutorial uses an ubuntu virtual machine so you'll be picking up some linux skills during the day. I expect lots of questions from people who haven't used the linux CLI before; some people will have experience but I don't imagine everyone does. We will be configuring apache virtual hosts, setting up local subdomains, restarting the web server, looking at logs, and whatever else comes up along the way - all very useful tools to have in the box!
Join the Tools Tutorial
The conference isn't until October, so although you've missed the early bird prices, there is still time to book tickets for this tutorial (or any of the other excellent ones on offer). Hope to see you there or at the main PHPNW conference!