Chapter 3 of this book really translate what software craftsmanship is. It gave us a number of definitions including one from Wikipedia. Each definition shows a different perspective and what stuck out to the most was looking at software craftsmanship on a personal level. The book defines this as
a mindset where software developers choose to be responsible for their own careers, constantly learning new tools and techniques and constantly bettering themselves.
I see this being the most constructive definition or how software craftsmanship should be defined. If we have this mindset then everything else like team work and professionalism should fall right into place. This also extends into chapter 4 because its about attitude and how software developers should represent themselves. No matter how much we rely on the workforce to gain experience, we have to realize that were in charge of our own careers and our advancement within it.
The first chapter of software craftsman talks about how different being a software engineer is today. Knowing how to code is not sufficient to be considered a craftsman, we need to have the knowledge to aid a company in other areas as well. I can see how this is important because in the workforce we have to prove ourselves to be an asset to the company we work for. It is not just about mastering our craft, it is also about showing that we are flexible enough to learn new things and adapt to changes . Like the book explains having experience in one area is not always the best route. Someone with less experience in the field maybe more knowledgeable in more areas. Chapter 2 Talks about the agile transformation which embraces processes and tools such as Scum and other methods. My experience with scrum has only been in my classes. But i can see how practicing scrum and other tools alike really contribute to the Agile Manifesto.
Coming back from spring break not much was done on my end regarding issue 184. However, our team have decided that each member should pick there own issue to solve. After I’ve updated the module from the team’s repository, i came across an issue and couldn’t connect to the server. Because of that, i spent some time trying reconnect to the server. I received help from Haider who was familiar with this problem.
During this sprint i spent most of my time navigating through the ng2 module to get a strong understanding of it. Our team spent time solving issue NGPOC-184 and unfortunately we did not finish on time for the sprint. For me personally, i need to get a better understanding of Angular 2 to actually contribute significantly. Since this is a senior level course, we are given a lot of freedom with the expectation that we would be responsible enough to learn, communicate, and produce meaningful results within our groups. However, that is not the outcome of our team as a whole. We are about halfway through the semester and it’s not to late to pick up some of the slack.
We have reached the final chapters of the book. The last two chapters talks about teams, projects, mentoring, apprenticeship, and craftsmanship. Even though these two chapters are very brief, there are a lot of important facts and key points that we can take into our careers.
The first chapter talks about working in teams that will sometime consist of programmers, project managers, analyst, and testers. The book explains a concept called “gel” where each members of the team learn each others weakness, strengths, and quirks. It can take a really long time a team to really gel. I can relate to this because i work in teams all the time during school and we don’t always work effectively during the beginning stages. This why a team working on short projects that requires a portion of your time never really learn how to work with each other efficiently. And this is why it is important to form the team before the project; the collaboration will be much more effective depending on the teams experience with each other.
The last chapter of the book starts with the fact that it easy to wiggle through the system and graduate with a degree in Computer Science. Nowadays, Most of the curriculum doesn’t really prepare students for what they will face in the industry. It is important to have a mentor with years of experience working as a software engineer that can teach us what to value and how to behave. This chapter separate programmers into three categories master, journey, and apprentices/interns. Newly graduates should always start as interns or apprentices. From there they can learn, grow, and gain experience to work on complex projects.