The Software Craftsman Chapters 11 and 12

This week I read chapters eleven and twelve of The Software Craftsman by Sandro Mancuso.

Chapter eleven is titled “Interview Anti-patterns”. This chapter continues the interview trend discussing something he refers to as interview anti-patterns. The author talks about all the things that an interviewer should not do when talking about a technical interview. The interesting thing is that every single one of the things that he discusses should not be a part of the technical interview are something i have experienced first hand in technical interviews over the past month. He says that you should not do things such as brainteasers, whiteboard coding, blocking the internet and even using algorithms (unless of course it is a job that requires algorithms in the every day job). Over the past month i have been subject to every one of these types of interviews and i have to say white board coding is my least favorite thing in the entire world.

Chapter twelve is titled “The cost of low morale”. This chapter discusses low morale on development teams and how at times it can destroy a software project. It begins with something called the “agile hangover” this is the idea that after a company has taken in all the agile practices and began to implement them, they are still outputting software in a slow manner. This is due to the fact that they don’t fully adopt the technical part and the coaches do not know how to implement these processes. Basically even though they adopted agile they are still doing the same thing that they were before they adopted it. Software projects need motivated and skilled developers to see them to completion. Motivated developers make more motivated developers, allowing a project to flourish. He talks about something called a nine to five developer, basically someone who only goes to work to get paid and doesn’t care about the company the project or even developing their own skills. These people can kill software projects and are very bad to have on your team. You need software craftsman who actually care to help motivate the other developers to care as well.

From the blog CS@Worcester – Computer Science Journal by jtassone93 and used with permission of the author. All other rights reserved by the author.

Posted in CS-448, CS@Worcester | Comments Off on The Software Craftsman Chapters 11 and 12

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.

Posted in cs-wsu, openMRS | Comments Off on Reflections on Learning and Work Products, Sprint 6

The Software Craftsman Chapters 9 and 10

This week I read chapters nine and ten of The Software Craftsman by Sandro Mancuso.

Chapter nine was titled “Recruitment”. This chapter was mainly aimed at people who would be conducting interviews. Or even people who may be in a position to have an affect on the recruitment process at their company. In that regard the author does a good job of outlining how most companies conduct recruitment is very bad and the reason that they do not find the developers that they are hoping for. He talks about how job descriptions do not help as well,  especially when they say things like five years experience java etc. This is because it really tells you nothing about the developer himself. They suggest doing interviews where you can see how the person thinks and how the person codes in real time. Having a set of questions planned out with static answers is not a good thing because anyone can sit down and memorize a bunch of information. You need to provide the candidate with a problem and watch how they go about solving and coding a solution to that problem, maybe even helping them along the way. This chapter was relevant to me in that it showed me what companies might be looking for in the interview process as well as some of the skills that i may need to develop in order to get better at interviews in the future.

Chapter ten was titled “interviewing Software craftsman”. This chapter was very much a continuation of the previous chapter. The previous chapter did a lot of showing what was wrong with the recruitment process where this chapter provided a great deal of solutions in how to fix that process. This chapter looked at the situation from both the side of the candidate as well as the company that is interviewing. Again this chapter helped me much the same to be more prepared for upcoming interviews, or at least provided me with the right information so that i can attempt to make myself more prepared. There was a great deal of helpful information and the author did an excellent job of outlining what good interview practices are and what companies should really be looking for which will help me become that person.

From the blog CS@Worcester – Computer Science Journal by jtassone93 and used with permission of the author. All other rights reserved by the author.

Posted in CS-448, CS@Worcester | Comments Off on The Software Craftsman Chapters 9 and 10

The Software Craftsman Chapters 7 & 8

This week I read Chapters 7 and 8 in The Software Craftsman by Sandro Mancuso.

Chapter seven is titled “Technical Practices”. This is almost a continuation of the last few chapters where the author discussed how it was not enough to only adopt agile and the procedures that come along with it. There needs to be a balance with those procedures as well as the technical background to be able to implement those procedures well. Something that most people do not do and end up creating more problems for themselves in technical debt like i had discussed in my previous blog posts. Specifically the chapter talks about XP Extreme Programming and the history behind it. Extreme programming has a lot of big names behind it which in my opinion is enough to give it a second look. If people like Robert Martin are endorsing this so vigorously than there must be something to it. XP shortens the feedback loop and provides practices that make agile all it can be with things like Test Driven Development and pair programming. These practices have proved time and time again that they are more than effective however no one will adopt them. Well not no one but in my experience the vast majority of developers barely know what TDD is never mind how to really practice it. He talks about how the lack of these practices could be hard to sell and that is why things like SCRUM are easily pushed down peoples throats. In my opinion XP is a very useful way of programming.

Chapter eight is titled “The Long Road” and it was an amazing chapter. I know i say this a lot so bear with me but this really opened my eyes about my own future and career path. He talks in the beginning about not knowing where we are going, or in other words where we want our career to go. I am in this boat right now as i want a job but i do not really know down the line where i want my career to end up, what technologies i really want to work with or anything else for that matter. The author provides the reader with a number of solutions if this is the boat that you are in, something that i have taken note of. The rest of the chapter then talks about your job as an investment into your career. People often find themselves in a job and then just doing what they need to get the next promotion or advancement and forgetting about what they truly wanted out of their career. Depending on the different points in your lives that  may differ, whether its more time with family, more time on certain technologies ETC. . However it is important to always keep your career in mind and look at your job as an investment into that career and to always keep learning and make sure that your job fits the idea for your future and allows you to still pursue that, otherwise it might be time for a new job.

From the blog CS@Worcester – Computer Science Journal by jtassone93 and used with permission of the author. All other rights reserved by the author.

Posted in CS-448, CS@Worcester | Comments Off on The Software Craftsman Chapters 7 & 8

The Software Craftsman (Chapters 11 & 12)

I found this chapter 11 really interesting and useful. Most of the scenarios that the author describes I have experienced.

The author mentions that before talented developers accept a offer they consider the financial offer, autonomy, mastery, purpose, productive partnership, talented and passionate people, and a good working environment. Of all the factors involved, I think working with talented and passionate people is the most important. I know what it feels like to work with unpassionate people. Working with unpassionate developers is not very productive and can be quite irritating. The only reason that I am a Software Engineer is because I LOVE Computer Science and I LOVE the craft of developing software. It is hard to work with other developers on creating software who do NOT share the same LOVE. You would not grow as a developer if you stick with unpassionate developers.

The author then talks about interview anti-patterns. The following are the interview anti-patterns mentioned in the chapter: don’t be a smart-ass interviewer, don’t use brainteasers, don’t ask questions to which you don’t know the answers, don’t try to make the candidate look like a fool, don’t block the internet, don’t code on a piece of paper, don’t use algorithms, and don’t conduct phone interviews. I have experienced all of these anti-patterns on my interviews for a year now. I would love to share some of my experiences, but unfortunately I don’t think it would be wise to do it.

The most important thing to understand from this chapter is that you as a software engineer are not a slave to your employer.

Chapter 11 is all about how important the morale of a team is. Low morale can destroy a company; and unmotivated people do a lousy job. A company must bring the best out an employee.

From the blog CS448 – The blog about software by Sudarshan and used with permission of the author. All other rights reserved by the author.

Posted in CS448 | Comments Off on The Software Craftsman (Chapters 11 & 12)

The Software Craftsman Chapters 5 & 6

This week I read chapters 5 and 6 in The Software Craftsman by Sandro Mancuso.

Chapter 5 is titled “Heroes, Goodwill, and Professionalism. This chapter reminded me a great deal of the material in Clean Code by Robert Martin. The main point of the chapter was around learning how and when to say no. The author discusses all the negative effects saying yes can have when you know that you will most likely not be able to finish. As a graduating developer this is something that is really important to learn because it will be better for me to say no i cannot complete x task in that amount of time, however i can do Y, instead of saying yes and not being able to stay true to my word. Saying yes is often the easier path but being able to say no and stand by that is very important in this profession. The author talks about instead of saying yes, you can say no and provide the manager with options of how you can both move forward. This is the most professional option to take and ends up being beneficial for  both the developer and the managers.

Chapter 6 is titled “Working Software”. This chapter was also similar to clean code by Robert Martin, and he is making some of the same points that uncle Bob made. This chapter specifically talks about things like technical debt. He tells a story of how when working on a new feature a developer would rather finish the feature quickly and add a lot of work to the technical debt because he isnt implementing it well the first time instead of actually taking the time to fix his mistakes. This is the issue he discusses, how a large number of developers are more concerned with getting things done quickly then making well written code, and this in turn adds a large amount of technical debt that takes much much more time to tackle then just implementing well the first time around. It is much better to take the time the first time around to write tests and well written code then to have to go back and make changes and refactor a large amount of code because it was rushed through the first time.

From the blog CS@Worcester – Computer Science Journal by jtassone93 and used with permission of the author. All other rights reserved by the author.

Posted in CS-448, CS@Worcester | Comments Off on The Software Craftsman Chapters 5 & 6

The Software Craftsman 11 & 12 Week 13

The first section of the reading discusses how you as the interviewer should conduct the interview and what type of questions to ask. This chapter basically tell you what not to do when interviewing a potential employee. This such as don’t ask brain-teasers, don’t ask them to code on paper, don’t block the internet and dont ask questions you don’t know the answer to. Basically you want them to feel like they are in a work environment.

The next chapter is about keeping up the moral in the office. Low moral will cost the company money, developers will not work as well if they’re moral is not high enough. You need to keep you employees happy, you can’t MAKE them happy but you can do your best to keep the office in a general sense of content. You want your employees to have passion for the work that they’re doing and not think of it as “just a job”. A few things you can do is have daily meetings or bringing in developers that are very passionate to help bring out the passion in the other developers.

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

Posted in CS@Worcester, Week 13 | Comments Off on The Software Craftsman 11 & 12 Week 13