Introduction to the Personal Software Process(sm) (SEI Series in Software Engineering) (英語) ペーパーバック – 1996/12/20
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
This newest book from Watts Humphrey is a hands-on introduction to basic disciplines of software engineering. Designed as a workbook companion to any introductory programming or software-engineering text, Humphrey provides here the practical means to integrate his highly regarded Personal Software Process (PSP) into college and university curricula. The book may also be adapted for use in industrial training or for self-improvement by practicing software engineers.
Applying the book's exercises to their course assignments, students learn both to manage their time effectively and to monitor the quality of their work, good practices they will need to be successful in their future careers. The book is supported by its own electronic supplement, which includes spreadsheets for data entry and analysis. A complete instructor's package is also available.
By mastering PSP techniques early in their studies, students can avoid--or overcome--the popular "hacker" ethic that leads to so many bad habits. Employers will appreciate new hires prepared to do competent professional work without, as now is common, expensive retraining and years of experience.
Known as “the father of software quality,” Watts S. Humphrey is the author of numerous influential books on the software-development process and software process improvement. Humphrey is a fellow of the Software Engineering Institute (SEI) at Carnegie Mellon University, where he founded the Software Process Program and provided the vision and early leadership for the original Capability Maturity Model (CMM). He also is the creator of the Personal Software Process (PSP) and Team Software Process (TSP). Recently, he was awarded the National Medal of Technology—the highest honor given by the president of the United States to America's leading innovators.
For the working programmer, especially in today's visual integrated environment, applying alot of the material is hard. The Lines of Code (LOC) measurement used is not considered the best judge of program complexity, plus in a visual environment where one can spend days laying out forms or reports that generate no lines of code can skew numbers. I understand its use: It is easy to explain and calculate for beginners, but is lacking for working programmers.
There is also an emphasis on distinct phases of program development, particularly the compile and test phase. For those of us who work in a visual environment (be it C, Pascal, or Basic) the phases blur together and tracking time spent on compile is negligable. Also not mentioned is should intentional syntax errors (such as going to copy a variable name) that automatic syntax checking catches be tracked?
The extreme academic bend of the book also begins to annoy after awhile. The use of "small programs" to work with on the job is rare. Tracking number of lines changed can be tough in large programs, even with source code controls in place. The base code review checklist is extremely simple (intentionally) and aimed at C or Ada programmers, leaving other languages hanging.
One last annoyance: Many of the forms talked about are not available to print or use in a spreadsheet. The one form most working programmers would use, the time log, is the most glaring example.
If you meet either of the requirements in the first paragraph, read the book. You will find something of use. Just about anyone in the field would benefit from chapters 3 and 7 (in particular) since we all tend to have problems estimating how much time things will take.
Lastly, most of the data used to show how things improved after using the Personal Software Process was from 2 groups, one "real world" company and a group of students. Both groups only had around 15 people. Even combining both groups a sample of 30 programmers is not overwelming evidence. A larger sample is needed.
Although only 3 years old, to me the book needs to be updated. Larger samples for the improvement examples, handling non-code artificts such as forms and program documentation, and making sure that all of the forms are available on standard size paper (8.5x11 or A4) would be a good starting place.