Category Archives: Software Development

Software Craftsmanship Chapter 3 & 4.

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.

From the blog CS@Worcester – Adestin by adestinyblog and used with permission of the author. All other rights reserved by the author.

Sprint 5 Learning Reflection Blog (4/12/17)

I can’t believe this is our last sprint! It went by so fast; it feels as though we are just starting. Overall it was definitely a good learning experience being able to collaborate with a real organization. Our group had a good conversation with our professor about this whole sprint experience with the AMPATH group and it kind of prepares us for what it would be like working for a company in the real world as a full-time job. Over the duration of 2 months we only were able to resolve one issue. By face-value it might sound bad, but we spent the majority of the time trying to understand the language of Angular2 and the framework of how everything operated. If you think about it, my experience with this is pretty similar to what it will be like when working for your first company; most of the time will be getting used to the coding language and the framework. Prepare to be doing that most of the time before you even begin coding anything!

From the blog CS@Worcester – Tan Trieu's Blog by tanminhtrieu and used with permission of the author. All other rights reserved by the author.

Software Craftsman Book Chapter 7 & 8 Blog (4/11/2017)

Although chapter 7 was mostly review of concepts I already learned, I do think it’s important to at least restate the idea of the “boy scout rule” and the “broken windows theory”, which was mentioned in chapter 7 because it’s an important mentality to be aware of. The boy scout rule is to “always leave the campground cleaner than you found it” and the broken windows theory states that “the bigger the mess is, the bigger it will become”.

Something that I did find helpful in chapter 7 however was the idea that we should not follow practices just because someone said so. Like with everything else, we should take all agile practices with a grain of salt because each practice can be extremely efficient in some cases, but rationally useless in other cases so it is ultimately up to us as the developers to know when to use what practice.

Chapter 8 mentions that there are 3 main things that a craftsman should look for in each job; autonomy, mastery, and purpose. I think it is every developer’s goal to find a job that fits these three qualities, because if you did, then you would now be doing something you love to do, rather than doing something because it offers large paychecks.

From the blog CS@Worcester – Tan Trieu's Blog by tanminhtrieu and used with permission of the author. All other rights reserved by the author.

Software Craftsman chapter 1 & 2.

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.

From the blog CS@Worcester – Adestin by adestinyblog and used with permission of the author. All other rights reserved by the author.

Sprint 4

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.

From the blog CS@Worcester – Adestin by adestinyblog and used with permission of the author. All other rights reserved by the author.

Sprint 3 Retrospective

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.

From the blog CS@Worcester – Adestin by adestinyblog and used with permission of the author. All other rights reserved by the author.

The Software Craftsman Chapter 3 & 4 (3/28/17)

Comparing “The Software Craftsman” book to the “Clean Coder” book, there is a good amount of material that overlaps from one book to another. Chapters 3 and 4 introduces the idea of what software craftsmanship is and the attitude behind being successful at it.

The most important and useful piece of information from these two chapters was the idea that “clients don’t pay professionals to learn; use your own time and money to get better at what you do.” We as professionals get paid for the skills we have to offer so it makes sense that it is our responsibility to keep our skills sharp and up-to-date. If not, we slowly start to become irrelevant and people will no longer rely on us because our skills aren’t as sharp as it used to be. If you want to be paid good, then you better have a good skill set to show for; don’t expect a promotion if you have nothing new to offer to your employer. Think about it, why would anyone pay you more money for doing the same amount / quality of work?

From the blog CS@Worcester – Tan Trieu's Blog by tanminhtrieu and used with permission of the author. All other rights reserved by the author.

The Software Craftsman Chapter 1 & 2 (3/7/17 – 3/14/17)

Nowadays every is all about being agile. I’m sure that if we were to look at a scale of how technology has grown within the last decades, the rate of growth is exponential. This is what makes agile so important; the ability to adapt and change with the nature of software projects. In order to effectively be agile, you need to master BOTH the methodologies and the craftsmanship. To me, this chapter was relatable because as of lately, I do feel as though I’ve only been doing one out of the two; which is the methodologies. I would say I have the Scrum methodology followed pretty religiously but yet there is barely any progress because I am missing the craftsmanship. I am not doing enough research and coding to help better deliver the software we are working on and after reading Chapter 2 I truly realize what I have been doing wrong all this time. Even the author said it, “improving the process without improving technical excellence is pointless”, and he’s absolutely right.

From the blog CS@Worcester – Tan Trieu's Blog by tanminhtrieu and used with permission of the author. All other rights reserved by the author.

The Clean Coder chapter 13&14.

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.

From the blog CS@Worcester – Adestin by adestinyblog and used with permission of the author. All other rights reserved by the author.

The Clean Coder chapter 11 & 12

In Chapter 11, Robert Martin talks about pressure and the methods we can follow to handle pressure as software engineers. Being under pressure is something that can either make or break an individual. It is how we handle pressure that defines us as professionals; even in the toughest times a professional must not show signs of distress. Some of the ways that Martin suggests we can manage pressure are avoiding it to began with, not making reckless commitments, and staying clean. Now, I am kind of puzzled that Martin says to avoid pressure because I don’t think anyone purposely tries to put themselves in situations that causes them unmanageable pressure. If we avoided we won’t have to deal with it however, pressure will always find us. These advice are not only applicable to professionals and software engineers, we can also use them in our daily lives to keep manage the distress that derives from being under pressure.

Moreover, Martin talks about collaboration in chapter 12. Collaboration is an essential part of being a software engineer. Most of the programs that engineers works on will always consist of a group of people because there will always be a ton of thing to do. Within that group, there has to be great communication, teamwork, and most important professionalism. Even though at times there will be people that are tough to work with, we have to find a way to strengthen the teamwork. Ultimately, working alone is not always the best choice; when we put our heads together the outcome should be much greater.

From the blog CS@Worcester – Adestin by adestinyblog and used with permission of the author. All other rights reserved by the author.