Author Archives: rmurphy12blog

Sprint 3 Reflection

This sprint was the most productive so far. Each member of the team was given access to the AMPATH JIRA site. The AMPATH team uses JIRA to track issues and layout tasks than need to be completed. Now that we have access to the issue tracking system, a member of the AMPATH team picked a list of issues he though the class could handle. The issue we decided to tackle was not an issue with the code but a request by the users to move a button. The process of moving the button started off slow as we could not locate the button in question with in the system. This problem was further complicated by the fact that we could not load the forms on the site. After messaging our main contact at AMPATH we had an idea of what needed to be done but still were having issues locating the button. After some exploring we finally found the button. The button is to return to a form draft, this button is only visible if there is a form that has been open but not submitted. Our initial efforts to find the button were destine to be fruitless as we could not load any of the forms.
I believe the coming sprint will be the the first sprint where we can fully experience the Scrum process and see how the team works together. The past weeks have been good but with only smaller tasks it there was no sense of urgency. Now that we have an issue to work on team members will need to take responsibility of there individual part.

From the blog CS@WSU – :(){ :|: & };: by rmurphy12blog and used with permission of the author. All other rights reserved by the author.

Sprint 2 Reflection

Over the past two weeks our Scrum team has been working through the the sprint backlog. I was able to complete all of the tasks on the first day with the exceptions of rebuilding the login module. The tasks involved installing and setting up OpenMRS as well as AMPATH. The next task was to get the two systems to talk to one another. This task took a little bit of experimentation because the two sites did not want to interact at first. The issue was caused by cross-origin resource sharing. This error is a result of one site request content from a second site. In this case the origin, which consists of the domain as well as the scheme and port number. There were two solutions found, the first involved installing an extension in Google Chrome called Access-Control-Allow-Origin. The second options, the one I am currently using, required a small amount of XML be added to the Tomcat server’s configuration file web.xml with in OpenMRS. By the end of the sprint all these tasks were completed by each member. The one item that was not finished was rebuilding the login module for practice.

Over all I believe the team is working pretty well together. getting the two programs running took some a bit longer than others but with a little help all were successful. I think the team will grow stronger and work better together once we have a list of tasks we can split up. There was not too much motivation for rebuilding the login module because it was already working and there was no ore waiting on it. I look forward to the coming sprint as it looks like there will be some bugs that need fixing.

From the blog CS@WSU – :(){ :|: & };: by rmurphy12blog and used with permission of the author. All other rights reserved by the author.

Week : The Clean Coder, Ch. 7 & 8

Chapters 7 and 8 of The Clean Coder are about testing. Chapter 7 is about acceptance testing and chapter 8 is about testing strategies. Acceptance tests are tests that are written by the developers and end users together. The aim of these tests is to agree upon what it means to be done. The author speaks about defining done. The author “Professional developers have a single definition of done: Done means done.Done means all code written, all tests pass, QA and the stakeholders have accepted. Done.” I personally like this attitude. If a development team is not upfront about what it means to be done it can lead to confusion, an incomplete product, or a missed deadline. When a team member says that the task they were working on is done the other members should be able trust that it is done and does not need to looked over by others. This is a common problem in group assignment in school. A project may be broken up in to individual tasks and on person is responsible for putting the final pieces together and submitting. To often the person responsible for the final submission assembles all the pieces only to find out some of those pieces are really not complete, they then frantically work to finish and submit the project.

In chapter the author makes the statement ” QA should find nothing”. I know, as the author also pointed out, this is an asymptote, there is a reason the company has a QA team. That being said, I like the attitude the statement conveys, developers should take pride in their work and aim to produce good, clean code that is as close to error free as possible. A developer should never say “Don’t worry, QA will catch it.”

From the blog CS@WSU – :(){ :|: & };: by rmurphy12blog and used with permission of the author. All other rights reserved by the author.

Week 3: Reflection

This blog will be a little different this week, as a class we have switch to writing a reflection blog at the end of each Scrum sprint instead of every week. Our first sprint ended last Thursday and we held the sprint review. The overall sprint went well and there was good participation. It was a little different as each task on the backlog was to be completed by each member for themselves. We have though found a way using Trello to handle the tasks that must be completed be all members. We start off with the task in the sprint backlog with all members added to it. When the first person starts the task the copy the task to doing, add their name to the new task, and remove their name from the to sprint backlog card. Each additional member updates what cards they are members of as they work. Once the last person has removed their name from a card it is removed. This process is the same for going from doing to done.

From the blog CS@WSU – :(){ :|: & };: by rmurphy12blog and used with permission of the author. All other rights reserved by the author.

Week 3: The Clean Coder, Ch. 5 &

Chapter five of The Clean Coder overs the method of programming know as test driven development or TDD. As the name implies the the process of writing code is driven by test cases. The idea is as you determine what needs to be coded you write a unit test that will verify a specification is meet, once you have the test written you write the bit of program. As soon as you have written the piece of program you can run the test and almost immediately know if the code works. This test driven process could be taken to an extreme where all the test are written before any production code is even started, this obviously doesn’t make sense. To balance the test code and production code the following three rules should be followed.

“1. You are not allowed to write any production code until you have first written
a failing unit test.

2. You are not allowed to write more of a unit test than is sufficient to fail—and
not compiling is failing.

3. You are not allowed to write more production code that is sufficient to pass
the currently failing unit test.”

TDD has several benefits. One of the biggest is the fact that having a test suite that is up to date allows you to ensure that your latest changes have not broken something in another location. This is especially true if you stick to the three rules from above. The TDD process also means you will end up with very high code coverage which is a great way to ensure you program works as expected.

I have tried using the TDD process several times and find it a little hard to get used to although I know it is something that would be worth using. Many times I start a program and want to sit down and just start writing production code. The biggest pain in this is once I have written a fair amount of code and compile and run it there are often errors that I must go back and find then fix. If I were to follow the TDD strategy issues would be caught right away.

The sixth chapter is all about practice. In the beginning of the chapter the author focus on the history of computing and how far technology has come. It used to take a great deal of time to compile and test code, but now computers are both faster and cheaper. Most developers can afford to practice. This is something I really wish I had more time to do. I would especially like to practice with other languages. Today, most of the code I write is in Java as that is the language the school has chosen to teach object orientated programming with. I have, in the past, written programs in Python, C/C++, Lisp, Prolog, as well as a few others. The problem is without practice I forget the syntax. I can write a simple program in Python and C/C++ but would need to use a lot of references for more advanced programs and in the case of Lisp, Prolog, and Ruby I can’t remember where to even start.

From the blog CS@WSU – :(){ :|: & };: by rmurphy12blog and used with permission of the author. All other rights reserved by the author.

Week 2: Reflections

This past week most of my time was spent on setting up the environment for Angular 2 and starting to use it in small applications. I ran in to a small snag while setting up the environment, after installing nodejs and npm I was getting an issue running the server. This was resolved by installing the package nodejs-legacy. I also spent some time on various tutorials. As a group we did set up a number of tools that we will be using through the semester to organize the scrum team. We are using Slack for most of our communications including daily Scrum meetings as it is not possible to meet. We are using Trello to organize our sprints with a board for the project backlog, the sprint backlog, and the completed tasks. I was also looking in to some Trello power ups that would help with the burn down chart.

My first impressions of Angular 2 were pretty positive. I like the system that is use to run the development web server. It reminds me a lot of Python’s Django. The sever is also nice as it processes the files as you save them. This means you have more freedom when it comes to text editors and IDE’s.

From the blog CS@WSU – :(){ :|: & };: by rmurphy12blog and used with permission of the author. All other rights reserved by the author.

Week 2: The Clean Coder, Ch. 3 & 4

In chapter three of the The Clean Coder, authored by Robert Martin, the focus was on saying yes and meaning it. This chapter is some what of a continuation of the last. It is very easy, when asked to preform a task, to almost reactively say yes. The author stress the fact to consider what is being asked and to only say yes if you will accomplish the task by the deadline. This is important as meeting keeping to you promises will mean others can trust and depend on you. If a person is always saying yes without delivering one will not be able take them at there word. This is where the author start using the phrase “the language of commitment”. With this he means use strong words that will convey your true intention. Use words like will or by in place of words like try, hope, or plan to. By using strong words you will minimize the worry in others, But again, this is only true if you keep to your promises. This chapter continues on the thought in chapter two in the idea that it is okay to say no or something is not possible. It is far better to say no than to say yes only to not complete the task at hand.

Referring to the same situation in my blog last week, I was working at a cabinet making company where one of the employees would always say yes. This habit of saying yes to all the tasks and deadlines meant nobody know what to expect to actually be accomplished. The word yes meant nothing. I also recall many times I was given a task and my response was “I will try to complete it” most of the time I had every intention on completing it but the words I used didn’t show it.

The fourth chapter is where the books starts to focus on coding. The author goes into some areas that are good programing techniques, like per programing, but also covers bad practices such as rushing, programing when tired or warn out, calling code done before it is actually ready to ship. He also talks about “the zone”, this is a state of being highly focused, a type of tunnel vision. In his opinion he thinks this is bad place to be and suggest taking a break or finding a partner to program with if you find your self slip in to the zone. People are different though, some like listening to music or having the television on in the background, personally I like to work without the outside noise. One of the last items covered in the chapter was knowing when to take a break. Sometimes it is good to walk away from the computer and in many cases you will think of a solution while preforming some mundane task.

From the blog CS@WSU – :(){ :|: & };: by rmurphy12blog and used with permission of the author. All other rights reserved by the author.

Week 1: The Clean Coder, Ch. 1&2

From the blog CS@WSU – :(){ :|: & };: by rmurphy12blog and used with permission of the author. All other rights reserved by the author.

Week 1 Reflection

This is the beginning of the software development capstone. We started the semester by forming the scrum teams we will be working in for the remainder of the semester. the class has been divided into 4 Scrum teams each with about 6 members.

 

In these teams we will be working on the open source software OpenMRS. OpenMRS is an open source medical record system that aims to provide developing countries around the world with a reliable tool for use in medical facilities with out the high cost associated with commercial options. We will be concentrating on the AMPATH project.

 

This week most of my time has been spent looking in to Angular 2. Angular 2 is a JavaScript framework maintained by Google. We will be using this throughout the semester as we work on the AMPATH project.

 

I believe this will be a valuable experience. Throughout the past three and a half years, all of the programs we have worked on in school have been very small in size. In contrast, OpenMRS is a much larger and will offer a good opportunity to experience having to jump into a large project, become familiar, and start developing.

From the blog CS@WSU – :(){ :|: & };: by rmurphy12blog and used with permission of the author. All other rights reserved by the author.

Spring 2017 Introduction

This semester I will be continuing to blog. The focus this semester will be my experience working in a SCRUM team. Our team will be working on OpenMRS specifically the AMPATH project. I will also be blogging about the reading I do as a part of the class as well as any topics I find interesting.

From the blog CS@WSU – :(){ :|: & };: by rmurphy12blog and used with permission of the author. All other rights reserved by the author.