Category Archives: CS448

Sprint 4 Retrospective

Sprint 4 was, I think, more productive than the previous Sprints. We actually got the NGPOC-184 issue solved. And I am thinking of picking one more issue to work on. So after this semester, hopefully, we as a team would have solved three issues.

The problem I had throughout this and previous sprints is that we are moving at a snail’s pace. The reason for that is we are all new to Angular and some of us are not able to learn Angular fast enough or not able to put in more time. It is very fustrating that we are moving so slowly. One issue in 2 months? Wow!!

From the blog CS448 – The blog about software by Sudarshan 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.

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.

The Software Craftsman: (Chapters 1 & 2)

A huge point that Chapter 1 of The Software Craftsman discusses is what “seniority” is in a company and how it’s measured incorrectly a lot of the time in the workplace.  The chapter states, “There is a huge difference between having 10 years experience, and having 1 year experience repeated 10 times”.  That quote stuck out to me and made me think how true that is.  Just because you have worked somewhere a long time doesn’t mean that you have more knowledge then the person sitting next to you who worked half the time you have at that company.  The other main point this chapter talked about is something that I actually think about all the time. It talked about how developers should be able to keep up with the modern ways of working.  As a developer you need to keep up with the modern tools and equipment.  If you’re doctor was using medicine from 1990, and not upgrading his practices, you would be concerned.  That is how you should think as a software developer!

Chapter 2 discusses what it means to be agile, and how to solve the problems that come along with that with software craftsmanship.  The chapter stresses how you NEED to have a good balance between process-oriented and technical-oriented disciplines and methodologies.  It also talks about how you need to be able to work with your team as a whole.  I agree with this chapter that although being agile can be beenificial, it can also cause a lot of problems.  This is where you need to take your craftsmanship and apply it to help fix those problems.  Becoming more agile in computer science is a “game changer” as the chapter stated.  I now see how being agile in the workplace is very important and can change a lot.  I wish to take this knowledge and hopefully become more agile.

 

 

 

 

 

 

 

 

 

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.

Software Craftsman (Week 8)

This post will revolve around chapters 1 and 2.

Chapter 1 talks about the current status of software development. Now a days, as a programmer, writing code is not all you have to do in the work place. Now one must contribute to the company in many ways. The author also goes on to talk about the situation with seniority among developers. Though they may have more experience, the way they may do something could be so outdated, that a new programmer might be a better fit, because he/she is comfortable with the latest technologies and methods.

Chapter 2 talks about agile development. It begins with the author talking about the methodology of agile development. Companies who adopted this type of method, were back to their old ways, because they did not see the results that they had yearned for. The main reason for this as the author states is that the companies were not committing to the whole transformation. They were only committing partially which entailed in the crap code that were produced.

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

Sprint Review 3

Another sprint review in the books and it’s safe to say that our vision for our end goal of completing a module for the OpenMRS project is much more clear.

During this sprint, we have made contact with some of the people leading the project and they were kind enough to give us a list of issues that they would like for us to fix. The issues were located in the AMPATH Jira group and we got to select an issue to fix. Along with selecting an issue, we were also given a test server that we could use to incorporate our new code.

This sprint was not perfect, but we got through it. The first issue that popped up was with the test server not being loaded properly in the browser. As a team, we found a plugin called “allow control allow origin”, which allowed us to successfully connect to the server. After connecting to the server, we had to review the code given to us. Since the issue was given to us near the end of the sprint, we were unable to complete a module for it.

I look forward to the next sprint and I believe that our team is doing very well.

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

The Clean Coder (Week 7)

This blog post will revolve around chapters 13 and 14.

Chapter 13 talks about teams, projects and how it’s important to work as a team in order to accomplish a goal. The author believes that a “gelled” team is very valuable. According to the author, a gel team consists of each team member knowing the strengths and weaknesses of every member on the team. The gel team goes by a very common expression that goes like “Theres no I in team”. I think that a gel team is very important, because it makes you become aware of everyone’s weaknesses and strengths when tackling on a project. I see this as a good thing, because it will allow the team to collaborate and explain things which will lead into everyone being on the same page.

The final chapter talks about how just because you have a CS Degree, doesn’t make you qualified for the real world. Though an education at a university may teach you the basics and theories in programing, but it will never prepare you to what the real world actual has in store for you. He then talks about how having a mentor is critical to molding one into a good developer. I believe with this, because programming is not a very easy task, If one does not seek help, then he/she is not fulfilling their full potential.

 

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 (Chapter 1 & 2)

I am really excited that I am starting with a new book this week. The first chapter of this book is about what it means to be a software developer in the 21st century. I found it really funny when Sandro (the author) says that back in the 1990s if you wrote code that nobody understood, you were considered a senior developer. Wow! I wish that was still true today. I can easily write code that nobody understands; I even wrote a program that even I don’t understand when I look back at it today!

According to the author, seniority is relative. Having ten years of experience is not the same thing as having one year of experience repeated ten times.

To be a developer in the 21st century means that you must be proficient in many different technologies, wear many hats and be active in all phases of software development.

The second chapter of this book is about Agile. What is Agile? Agile is a combination of methodologies and techniques that can help teams and companies adapt to the changing nature of software projects and also reduce the risk associated with them. There are four goals of Agile which are summarized in the Agile manifesto and twelve principles behind the agile manifesto.

Of the twelve, I think the second principle is the most important: welcome changing requirements, even late in development. This principle I think is why we use Agile and is the most useful. In the traditional waterfall approach to software development, all of the requirements are gathered and the system is designed based on the requirements before any implementation or testing is done. And so if there are any new requirements, it is very hard to incorporate them into the existing design and would usually cost more time and money. All of these are avoided in the Agile approach to development; since the build software iteratively over small periods, we are able to catch any mistakes early on or incorporate new requirements easily.

The rest of the chapter goes on to explain why Agile has not worked at certain companies.

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