This is a list of books currently on my To Read shelf... literally. I do not suggest or anti-suggest any of them at this time as I haven't read them yet.
Current Efforts:
Blue Parabola, LLC
HubAustin
web2Project
PHP'ers:
Cal Evans
Eli White
Elizabeth Naramore
Joe LeBlanc
Matthew Turland
Matthew Weier O'Phinney
Planet PHP
Tony Bibbs
Business/mISV:
Bob Walsh
Eric Sink
Joel Spolsky
Micah Baldwin
Paul Graham
Past Projects:
CodeSnipers
HOBY
Judicial Watch
mobile FoxNews.com
NRTW
Great Tools I use:
Drupal
GitHub
NetBeans for PHP
phpUnit
Subversion
Zend Framework
This is not the home of dotProject or web2project. It is the home of CaseySoftware, LLC. Any dotProject support questions should be referred to their support forums.
A few months ago, I heard an interesting idea about the 2nd Worst Developer. It's wrapped up in a simple statement:
... the quality of a software system is proportional to the skills of the second worst programmer
While at first pass, that may seem to be a silly statement, but here's why:
... everyone on the team knows who the worst programmer is, so senior developers are closely monitoring everything that he does and cleaning up problems. The work of the second worst programmer is not monitored with that attention so he has the chance to do some real damage.
On small teams with short projects and even shorter deadlines, this problem is multiplied. Not only are you dealing with overlooked problems, but you're dealing with less-than-perfect decisions consciously made to "get it launched". Now you have two problems that compound on each other... Brandon Savage covers this one well in "Paying Down Technical Debt".
But what if you had a way of preventing technical debt in the first place?
Well, obviously you've hired the top 1% of developers so how can we improve things without firing everyone and hiring new people?
Food for thought:
- Oddly enough, everyone claims to have hired the top 1% of developers...
- If you hired the people you just fired, what makes you think you can hire better people next time?
While many teams have solved this problem backwards and fowards, it's worth considering and working our way through again...
I do (and recommend) three things as a starting point:
First of all, as my friend and colleage Cal Evans (aka Mr April) says, every developer should read every commit message. When I was with WhyGoSolo, at its peak, we had a team of 7 developers each working on different parts of the system which often interacted with one another. Once we went into Feature Freeze for a release, we had a simple rule: every single commit had to be "blessed" by another developer. It made sure that someone was looking over someone else's shoulder. As a result, I believe only a handful of bugs made it into production.
Second, there are a handful of nifty things you can do with Subversion Commit Hooks as Matthew Turland shares. While it doesn't seem like much at first pass, it's very handy to know there are zero syntax errors in the PHP within our repository. That doesn't mean there are no bugs... but it ensures that any bugs are logical errors as opposed to typos.
Finally, I make sure to commit frequently to Subversion. Every time I've fixed a specific bug, cleaned up some code, or implemented a new feature, I commit. It means that at any given time, no matter how I've screwed things up, I can roll back to an old known-good version. Even more importantly, by keeping every commit atomic, I limit the set of changed files to the scope of what I'm currently working on.
There is plenty of room for improvement in this scenario: Unit Test, Continuous Integration, etc...
Any other suggestions or creative things you've seen?
About hiring developers...
I'd say the main problem is that developers often don't get hired, or at least interviewed and approved, by the (technical!) people / devs that'll end up working with em.
Maybe you got a different experience, but I, unfortunately, never worked with any of the top 1% developers... ;-)
Top 1% of Developers
I meant it partially as a joke... there are numerous companies that all claim to only hire the "top 1%" of developers. Since collectively I believe they have more than the top 1% employed, I suspect they're wrong...
@Olly to work with the best
@Olly to work with the best you need to be the best ;)
standard
all of this is pretty standard, but merits to be reminded :)
Not all that standard
Unfortunately, you'd be amazed at how many groups don't run with any Quality Control processes whatsoever... no testing and no code review.
There are still quite a few that don't even use Version Control... :(
Git has support for this:
Git has support for this: There's a feature called 'signed off by', which means that your commits can show two users: one who wrote it, and the other who approved it.
Works especially well for public projects which accept outside patches. You can tell that one of the people who 'knows' the code vetted the patch.
Post new comment