The session “Applying Craftsmanship” at the JAOO conference by Pete McBreen was by no means technical but made me think. The stuff he talked about is, in my opinion, common sense. Below is an abstract of what I got out of the session. I wanted to share it with you and wrote it down so that I don’t forget about it in 6 months time.
- Currently the norm for gaining the title as senior developer is only 5 years of experience. Does that make sense? Can you really gain enough knowledge in such a short time? What is the next step in the career path for technical for a developer? Architect or project manager? Not all developers make good architects, as the skill required differs. Almost no developers make good project managers. What is often seen is the organization ends up with a lousy project manager and loosing their prime developer.
- Why have two teams – one to develop the solution and another to maintain it. It does not make any sense, as the initial developers are the best source of knowledge of implementation details. Give the initial developer’s incentives to build the best possible solution by having them maintain the code base afterwards.
- Developers fresh out of college or university should learn from the more experienced developers (senior developers?). The best way to learn is by looking at others code or paring up with a more experienced developer. Pete McBreen favored having the newbies help maintain existing code. That makes sense in my ears, as they then get exposed to others (hopefully) high quality code, while paring up with the experienced developers.
- Another issue he addressed was the current trend of discarding existing code and redeveloping the same functionality over and over again. He made a point out of continuously improving the software quality, so the need to discard the existing code would be pointless. The goal is not solely to continuously refactor, but to improve the user experience – functionality wise.
- This ties very well to the last point of shifting the developers’ focus to the system functionality that improves the users’ experience. The users are paying for our salaries so of cause we should focus on their needs. This requires that developers talk to users and understand their needs, because developers are not domain experts and do not have any clue of the users needs.
Pete McBreen has written a book about the subject called “Software Craftsmanship: The New Imperative“. I haven’t read it, so I can’t tell you if it is any good. Maybe I should read it…