Monday, April 11, 2011

Reading Blog - The Mythical Man-Month Ch 13 - 15

Summary:

Ch 13
Programs and projects are bound to have bugs. This requires a lot of testing and debugging. Top-down designs will make it easier to fix these issues and make it less time consuming.

Ch 14
Projects must be kept on schedule and have deliverables or goals reached on the road to completion. Estimating the time it will take to complete a project and planning ahead will make it go by a lot easier and finished faster.


Ch 15
Documentation is important especially when trying to explain to the user what it is the program does, how it is run, inputs, and troubleshooting. Programs should have a test program to verify it works correctly before the user gets to use it. It also helps in the future if changes need to be made.



Discussion:
These mostly talk about scheduling and documentation. It seems its important to estimate scheduling of release as well as document it. Also, the documentation of the program will also be needed for users to properly learn the program.

Extreme Programming Installed chapters 22 - 24

Summary:
Ch 22
We want to avoid bugs and defects when programming. We slow down the project and fail tests when these arise. It is very important to keep track of these to reference back and avoiding them in the future for better programming. This will speed up the project as a whole.

Ch 23
XP is meant to be simple with a great emphasis on communication and feedback. The progression of the project depends on these. Goals should also be kept realistic to the point where you can have deliverables weekly.

Ch 24
It is important to properly  deliver a project and estimate its completeness. Having these documented estimates can lead you to push back deadlines and release dates put on by managers. You do not want to release code that is not properly finished.



Discussion:
I am glad to be done with this book! I think I have implemented enough XP into our senior design project and I learned better like that than reading the book

Saturday, April 9, 2011

Reading Blog - The Mythical Man-Month Ch 10 - 12

Summary:
Ch 10
Documentation is key for organization in a team project, budget documentation being one of the most important ones. It is important because it drives technical decisions and specifications. This will also aid in the communication process of the project.

Ch 11
the chapter tells us that most first releases are usually never fully correct. Because of this, programs should be designed to make it easier to change or add features later to avoid complete redesign. 

Ch 12
This chapter illustrates the differences between the target machines and vehicle machines. Target machines are those machines for which a program is designed to run on. The vehicle machine is the machine in which the program was built on. It is important top differentiate the two.




Discussion:
I enjoyed chapter 10 the most because it talked about budget and a bit of the business side of programming which I feel I have not seen a lot of. It helps understand real world situations.

Reading Blog - The Mythical Man-Month Ch 7 - 9

Summary:
Ch 7
This chapter deals with the importance of communication. It is key to accomplish the goals of the project. A workbook is an excellent way to keep the communication going by documenting everything needed to get the project finished. It should be distributed and kept up to date.

Ch 8
The chapter focuses more on the productivity of a team. Many times, planned schedules are not always correct because productivity may be slowed by unexpected problems that could not be accounted for. Meeting also play a role in the delayed time.

Ch 9
Space management is an important thing to take into consideration when dealing with projects. It can dictate the direction of your project and may need to take into account various trade offs.




Discussion:
I mostly enjoyed the chapter dealing with productivity. I have often found myself planning but they are always derailed with unexpected problems.

Reading Blog - The Mythical Man-Month Ch 4 -6

Summary:
Ch 4
Design and implementation are two very different things as discussed in the chapter. Architecture is a complete detailed specification of the UI. It must be drafted before implementation.

Ch 5
This chapter does more differentiation. It talks bout the early life of the design and avoiding adding on to it late into the process for second release.

Ch 6
The documentation of instructions describes what the user sees in a program. When the specifications are written up for this, it is important that they be precise and exact. Communication between builders and architects should be kept to avoid mis-communication of specifications and documentation.



Discussion:
This book is helping me understand different roles of programming and what each role entails. I am enjoying learning more about the different roles.

Reading Blog - The Inmates are Running the Asylum Ch 3 -5

Summary:
Ch 3
In most projects, the programmers steer what features will be on the system. Managers give them a list and programmers weed out what they feel will not be done in a realistic time fame. Users do not seem to care much for added features so long as they can accomplish their goals with the product. The goal and use of a product should be the most important thing over release date. It is no good to meet a release date with a unusable product.

Ch 4
This chapter discusses user friendliness. Today's technology, is expected to interact with users in an easy and intuitive way. Preferably the way they interact with other humans. The current software tries to tend to our needs but sometimes doesn't by constraining us into an enclosed state where it thinks it is doing what we need. We need more flexibility in today's software.

Ch 5
The design of a product is the most outstanding part of a project. We must deliver products that encase all the features and design the user wants. It is all about the end product over the release date.



Discussion:
The book is giving good information in my opinion. It is more release driven and gives us advice an topics I feel haven't been covered as much in other books. I look forward to reading more of this.

Reading Blog - The Mythical Man-Month Ch 1 -3

Summary:
Ch 1
The chapter discusses how programming can be enjoyable for some. For example many enjoy the prospect of creating something. Another reason is the joy of making things for people that they find useful. The whole chapter deals with the joys of programming.


Ch 2
The chapter talks about how it is sometime difficult to time a project as we may not know how long it would take. For the most part, programmers are optimists. It describes the title of the book, man-month. This is a unit of measurement for time taken to complete a task.

Ch 3
This chapter discusses that solving a large project doesn't mean throwing more team members on the project. This sometimes will make the process slower. Instead, teams should divide up tasks by having a main programmer, a co programmer, tester and many other jobs in order to avoid confusion and speed up the process.



Discussion:
I'm glad the tile of the book makes sense now. This sounds like another extreme programming book so far. I still don't have an opinion of the book. I will need to read further.

Reading Blog - The Inmates are Running the Asylum Ch 1 -2

Summary:
Ch 1
The book opens up by discussing problems many people face with using computers. The example of a digital that is hard to use due to new features being added is given. The standard functions are hidden under all the new extra added features. Sometimes programmers may make non intuitive programs for the users unintended. Programmers must understand their users and frame of references and step outside of theirs.

Ch 2
This chapter discusses cognitive friction which is intellect engaging in a complex system that changes as the rules change. There are different users that encounter this. The apologist which desire a challenge and the computer illiterate which want ways of doing things easily.



Discussion:
I found this book so far interesting. I agree with the different types of users who encounter cognitive friction. I could be a bit rage educing. I look forward to reading the book further to see other type of computer and system users.

Reading Blog - Extreme Programming Installed Ch19 - 21

Summary:
Ch 19
The chapter discusses unexpected changes that may arise when developing. This may make tasks take longer than expected. It is always important to adjust deadline and charts to make way for the unexpected changes. having leeway for adjustment is always good.

Ch 20
It is important to have stories get completed to the end. It is better to focus on a single story to completion opposed to having several almost completed stories. Also, you must check on members to see their progress on their stories.

Ch 21
When releasing, it is best to check up on your stories and see how much of them have been completed.  The most valuable stories should always be put at the top of the to do list. This will drive better releases.




Discussion:
The chapters are finally slowly starting to focus more on the release. I found these chapter more informative than previous ones.

Reading Blog - Design of Future Things Ch 6

Summary:
Mechanical devices, with their moving parts provide feedback to the user to describe their function and use. These help the user make up a mental model and indicate what the device does/is doing. It should be intuitive and natural.



Discussion:
Signal are important as described in the chapter. They help us by giving us an indicators to whats going on. I know i have relied on my indicators to see what a device is doing, or not doing.

Reading Blog - Design of Future Things Ch 5

Summary:
The chapter starts off with talk of Norman's smart home example. It talks about how the inhabitants of the house take about as much time getting use to the smart house as the house takes in learning the inhabitant's routines. The talk of artificial intelligence come up explaining how if not incorporated, the house may make bad calls and for example shout off lights in the house when users are in the, causing an undesired effect. It is all about the communication between the user and the system.




Discussion:
I like the points he talks about but I feel he needs to get more examples besides cars and houses. I like how he talks about the need for AI in order for systems such as these to work as intended.