Author Archives: clamberthutchinson

The Software Craftsman, Chapters 15 & 16

Chapter 15 goes over why quality code doesn’t have to come with a big price tag. Mancuso discusses that while managers and clients want everything done as cheaply and quickly as possible, they still expect a decent amount of quality to be in the software they are getting. Mancuso explains that coding does not have to suffer from being or poor quality if people stick to simple practices that will continue to help keep the code clean and easy to test. Again, very similar to the last book and previous chapters, he re-iterates the importance of TDD and how much time it saves. He also goes into why it is important to refactor code when and where you can to make sure that it was cleaner than before. I think the best thing in this chapter is the Four Rules of Simple Design; passes all tests, minimizes duplication, maximizes clarity, and has fewer elements. Keeping these rules in mind would greatly help programmers on track for keeping code as clean and simple as possible, and keeps TDD in mind.

Chapter 16 basically just sums up what being a Software Craftsman means and how they look at furthering their careers. A good portion of this chapter is common sense; knowing that being a good developer requires passion, and the urge to want to learn more about the software development field. To that extent, Mancuso goes over how to build your career and how to look at jobs to make sure you are aiming for positions that will help you later down the line. I did find some of the questions that he asked himself before applying to a job useful (again probably later down the line when I’m able to be more picky about where I apply to). I have also come across many people that graduate from this profession and admit that they don’t know what they want to get into. Again Mancuso provides some good, even if obvious, advice on how to ix this issue; simply get out there and talk to people. Overall I think that this book has provided some very useful information from how to stay passionate about your work to some really good advice about help to further your career in the industry. I would definitely recommend this book to anyone thinking about getting into the software development field, or even to someone that may already have some experience in it.

From the blog CS WSU – Techni-Cat by clamberthutchinson and used with permission of the author. All other rights reserved by the author.

The Software Craftsman, Chapters 13 &14

Chapter 13 continues on the topic about how to keep people on your team motivated and interested in the software development field. I think this chapter has to be one of my favorites so far. All of the suggestions that are made about how to keep passion going in a team were interesting to go over, and just reading about them makes me want to give them a try. I think that my favorite idea, out of those suggested, was just switching projects for a few hours. This one is so simple and can be done a once a week, so it shouldn’t interfere with anyone’s work, but it is an easy way for team members to get invested in one another’s projects, and also encourage the learning and use of other softwares/ways of thinking in their own projects.

Chapter 14 mostly focuses on how to deal with different types of people that may end up on your team and how to encourage them to keep up with technical practices. I found that this chapter really just boils down to “know what you are talking about.” If you completely understand what you are trying to change, whether it is implementing TDD or trying to use a new language, the more you know about it the easier it is to explain it to everyone else. However, this doesn’t mean that everyone will except it just from your knowledge allow. Being able to also show your teammates and company how effective your change will be is also very important. In the end, to change the minds of the people that you work with, you want to make sure that you can clearly communicate with them, listen to what they have to say, and present these new changes in a way that will hopefully persuade most of your members to adopting them.

From the blog CS WSU – Techni-Cat by clamberthutchinson and used with permission of the author. All other rights reserved by the author.

The Software Craftsman, Chapters 11 &12

Chapter 11 was mostly for people that are the interviewer at their company. It basically went over what an interviewer should and shouldn’t do to a potential candidate. For example, brainteasers don’t work to attract good developers, and doing anything that makes a potential partner look like a fool will make it so they don’t trust working for you. Again this is a chapter that isn’t helpful to me right now, but the information in this book may be more helpful further down the line in my career.

Chapter 12 talked about how to low morale can kill productivity and passion in developers, and also talked about how to bring passion back into a company. Mancuso talks about how, after awhile, some developers just give up on projects and become lazy because they just see their job (as he put) as “just a job.” This type of thinking definitely becomes an issue because then people are not meeting deadlines and can lead to wasting tons of company money. However, I don’t see an issue with wanting to make sure that you have hobbies and time that are separate from your work life. As long as you maintain a balance between the two it should be fine because I believe that if you fill everyday with the same thing, that will burn you out faster than anything else might. He then goes onto say how to bring back motivation to a low morale team. I like his idea of talking with people at the end of the stand-up meetings about new things they found. This not only gives people the opportunity to discover new posts or websites they have never heard of, but it also brings the team closer together.

From the blog CS WSU – Techni-Cat by clamberthutchinson and used with permission of the author. All other rights reserved by the author.

The Software Craftsman, Chapters 9 & 10

Chapter 9 goes into detail about recruitment for software development jobs and some of the issues with it. Mostly what I took away from this chapter is how to recognize what possible companies and business know what kind of developer they are looking for versus a company that is just looking for anyone who might fit their need. The rest of this chapter seemed to mainly target people that were in the position to hire people, and what their focus should be to make sure they attract and get the best developer that they can. For right now, I didn’t find those parts too useful, but hopefully this knowledge will be useful later on in my career.

Chapter 10 focuses on the interviewing process and what recruiters are looking for in a potential addition to their team. Mancuso list a bunch of useful things to be aware of when going into an interview. Some of the things that I found useful were ask questions about the company and the team, make sure to highlight your achievements as well as point out issues that you’ve dealt with, and make sure to talk about want you want to achieve in your career and how you believe that this position will help you. He also points out different ways to analyze an interview to see what they might be looking for and how they judge new candidates. Mancuso points out that, during an interview, it’s ok to make sure that you are being asked questions that are relevant to the position you want. There were also different ways that an interview could be held, from pair-programming interviews to even having pre-interview coding exercises. Some of these I’ve heard of before, but I thought that this book did a good job of pointing them out and explaining them so that graduates would be aware that they might end up in one of these scenarios. Overall this chapter was extremely useful for people that are just graduating, and I definitely took away some of the things to look out for in interviews (mostly about what to say ad bring up during an interview since I’ve done so few of them).

From the blog CS WSU – Techni-Cat by clamberthutchinson and used with permission of the author. All other rights reserved by the author.

The Software Craftsman, Chapters 7 & 8

Chapter 7 focused on how to make sure use technical practices at your place of work. For example, integrating techniques from TDD and using paired programming to help your team focus on what they are trying to do, while also making sure that less mistakes are made. This chapter also helped with ways to suggest to your team that using these practices will be helpful in the long run, if they are having issues adapting to them now.

Chapter 8 focuses on how to focus on career goals and how to create new opportunities to pursue in the field of computer programming. Mancuso stresses the point that new opportunities won’t just show up when you need them. Instead he says to create them yourself by learning new languages, expanding your network of people, blogging about interesting articles or projects you’re working on, and going to conferences. These are all wonderful suggestions that college graduates should definitely follow while in school and after they leave. Also look at jobs as an investment into what you want to learn because this will help in the long run of finding a job that is stable and secure in a field you want to be in; I found this kind of as an obvious statement since you want to make sure you don’t end up doing something you later dislike. I also agree with Mancuso’s observations of what a job should hold for a person (autonomy, mastery, and purpose) because with out these things than you would fall into the trap of having a boring job which might later lead into you not being able to care about the field your in anymore. This would obviously lead into the possibility of being fired from that job and not being able to find a new one. I think this whole chapter was a pretty useful one since it focused mostly on what a college graduate should know about applying for jobs after classes.

From the blog CS WSU – Techni-Cat by clamberthutchinson and used with permission of the author. All other rights reserved by the author.

Reflections on Learning and Work Products, Sprint 6

With this being our last Sprint of the year, we wanted to try and get our last issue (APTS-254) dealt with – this issue being the one in regards to the Viral Load Pop-up reminder. However, right off the bat, we ran into more problems that we needed clarification on. We were able to get the code for the ETL Rest Server and looked into. Our team was able to find the file in which the reminders where generated, but we were unsure how to go about coding it. The way that the issues was phrased could mean all we needed to do was make a pop-up appear in Angular, but it could also be that we needed to work on the ETL backend. On top of this problem, we also could not get the ETL server to work locally on our computers. This means that we couldn’t see how the reminders and pop-ups worked, so we couldn’t see the issue or troubleshoot our code to fix it.

After coming to these conclusions, our team decided to message AMPATH for more clarification. A day later they got back to us saying that they would make a test2 ETL server that we could work on. However, we were never able to work on this server due to the fact that our Sprint ended before they could get back to us. I think what I’ve learned from this is that clarification should be addressed at the end of the previous Sprint. That way you can go back into your next Sprint with those problems already resolved, and it gives the team the ability to set fresh.

From the blog CS WSU – Techni-Cat by clamberthutchinson and used with permission of the author. All other rights reserved by the author.

The Software Craftsman, Chapters 5 & 6

Chapter 5 of The Software Craftsman has the exact same message as Chapter 2 (about how to say “No”) of The Clean Coder. Basically boils down to make sure you understand what you and your team can handle in terms of projects, and stand up to management if your team cannot handle the task. Also make sure that what you are working on is transparent to, not only, your team, but the managers and business people as well.

Chapter 6 goes on to talk about how developers should be in the habit of writing clean and maintainable code that won’t have to be refactored later. If the code does end up needing to be refactored, the previous developer show have been professional enough to have made unit tests for that piece of code. This way new developers are not scared to break the system since they know that they can easily run some test to find out if the new code works the same (or better) as the old code. The main thing that I got out of this chapter (because most of it is repeated in The Clean Coder) was when he talked about working with legacy code. It feels like an obvious answer, but I never thought of taking a small portion of the code, figuring out what it is suppose to do, and then writing a unit test for it (if it doesn’t have one yet). Doing this will not only make it easier to understand the code, but it will let you clean and refactor the code easily.

From the blog CS WSU – Techni-Cat by clamberthutchinson and used with permission of the author. All other rights reserved by the author.

Reflections on Learning and Work Products, Sprint 5

For Sprint 5, our team decided to split into two groups of three people that would each work on their own issue. During this time we also looked into the other issues that were available to us and what we would be comfortable doing. Sadly for a good chuck of this Sprint I was away, but, due to my teammates keeping me up to date on what was going on via Slack, I was able to do some work while volunteering. I found out that they had chosen to work on the issue labeled APTS-254. The description for the issue was stated to be “User are requesting when a patient switches to 2nd Line the Viral Load Pop-up reminder should not pop until the patient has used the 2nd Line Regimen for 6 months.”

After pulling new changes that were made to the code, I started to look into the code and see if I could recreate the issue. I was unable to figure out anything on my end, so, when our group next met up, we tried to recreate the issue. However, we were not able to find where this “2nd Line” was or how to get a “Viral Load Pop-up reminder”. After that class we decided to ask for more clarification on the issue and steps to re-create it. Near the end of our Sprint, we were told that this issue would be found in the ETL Rest Server. After forking and cloning the repository, I tried to get it to work to re-create the issue, but I ran into some issues while doing that. At the start of the next Sprint, we plan to see if our team can re-create this issue in class and then start looking at the Rest Server code to see if we can identify where the problem is.

From the blog CS WSU – Techni-Cat by clamberthutchinson and used with permission of the author. All other rights reserved by the author.

The Software Craftsman, Chapters 3 & 4

In the third chapter of Mancuso of The Software Craftsman, he goes over what it is to be a software craftsman and the basic manifesto of it. After reading The Clean Coder, a lot of this chapter just felt repetitive. The just repeated what “Uncle Bob” said in the previous book; make sure code is working, but also easy to maintain and predict, make sure code can cater to the clients/industries changing demands, but make sure the code stays clean and is designed for a long lifespan, make sure to help other developers in need to build a better community for everyone, and understand that software development isn’t only about producing code, but understanding who you are making the code for and why they need it. The one thing that I like about this book more than The Clean Coder is Mancuso acknowledges that some companies will only see software developers as assembly workers and sometimes you can’t change their way of doing things. In this case, Mancuso wisely advise that you start looking for another place to work if that is the case.

In chapter 4 of The Software Craftsman, Mancuso goes on the top of “Who should be the one to advance your career?” Just like “Uncle Bob”, Mancuso points out that it is every software developer’s responsibility for them to continuously teach themselves new technologies in their field and not the companies responsibility to train them. As I might have said before when reading the The Clean Coder, I think that it depends on the company you work. If you work for a company that uses proprietary software or coding language, I believe that the company is responsible for making sure their developers get proper training on what they are using or provide material for them to learn about it. However, this does not discount the fact that developers still need to keep up on new concepts or behavioral techniques that they need to develop on their own. What I did like much better then The Clean Coder was that Mancuso delved into some of the different ways software developers could acquire the knowledge they need to keep up to date on their careers. He also took the time to create a small list of where to start acquiring this knowledge, and how to properly view this different ways (ex. types of books vs blogs vs technical websites). After that it goes into what The Clean Coder already stated; make sure to create pet projects for yourself and find “katas” you can do everyday or free period, paired programming/learning from other developers, contributing to open source projects to practice, and he also repeats the same “make time outside of work to work on these things” and the “25 minutes of work/5 minutes of break” technique that Martin spoke about.

From the blog CS WSU – Techni-Cat by clamberthutchinson and used with permission of the author. All other rights reserved by the author.

The Software Craftsman, Chapters 1 & 2

In chapters 1 of The Software Craftsman by Sandro Mancuso, it talks about how developers need to adopt to the changes that are constantly happening in the software field. It states that developers can no longer be only about coding. Instead they need to know about multiple different disciplines and techniques to be successful in the field now-a-days. This is nothing new to me. Lots of companies will not bother to look at your resume if you do not have at least some knowledge of different languages and frameworks, or even if you only have one degree. Also if a developer has no idea what the Agile process is, then they are going to have a hard time in this industry, so most of that part and the next chapter just seemed repetitive to me.

In chapter 2, Mancuso goes over what the Agile process is and how some companies fall into the trap of only transforming their process into a partial Agile process. Again there was nothing really new to this chapter for me. It’s already been driven in how the Agile process works, and how it’s not just making meetings and Sprints shorter, or how to deliver code and receive feedback faster. The other half is making sure that you produce code that is readable and can be easily changed if needed. If other developers are intimidated by the code that you are producing, whether that means that they don’t know how it works or if it’s badly written, then you need to go back and fix the code you are writing right then and there. If you neglect to do this, it means that that piece of code will most likely cause issues down the line because other professionals can not go back and easily change it if there is a issue that pops-up with the section that you’ve written.

From the blog CS WSU – Techni-Cat by clamberthutchinson and used with permission of the author. All other rights reserved by the author.