Author Archives: tanminhtrieu

The Software Craftsman Chapter 1 & 2 (3/7/17 – 3/14/17)

Nowadays every is all about being agile. I’m sure that if we were to look at a scale of how technology has grown within the last decades, the rate of growth is exponential. This is what makes agile so important; the ability to adapt and change with the nature of software projects. In order to effectively be agile, you need to master BOTH the methodologies and the craftsmanship. To me, this chapter was relatable because as of lately, I do feel as though I’ve only been doing one out of the two; which is the methodologies. I would say I have the Scrum methodology followed pretty religiously but yet there is barely any progress because I am missing the craftsmanship. I am not doing enough research and coding to help better deliver the software we are working on and after reading Chapter 2 I truly realize what I have been doing wrong all this time. Even the author said it, “improving the process without improving technical excellence is pointless”, and he’s absolutely right.

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.

Sprint 3 (2/23/17 – 3/7/17) Learning Reflection Blog

To be honest, out of the 3 sprints that we have already gone through, this sprint was probably the most unproductive. It might have something to do with the fact that this last sprint only consisted of about one user story; which was fixing the NGPOC-184 issue but nonetheless, it just didn’t feel as though anyone in our group (sadly, me included) made any progress. I think this might be because the class in general is too loose. We have to do check-ups on Scrum every other day but besides that, there is nothing forcing us to do the work. We could be saying we are doing something but there is no way of enforcing or checking that. For me personally I need to spend more time and focus on learning Angular 2 because its discouraging when I look at the code because it doesn’t all make sense to me.

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 Clean Coder Chapters 13 & 14 (2/28/17 – 3/7/17)

I can’t believe the book is finally done! I was kind of disappointed to know that there are no more chapters left in the Clean Coder book. I enjoyed reading it. For the most part, the last two chapters weren’t as “exciting” but there were a good amount of key values that I agree with in those chapters. One of the most important concepts I really want to emphasize is the idea that it is the responsibility of the masters and journeymen to teach the newer apprentices the correct ideologies and give them the experience they need to grow. That is the only way good software practice will survive; its if it is being correctly passed down from generation to generation. So in summary, what you learn in school and what you find in the real world are two completely different things and you need the right experience and mentor-ship to guide you through it

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 Clean Coder Chapter 11 & 12 (2/21/17 – 2/28/17)

Have you ever heard of the term “working under pressure” and how some people say they work better and faster under pressure and stress?  As weird as it sounds, I believe that life is more fun with pressure. It makes the objective much more worth-while and you appreciate it a lot more when it is over and done with. However, on the opposite side of the spectrum, there are a handful of those who “crack under pressure” instead. I can’t speak for all professions but if you are a programmer; that is one thing you can’t do. Although I am not a full-time professional (YET!), I can certainly testify to that and after reading chapter 11 of the Clean Coder book, I’m sure the book can also testify to that as well!

If you feel as though you’ve never experienced “real pressure” before, just pick a decently lengthy assignment and don’t start on it until 30 minutes before its due and see if you can resist the urge to not quit and not go to a corner and cry (hahaha). Hey, its not the same as real professional pressure that you will get from work but its pretty close!

Chapter 12 of the Clean Coder book talks about collaborating and when it comes to that, it is not an option. I could go on forever about times when I was stuck on software code and had to ask others to help me solve it. Good software requires good programmers (notice the “s” at the end of programmer). So let go of your pride and ego and collaborate more!

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.

Sprint 2 (2/7 – 2/21) Learning Reflection Blog

That was such a long sprint! Our Scrum team had our Retrospective today because it was the end of our second sprint and for the most part, I think we are really starting to get the hang of the whole Scrum framework when it comes to keeping up with our daily scrum and task board. There are of course some minor improvements that could be made like the level of communication but I think that will get better in time as we start to get used to how Scrum works.

To be honest, learning a language on your own is hard! Even though we did the tutorial on Angular 2, I still have no idea what I am doing half of the time. It takes me about half an hour to dissect 1 line of code in the authentication module of the ng2-amrs. It’s actually kind of depressing if I think about it…However I think it will get better and I just need to commit more time to learning the basic framework of Angular 2 so that I can apply it to the module we will be creating later on. I tried finding other sample tutorial programs like the Tour of Heroes one so I can try to get a better understanding of the language but there hasn’t been any helpful ones. Maybe books might help…

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 Clean Coder Chapter 9 & 10 (2/14 – 2/21)

Tomatoes, tomatoes, tomatoes! That is literally all I will be doing now (The Pomodoro Technique). Chapter 9 goes into great depth about time management and the different ways of professionally managing your valuable hours and even though I am already efficient at time management (at least I would like to think so, haha) the contents of this chapter was more than helpful! As someone who likes to play role-playing games in my spare time, I love the comparison about “focus-mana” and I find it to be so true! I can recall countless times when I tried to bang out a programming assignment in one night and fall short because I ran out of focus-mana and the code eventually just looked like a blob of random words.

Chapter 10 was about estimations and up until now, I had no idea how to make estimations when it comes to user stories as a part of the Scrum agile model. Of course, I knew how to make estimations as just a number but I didn’t know how to give clear-cut precise estimations that business owners could use as part of their planning. I am still confused about some of the estimation methods because of how much mathematical calculations are used in it but that is probably something that you get better at through practice and experience.

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.

Week 4 (2/7 – 2/13) Clean Coder Ch. 7 & 8

When I decided that I wanted to become a programmer, I thought it would be 99% program code and 1% test code. I thought I could mindlessly write as much code as I wanted and just know if it works or not by running it. I was wrong. Completely wrong. After having more insight into being a software developer, I realize now that testing is so under-rated and overlooked. After reading chapters 7 and 8, this concept is reinforced even more.

If you really think about it, its quite simple. You want your program to work and the only way to know if it correctly works or not is to test it. This is where acceptance testing comes into play to tell you when a requirement is done and that is obviously important because if you don’t know the requirements then how would you even know what to test?

Chapter 8 was somewhat broad since it covers a big array of topics regarding which tests to use depending on which level of the system you are working on but nonetheless it was good review. It’s always good to review testing strategies because at the end of the day, your program is only as good as your tests are. 

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.

Week 3 (1/31 – 2/6) The Clean Coder Ch.5 & 6

YES!!! Chapter 5 and 6 of the Clean Coder book is probably the best chapters of this book so far. You do not understand how frustrated I have been in the past when I try to practice and brush up on my coding skills. I would occasionally Google programming problems to solve to keep my programming skills sharp but it gets annoying sometimes because most of the problems require simple one file solutions and I just feel as though I am getting nothing out of the practice. I have never heard of a “kata” before so when I looked up the links that was provided in Chapter 6, I was amazed! I feel as though I have been looking for something like this forever but never found it. What’s great about katas is that it is more like a walk-through instead of a straight programming problem where it is up to you to figure out the solution. I love the concept of a walk-through much better because in a sense, that’s like having a programming tutor help you solve problems. And this way, there’s a clean cut way of knowing if what you are doing is even correct or not!

I do admit, when it comes to practicing, I am among the vast amount of programmers out there who do not take it as seriously as we should. BUT, now that I know what a kata is and how effective they are, I am totally going to invest more time in practicing!!

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.

Week 3 (1/31 – 2/6) Learning Reflection Blog

There wasn’t much activity going on this week since our first sprint was over and now we are just waiting for the second sprint to start. I was not in class during the last sprint review and retrospective due to my absence to a religious holiday but from what I have experienced with my group thus far, everything is going fairly smooth. I can’t really say much about the actual lack of work during this first sprint because we are still getting started with everything but I know that future sprints will be far more work-heavy once we start to dive into our portion of the OpenMRS project. For the actual individuals within our group, I think we have a pretty diverse group of students in the sense that there are a lot of different personalities and programming styles so that will definitely come in handy in thinking of creative ways to solve problems.

This next sprint is when we start working on some real programming so I’m really excited for that and I can’t wait for the next sprint review and retrospective because since I wasn’t able to attend the last one, I’m interested to see what its actually like.

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.

Yes; but sometimes, maybe. (Clean Coder Week 2: Ch 3 & 4

The previous chapters in the Clean Coder book talked about professionalism and saying no. This week, the book zooms in how “saying yes” and coding principles that might be useful to follow. Before going into the chapters, something I’ve realized that I hate but also love about this book is the fact that is partially opinionated. What I mean by that is, for example, in chapter 3 the author talks about the different situations and scenarios in which you would say yes and really mean it and other situations where you might not want to say yes because you know you might not be committed to it. In this case, its pretty much straight facts in the sense that the chapter only talks about saying yes and the commitment that comes with it. There’s not really anything that is up for debate. On the contrary, in chapter 4 the author talks about coding principles that he believes one should follow to become a better professional and to write good-clean code. However, in this chapter it is more opinionated because not everything he talks about is applicable to all programmers. There are some tips that he gives that may work for one programmer but may not work for other programmers.

Going back to my original thought; the reason why I hate and love this style of book is because even though it provides facts, there are also times where you as a reader have to determine for yourself if what he is saying is applicable to your style of programming so its not just another book that is just a computer science textbook, its somewhat like a conversation where sometimes you agree and sometimes you disagree.

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.