Posted on April 17th, 2011 154 comments
At work, our tech lead (architect on an agile project) recently asked every developer of the team, under the form of little 1 to 1 meetings, what in his opinion could be improved. Because every developer has his own vision of the project, knows issues that others might not be aware of, precious information shuch as those points below can be revealed :
- What are the main blocking points that we should get rid of
- Suggestions for areas to refactor
- Performance issues
The tech lead basically wrote down on a sheet of paper what the developer said (at first, without showing him what other colleagues have said, to not influence his opinion). He added marks in front of every point that was mentionned several times (let’s say that your colleague said previously that the UI styles really need to be refactored and that you say the same, he’ll put a mark in front of that remark so he knows that’s a point of importance and that those having several marks should be tackled first.
Then, once the developer has finished, he showed him the sheet with the results so the developer could react based on what others have said, like “oh yeah I forgot that point, it’s really important to address this one !”.
Those 1 to 1 meetings didn’t take longer than 30min in total and really shed light on very important points that enabled to increase the quality of our project. Very simple to do and very useful. Actually it’s the first project where I see this practice, this should be done from time to time on every project in my opinion.
Make good use of it
Posted on April 17th, 2011 67 comments
Almost every project has recurring operations consisting of several steps. The problem when there’s a lot of steps is that you have to know them by heart otherwise your project may become inconsistent and can lead to unexpected behaviors. Typically, developers save checklists files or screenshots of configuration settings on their local drive (like I did) to be sure they remain consistent and they don’t forget steps. So why not just sharing that precious knowledge with the team ?
Very simple : just create a Checklists.txt file at the root of your project (e.g. the backend project). As it will be source-controlled, any developer can add his contribution : add new checklists, complete existing ones or correct them.
Here’s an example on how to organize that file :
Enforcing that practice also ensures faster adoption of code base for new developers as it will act as a mini tutorial of the most important operations on your project !