Chapter 13 covers the topic of teams and projects. The author talks about two different approaches with projects. The first approach is that a team is selected for a specific project. Usually these people who are selected are also working on several other projects and they are not familiar with each other’s work habits. This type of team usually works slow and is not the most effective in completing a project. The second approach is to select a team that highlights all the necessary skills and keep them together for as many projects as possible. Over time this team will start to “gel” as the author calls it and will become extremely efficient at working together. The only down side that is mentioned is relative to the project owner. The project owner lacks some security in relying on their team’s resources because the team can make a short term allocation of all their effort to another project in an emergency. In conclusion the main lesson here is to form a good team and move through projects together, getting better after each one.
After reading chapter 13 I definitely think the approach of forming a team and keeping them together makes the most sense. By working with the same individuals you can build relationships and form a reliable team that can get projects completed. Unfortunately, as a junior developer I will have little influence on how a company or department approaches their projects. I will however keep this team approach in mind for project decisions when I am more senior. I think it’s important to note that sometimes a team may need to change some of the members intentionally. Maybe one person isn’t working well with others or maybe you need to add a member with a special skill. Keeping a team together is important but I think there should be an overall assessment after each project to make sure improvements are being made when possible.
Chapter 14 covers the topics of mentoring, apprenticeship, and craftsmanship. The author first talks about the different forms mentoring can take. It could be a programming manual, observing a teacher, or really anything that pushes you in the direction of improving your knowledge. He then makes a point that in programming recent graduates often get thrown on to teams without a true training phase like most other professions. He talks about a hypothetical hierarchy of master programmers, journeyman, and apprentices. As a programmer gains experience they shed some of their technical supervision and gain responsibilities including mentoring those junior to them. This chain reaction of elders teaching the young is what leads to programmers becoming true craftsmen and professionals. When junior programmers have good role models they become those role models over time.
After reading chapter 14 it’s clear that proper mentoring is necessary to grow into a craftsmen programmer. I don’t think the author places enough responsibility on the junior programmers though. As a young programmer it’s important to recognize the proper role model and seek mentorship from the more senior programmers who are doing things right. While mentors should reach out to the junior programmers it’s still important to take charge of your own path. Entering the software development field, I’d like to think I will have good mentors that will help guide me in the right direction as I move through my career. If I find that I lack the proper mentors, I will do my best to seek out the professionals I will need to one day become a mentor for those junior to me.

From the blog CS@Worcester – Software Development Blog by dcafferky and used with permission of the author. All other rights reserved by the author.