Monday, January 31, 2011

Extreme Programming Installed Ch 4-6

Reference Information:

Title: Extreme Programming Installed
Authors: Ron Jeffries, Ann Anderson, Chet Hendrickson

Chapter 4: User Stories

Summary:
This chapter is about how to successfully capture customer stories as well as what to do with them.  Customers should write stories down on note cards while making sure to tear the card up and start over without hesitation if there is an issue. Each story should encapsulate about one week of programming work. There should be about 1-2 stories per programmer per month working on the project.

Discussion:
I can see how the constant feedback from the customer would lead to a better product design. I am curious how many programmers in the workforce actually use note cards for customer stories.

Chapter 5: Acceptance Tests

Summary:
This chapter discusses the importance of regular automated acceptance and unit tests. By testing often and rigorously, the number of errors will decrease. The author states that it is the untested parts of a program that are the buggy parts.

Discussion:
The author really seems to be preaching the approach of taking things in small frequent doses. I completely agree with the author on this point. If you try to finish the entire program without unit testing and something goes wrong, it can take forever just to find where the problem is.  

Chapter 6: Story Estimation

Summary:
This chapter describes how to estimate the amount of time a story will take to complete. Each story should be broken up into a point system. A point should be equivalent to how much work a programmer thinks they could get done in a week. Except for when the project is started, it is best to compare stories to try to get a grasp of how many points they should be worth. At the beginning, a sample program should be made to estimate how many points you think the actual story should be worth.

Description:
Everything that the author talks about seems so intuitive. Before reading this I wouldn't have thought of it, but afterwords I don't see how it could be done any other way.

Monday, January 24, 2011

Extreme Programming Installed Ch1-3

Chapter 1:

Summary:
The chapter describes three roles (customer, programmer, and manager) and the rights and responsibilities of each. The customer gives stories that should be used to determine what types of features should be implemented for the project to be successful. Programmers need to coordinate efficiently and make sure to constantly test code so that each small release works. A manager needs to remove all obstacles from the programmers so that the ship runs smoothly.

Discussion:
I like the way this book includes customers as part of the team. Although they are not actually coding anything, the fact is everything is being done for them. While most of the topics in this chapter have been covered in other classes, its nice to have it all in one convenient place.

Chapter 2:

Summary:
This chapter introduces the circle of life for programmers and customers. The customer tells the programmer what they want and the programmer tells the customer how much time and resources that will take.


The chapter also covers the importance of not overworking programmers so that releases are predictably timed and made with high quality.

Discussion: I enjoyed the inclusion of not stressing out and overworking. I myself have been overzealous when attempting homework and it usually ends with less favorable results than if I had simply given myself more time for a less stressful work schedule.

Chapter 3:

Summary:
This chapter discusses the importance of on-site customers. Having on-site customers greatly increases communication and lowers the amount of misunderstandings. If it isn't possible to have on-site customers, release code to the customers as often as possible to minimize misunderstandings.

Discussion:
It seems that the overall theme of the first few chapters of this book is that the customer is just as (if not more) important as any programmer or manager on the team. The book does a good job of reminding us to always realize that we are working for the customer.

Wednesday, January 19, 2011

Introductory Blog


What is your name?
Jacob Lillard

What will you be doing after graduation?
I hope to be working, if not I will be applying to graduate school.

List your computing interests.
I have had a lot of fun with artificial intelligence, databases, and computer graphics.

List your computing strengths.
I have primarily coded in C++ and Java. I believe I am fairly strong in the concepts covered in the classes I mentioned under computing interests.

What was your favorite computer science project that you worked on and why?
In artificial intelligence I had to use prolog to create an intelligent agent to navigate through a maze known as the wumpus world. I enjoyed it because it was something interesting and was quite different than the normal object oriented programming languages (although I wouldn't want to do another project in prolog).

What was your least favorite and why?

The projects I needed to do in my operating systems class were tedious because they ran on a PC emulator and you could not run or debug any programs until you had completely finished with it. This made the debugging phase extremely painful.

What do you see as the top tech. development of the last 5 years and why?

I don't believe this is the most important tech. development, but I have really enjoyed my smart phone.

Provide some insight into your management/coding styles. 

I believe it is important to break down the project into manageable chunks so that the team is not overwhelmed. I also believe that communication is the most important aspect of a team. A team member might have a great idea, but unless they voice their opinion it will go to waste.