Jan 9, 2012

Software Project Management: A Unified Framework, Walker Royce

Books referenced or mentioned in this book:

Title Author Link
Software Engineering Economics Barry W. Boehm Amazon
Object Solutions: Managing the Object-Oriented Project Grady Booch Amazon
201 Principles of Software Development Alan M. Davis Amazon
Controlling Software Projects: Management, Measurement, and Estimates Tom Demarco Amazon
Managing the Software Process Watts S. Humphrey Amazon
A Discipline for Software Engineering Watts S. Humphrey Amazon
The Capability Maturity Model: Guidelines for Improving the Software Process Carnegie Mellon Univ. Software Engineering Inst. Amazon

Jan 8, 2012

Project Delivery System, 4th Ed

This book was highly recommended by a project manager I respected as someone very highly experienced.  The book presents the project delivery system used by the engineering firm CH2MHILL. It covers the topic at a very high level, and is very straightforward and practical.  It is by no means complete.  I doubt if CH2MHILL uses this and only this as their project delivery system.  For example, it does not tackle progress monitoring.

I found the chapters on planning the project, and the one on building customer relationships clear and enlightening.  They are the best parts of the book.

If you work in a project where there is no project management process, this book provides a framework (but no more than that).  It does not explain what they mean by ‘Project Delivery’ as opposed to ‘Project Management’. 

Listed below are some of the books referenced by the above work.  This list is not necessarily complete (sometimes, I list only those that interest me).  The Amazon links are to the latest editions of the book, not necessarily the edition cited in the above work. 

Items marked with a Star, are works I can recommend.

Title

Author

Remarks

Force For Change: How Leadership Differs from Management John P. Kotter Amazon
StarPrinciple-Centered Leadership Stephen Covey Amazon
The Leader-Manager: Guidelines for Action William Hitt Amazon
The Empowered Manager Peter Block Amazon
Crisis & Renewal: Meeting the Challenge of Organizational Change David K Hurst Amazon
Leadership, New and Revised: The Inner Side of Greatness, A Philosophy for Leaders Peter Koestenbaum Amazon
The Fifth Discipline: The Art & Practice of The Learning Organization Peter Senge Amazon
Engineering Management: People and Projects Murray Shainis, Anton Dekom, and Charles McVinney Amazon
Managing as a Performing Art: New Ideas for a World of Chaotic Change Peter B. Vaill Amazon)
Productive Workplaces: Dignity, Meaning, and Community in the 21st Century Marvin R. Weisbord Amazon
Stewardship: Choosing Service Over Self Interest Peter Block Amazon
Customer Bonding: Pathway to Lasting Customer Loyalty Richard Cross and Janet Smith Amazon
Service Breakthroughs James L. Heskett Amazon
The One to One Future - Building Relationships One Customer at a Time Don Peppers and Martha Rogers Amazon
Value Pricing for the Design Firm Frank A. Stasiowski Amazon
Managing Transitions: Making the Most of Change William Bridges and Susan Bridges Amazon
StarGetting to Yes: Negotiating Agreement Without Giving In Roger Fisher, William L. Ury and Bruce Patton Amazon

Oct 26, 2011

UML Review–Views

A brief review of UML.

UML is a modelling system.  Every model is a simplification of the real thing and is intended to highlight the focus of that model and to recede what is not important for that particular model.   Reality cannot be modelled fully.  We will always have to select the perspective, or ‘view’, that we want to focus on.

UML is designed around a set of views. Its notations allow you to create diagrams that model a particular view.

Static View. The static view models the structure of the application domain. You use the Class diagram to represent the static view.

Use Case View.  Shows the functions of the system in its interaction with entities outside of it.  These entities are the ‘actors’.  The functionality is grouped together into use cases, where a use case is a specific transaction (or usage) of the system.  The Use Case diagram is used to present the Use Case View.

Interaction View. UML being object-oriented oriented (sic), entities communicate with each other through messages.  The Interaction View shows the message-passing interaction between the entities (strictly speaking, ‘between the roles’). UML has two diagrams that capture these interactions, the Sequence diagram, and the Collaboration diagram.  The Sequence diagram shows the messages and their sent between the different roles as each role requests and responds to the messaged.  The collaboration diagram focuses on the links between objects during an interaction.  So while the Sequence Diagram highlights the messages and their sequences during a specific transaction, the Collaboration Diagram highlights which objects are involved in the same transaction.  There is clearly some overlap between the two diagrams, and in practice, the Collaboration Diagram tends to be given up in favour of the Sequence Diagram.

State Machine View. Unlike the previous views, the State Machine view focuses on only one object or class.  This view models all the possible states of an object, what states it can transition to from each of those states, and what would cause it to transition to each of those states. The statechart diagram is used to draw this view.

Activity View.  This view maps the activities performed by whatever entity we want to model.  We do not have to pick an entity, in fact, and just proceed to model activities related to a particular outcome.  This view is similar to a project network diagram in that it simply maps dependencies and sequences of activities to produce a result.  You use the activity diagram to create this view.

Physical View. The physical views leave the world of concepts to model the physical realities.  There are two physical views in UML.  The implementation view shows the various software components and the links between them.  This is captured using a Component Diagram.  The other view is the deployment view, which shows the software components in the physical computers and servers they will be deployed in.