Monthly Archives: March 2017

Retrospective Sprint 4

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.

From the blog CS@Worcester – Kyle Polewaczyk by kpolewaczyk and used with permission of the author. All other rights reserved by the author.

Software Craftsman 3+4 Week 9

Software Craftsmanship: 

“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.

From the blog CS@Worcester – Kyle Polewaczyk by kpolewaczyk and used with permission of the author. All other rights reserved by the author.

Sprint 4: Reflections on Learning & Work Products

Sprint 4 of the semester got cut a little short because of spring break.  While I was in Cancun I can honestly say I was not too focused on the project.  Before the break, we were assigned our first issue, but none of us were able to reproduce the bug.  A few of my team members reached out to the AMPATH developers and we were able to get assigned a new issue.  We actually all had to take a step back and re-fork our whole project due to it being out of date.  When I did that, something got messed up because I currently cannot get the test server to go online.  I plan to get my personal issue resolved with the server within a few days.  Our new issue seems pretty simple and straight forward.  I look forward to working with my team to start fixing more and more actual issues with the system.  Hopefully this sprint will be much more productive because we will have a full sprint with no interruptions.

From the blog CS@Worcester – Alex's Comp Sci Blog by alexsblog13 and used with permission of the author. All other rights reserved by the author.

The Software Craftsman: Chapters 3 & 4

Chapter 3 of The Software Craftsman started off by discussing what exactly software craftsmanship is.  It gave the definition of software craftsmanship from a view different points of views such as; wikipedia, the authors personal definition, and a shorter more clean cut definition.  The chapter talked about how it is all about being professional when developing software which is something we have already previously learned in this class.  An interesting thing that this chapter discussed that I haven’t seen too much in previous chapters of this book or even in the whole Clean Coder book, was the history.  It gave in-depth information of the software craftsmanship movement and all the history you could possibly know behind it.  It was interesting to me to learn about historical details on where exactly this idea of software craftsmanship stemmed from.  Finally, the chapter covered the software craftsmanship manifesto.  The manifesto consisted of 4 major points:

  1. Not only working software, but also well-crafted software.
  2. Not only responding to change, but also steadily adding value.
  3. Not only individuals and interactions, but also a community of professionals.
  4. Not only customer collaboration, but also productive partnerships.

My favorite of the four was, number 1, “Not only working software, but also well-crafted software”.  This a very important point that every software developer needs to be aware of.  Just because a program may work, doesn’t mean it is crafted the way it should be.

Chapter 4  was about the attitude that a software craftsman should always have.  The chapter went through and mainly gave tips on how to improve yourself as a software craftsman.  Some of the advice that I personally took a lot from is always keeping our self up to date, practicing and balancing your work and personal life.  The topics of keeping yourself up to date and practicing are two things that I have seen a lot throughout this course.  It is clear that these two things are extremely important to any professional, but especially one dealing with technology.  Technology is advancing everyday and it is each individuals responsibility to keep up with it throughout their career.  Work-life balance is something that nearly everyone has to deal with at some point.  It is crucial for me as a soon-to-be software developer to start practicing different techniques to find the best work-life balance that works for me.  This chapter mentions a technique called the Pomodoro Technique.  This technique basically says that you should separate your work into 25 minute intervals.  It is proven that working in small intervals can maximize your creativity.  I am willing to give this technique a shot, even though I am not too confident it will work well for me.  I tend to be able to focus for a long period of time when I get into a groove.  If I was forced to stop myself when 25 minutes is up, it may set me back.  However, it can’t hurt to try.  Who knows I may find out that this is perfect for me.

From the blog CS@Worcester – Alex's Comp Sci Blog by alexsblog13 and used with permission of the author. All other rights reserved by the author.

Sprint 4: Reflection FanstasticFive

Our team continued working on NGPOC-184 issue. We changed up how the team should pick and solve issues.

Throughout Sprint4, I spent most of my time researching and trying to solve NGPOC-184 issue. I also tried to help one of the team member to connect to AMPATH test2 server. I received very helpful and informative links from Sudarshan regarding NGPOC-184 issue, but I still couldn’t come up with a solution for the issue. Although, Sudarshan was successful in solving the issue by himself with the help of AMPATH developer.

To increase our contribution to the AMPATH project, as a team, we decided to pick individual issues and try to solve it individually or with the help of chosen team members. Since Sudarshan contributed immensely to NGPOC-184 issue, he kept working on that issue. We tried looking for other issues, but they were all assigned. Couple days before Sprint4 ended, Dr. Wurst was waiting on get more issues from AMPATH team. Tan picked APTS-225 and is willing to let me work with him on this issue.

Sprint4 went by very quickly. We had small change of plans towards the end of the sprint, but everything else went great.

From the blog Software Learning and Development – Haider Hussain by hhussainsite and used with permission of the author. All other rights reserved by the author.

Sprint 3: Reflection FanstasticFive

During Sprint3 I kept learning more and more about Angular2 because I still don’t have strong hold on the language. I got couple of tasks done successfully: I accepted invitation from Jira and successfully connected to AMPATH test2 server. Our group also picked NGPOC-184 issue, started researching and tried to solve it.

I watched couple of videos on Angular2 which extended my knowledge on Angualr2. I also started looking at the ng2-amrs code and tried to understand and navigate through the code. I spent most of the time on learning about Angular2 and navigating through the existing code. Our team started working on NGPOC-184 issue. We spent some time on figuring out when, where and how to approach the issue.  Sudarshan found an informative blog that pushed us to the right direction.

I do not know if it was the issue or it is just our team, but we still need to work on our communication. Most of the NGPOC-184 issue was handled by Sudarshan. The rest of team members spent most of the time on researching and trying to help. I remember Sudarshan saying that this issue is a one-man issue. So, it might have been the issue, but I’m looking forward to more collaboration with my team members.

From the blog Software Learning and Development – Haider Hussain by hhussainsite and used with permission of the author. All other rights reserved by the author.

The Software Craftsman: Chapters 3 & 4

Chapter 3 of The Software Craftsman is spent defining what is a Software Craftsman. The earlier parts of the chapter are spent on talking about the history of Software Craftsmanship, that is all very interesting but I’d like to discuss the Software Craftsmanship manifesto.

Not only working software, but also well-crafted software

Not only responding to change, but also steadily adding value

Not only individuals and interactions but, also a community of professionals

Not only customer collaboration, but also productive partnerships

So, lets take a look at this line-by-line. The first line states “Not only working software, but also well-crafted software”. I think we can all agree as some form of software developer this is the best thing to strive for. The question then becomes, how do we get here? Sandro makes a statement that is truly interesting. After describing what any good developer would know to be truly well-crafted software, Sandro states “In order to evolve applications, developers must not shy away from changing them.”. This statement is so intriguing to me because it simply makes sense. You can’t have evolution without change, and you want your software to evolve to “well-crafted”, right? Well in order to do that, you’re going to have to make changes to the code, sometimes that may be big. Other times it may be small.

The next line says we should be steadily adding value to the project. This is again something that no one can refute as a good thing. However, I think as developers, we many times find it hard to “Leave it cleaner than we found it”. As you are reading this I can almost guarantee that you are thinking back to a time where you made a bug fix, but that bug fix made things just a little bit messy. I am sure whatever reason you had for putting in that bug fix messy like that was valid. However, this starts becoming an issue when everybody working on the project adds some messy code here and there. Eventually the system becomes maintainable and it’s an unfortunate side-effect to us being humans. However, as software craftsmen we need to strive to not get caught in this net and constantly clean up the code.

The next line says we need to be a community of professionals. I really like this piece. I’ve worked with people on both ends of the spectrum (not in the software field). On one end there are people out there who will give you the bare-bones, need-to-know information to get the job done. I am unsure as to why anybody would want to do this. Flip the coin and I’ve worked with people who are delighted to share their knowledge and understanding of the given subject matter. I think mentor-ship is incredibly important. If no one ever mentored a young developer and didn’t pass down the knowledge that’s been attained over their long career, then the young developer is going to fall into all the same pitfalls that has plagued software development for years.

This final line in the manifesto, is essentially stating: In order to succeed you will need to act as a professional. It also talks about the flip side of your manager needing to act as a professional and expect you to act as a professional. We should want to strive to produce the best possible products we can and in doing just that, I think a lot of the time the customers or the employers are more willing to work with you through issues. They are able to see past you as their employee or contractor and begin to see that developing software is a partnership. In order to create good software there needs to be professionalism on both sides of the coin.

 

 

Chapter 4 talked about attitude of the software craftsmen. More so the chapter discussed our attitude towards pursuit of knowledge. The pursuit of knowledge should be a personal burden and not a burden you try and place of your employer. It is your sole responsibility to continuously improve skills and knowledge as a craftsman.

Many of the ways to improve this were discussed in an earlier blog covering “The Clean Coder” book. I won’t re-hash something I’ve already discussed. But as a brief summary, some good ways to extend your knowledge is through books, blogs, podcasts, training events, seminars, meetups and coding challenges.

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

Sprint 4 (3/9/17 – 3/28/17) Learning Reflection Blog

We are almost done with resolving our first issue as a part of the AMPATH team. Spring break was during the ending half of this Sprint so not much work was done during the break. Although the overall progression is pretty slow, it’s moving along at a decent (decent for an amateur scrum team) pace so I’m not complaining. Besides the first issue that we are close to completing, I started looking at another reasonably do-able issue from the Sprint Backlog so I am excited to start working on that issue once the next Sprint cycle begins. We don’t really have much to show for considering we haven’t completely “resolved” any issues yet and it’s been about three months already but it’s better than nothing. Like they say, slowly but surely!

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 Craftsmanship (Week 8)

This blog post will revolve around chapters 3 and 4.

Chapter 3 starts of with a more in depth explanation of what the title of the book means (The Software Craftsmanship). In the book, the author gave his take on what being a software craftsman is.

 Software craftsmanship is a long journey to mastery. It’s a mindset where software developers choose to be responsible for their own careers, constantly learning new tools and techniques and constantly bettering themselves. It is about putting responsibility, professionalism, pragmatism, and pride back into software development.

I like the part where the author had stated that a a software developer chooses to be responsible for their own careers. I believe that if you want to be a good developer, one should constantly be learning and keeping up with the trends and technologies.

Chapter 4 talks about what kind of attitude a software craftsman should have. One of the most important thing in this field is to be responsible. You as a developer must keep your self up to date with technology trends in order to stay relevant. The author then goes on to give us some tips on how we can keep up with the trends.

  • Reading books, blogs, technical websites
  • Keeping a blog to document and track progress

The last thing that the author talks about in this chapter is about time management. As we grow older, we find that time is not on our side. The author reminds us that there is always time to practice. We just have to limit our time with certain activities.

 

From the blog CS@Worcester – My Blog by justcodeit94 and used with permission of the author. All other rights reserved by the author.

The Software Craftsman (Chapters 3 & 4)

Chapter 3 of the Software Craftsman book answers the question: what is a software craftsman? The book gives many definitions; the two that I like are:

  1. Software craftsmanship is a long journey to mastery. It’s a mindset where software developers choose to be responsible for their own careers, constantly learning new tools and techniques and constantly bettering themselves. It is about putting responsibility, professionalism, pragmatism, and pride back into software development.
  2. Software Craftsmanship is about professionalism in software development.

The rest of the chapter is about the history of software craftsmanship and the software craftsmanship manifesto. The manifesto is sort of like a guideline of what software craftsmen ought to do.

  1. Not only working software, but also well-crafted software.
  2. Not only responding to change, but also steadily adding value.
  3. Not only individuals and interactions, but also a community of professionals.
  4. Not only customer collaboration, but also productive partnerships.

Chapter 4 is about the attitude a software craftsman must have. Our careers are in our hands not in our employer’s hands. It is our duty to improve ourselves. I totally agree with this statement. I personally have access to O’Reily Safari Books and it a really good resource. There are many good video courses and live training courses. I signed up for the Design Patterns Boot Camp course that starts this Wednesday and I also watched Uncle Bob’s SOLID principles videos on his website. When I enter the professional world I plan to attend more live training courses.

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