Splitting into teams proved to be a wise decision on our part. We are able to tackle three problems at once, and although my pair’s problem isn’t ready for a push yet, we have made much progress. My specific problem involves letting the user know if their contact information saved correctly upon clicking the save feature. We were able to locate the save feature in the code, and adding a basic browser alert window was pretty simple however we decided it did not fit well with the structure of the website. We are now attempting to recreate the small module that the contact information appears in, in order to have our save message display as well. Overall we believe it will fit much better with the flow and look of the site. We are heading into our final full sprint on top of finals and papers piling up, but we are determined to finish the bugs we have assigned to us.
Heroes, Goodwill and Professionalism:
This chapter consists of several personal stories that leads to the idea for the need to learn how to say “no”. Do not push yourself past your limit. Always saying no is not professional however there’s a happy medium where you will not overdo yourself.
Working software is not the end point. It’s the constant fight against the threats that you can not see. The chapter covers a common Agile anti-pattern, the Unit Test task card, and explains why it is a bad practice. Also goes on to define legacy code. Legacy code is essentially code that gets inherited by a team or programmer from somewhere else (external or internal). Almost every company has legacy code to an extent and there has a to be a professional attitude around that idea to deal with it.
Sprint 4 was partially overrun by spring break causing a lack of progress. However, our team was able to fix our problem and make our first push. That push was sadly not accepted because the problem has been updated with some new information. The team is back to the drawing board to find the prime location for this button before we make our next push. On top of that we picked up two more problems to tackle this sprint. I believe we are going to split into pairs to be more efficient with our time. On a different note, our team’s attendance significantly improved leading to a better review sheet at the end of the sprint. We are definitely progressing as a team.
“Software Craftsmanship is about professionalism in software development”. It is about an approach to software development that puts emphasis on the coding skills of the software developers themselves. He speaks about Software Craftsmanship Manifesto where one not only creates working software or not only responds to change yet creates well-crafted software and constantly adds value.
The Software Craftsmanship Attitude:
This chapter stresses the importance of continual learning and self development. An individual has to take it upon themselves partially to progress towards bettering themselves. Coders can’t rely on employers to teach them everything.
Software Development Nowadays:
Seniority is software development has no correlation to one’s skill set. The number of years one has worked is a poor indication of their ability to write code. “There is a huge difference between having ten years of experience and having one year of experience repeated ten times.” The need to explore different technologies and project is vital in this field. The industry is adapting towards needing more flexible coders.
After the author goes over the principles of Agile manifesto, he says the statement “Many Agile projects are now, steadily and iteratively, producing crap code.” Roles became reversed, and everything was a mess working in an agile environment. It has been a partial transformation in his words–or a transformation of the process but not of the technical practices. Software Craftsmanship is not meant to replace agile but to assist it.
During Sprint 3 we were able to complete our small tasks, but upon approaching our first bug we ran into a problem where we could not locate the button. The problem description was not very descriptive and contains no images of the said button. There was a section with forms on the site that we were assuming contain the button (due to the name of the button having ‘form’ in it), however none of the forms would load on any of our computers or servers. We reached out to the product owner and received a response toward the end of the sprint where he provided a new server. With this new server we were able to load a form which corresponded with us finally being able to find the button. Using debugging tools in the browser we can easily find the code name of the button and the container allowing us to easily find the section of the code that we need to change. Sadly because of the delayed response and how much in class time we have we are going to have to push this item onto the next sprint.
Teams and Projects:
Teamwork doesn’t happen nor flow instantaneously. Teams need time to adapt to each other and learn to work and flourish as a group. Therefore breaking up a team for projects is a terrible idea. This idea was very fitting because our group started off working very poorly together–or more so we just didn’t collaborate. Over time we are beginning to adapt and be more vocal.
Mentoring, Apprenticeship, and Craftsmanship:
New programmers need mentoring. Like any other field, becoming a specialist most of the time takes years. Given the impact of software on our lives, this is crucial. There is no responsibility for elders to teach the young causing a missing puzzle piece in programming. It’s producing a lack of role models.