Though Tips from the Trenches
by Matt Gullet is aimed at those of us that are alone in their development efforts, it contains a lot practical advice that works for those working in team environment. The article is divided into two sections, technical and non-technical aspects of Matt's job. Matt also describes what he has worked towards in his three years of going it alone.
The list of non technical advice includes;
* Set personal goals
* Read, Read, Read
* Come out of the closet
* Meetings are not all bad, just mostly bad
* After hours is off limits
* Set reasonable expectations
* I'm not a programmer, I'm an architect
When setting a goal one must also set a dead line in which that goal should be reached
One of the things I have learned about goals is that any real goal must have a deadline attached to it. You will notice that each of the goals I listed is singular in nature and has a set deadline
Matt comments that setting deadlines helps him in managing his schedule. He also notes the difficulties of setting personal goals and comments how he manages to avoid setting himself up for failure. Matt doesn’t claim to meet all of his goals but he does try to understand what caused him to miss. This information is often useful when one sets new goals as it often addresses compromises and sacrifices that one is not willing to make.
On the subject of meetings, the advice addresses how to measure the potential usefulness. The guidelines include the ability of the person calling the meeting to set an agenda, the length is relation to the topic, the number of and roles of the people invited. If Matt was aiming to avoid all useless meetings then he clearly has failed. Matt recognizes that there are meeting that just cannot be avoided. However these meeting still offer opportunities to improve communication skills.
There is also an interesting aspect of putting in time after-hours.
At one point, I found myself saying to myself (and others) that I would have a particular feature/component/whatever finished by Monday morning. This is a dead giveaway for a problem. How can anything be ready in the morning unless you plan to work on it at night?
The technical aspects include;
* Plan, then code
* The right tool for the right job
* Fix bugs early
* Develop good coding habits
* Know thy enemy
* Documentation is your friend
* Form over function
In the category of know thy enemy, Matt points to two major devourers of time, procrastination and gold plating. The two main reasons for procrastination fear of failure and avoiding the mundane. Gold platting is always trying to work with latest and greatest technologies without understanding if there will be benefits to do so. The advice here is to limit gold platting till the end of the project. This limits the chance that you’ll over-run the schedule.