Book Review: the 7 Habits by Stephen Covey – chapter one

This is the second in a series of articles providing a chapter-by-chapter in-depth “book club” reading of Mr. Stephen Covey’s classic “the 7th habits of highly effective people”.
I’m reading from the 2004 Free Press paperback edition. This entry covers the first habit: be proactive.

What matters most is how we respond to what we experience in life.

First, a definition: proactivity means more than taking initiative, it means being responsible for our own lives, to be able to choose our response.

In contrast, reactive people are affected by their social environment: when people treat them well, they feel well, when don’t they become defensive or protective. Reactive people build their emotional lives around the behaviour of others, empowering other people to control them. They are driven by feelings, circumstances, conditions, environment.

Proactive people are driven by values; they are still influenced by external stimuli but their response is a value-based choice. They are not pushy or aggressive, that’s not the actual meaning.

Continue reading “Book Review: the 7 Habits by Stephen Covey – chapter one”

Die Zeit Internet Spezial

Die Zeit, one of the most reliable paper in Germany published in the last weeks a special issue about Internet in three numbers, one every week.

The parts investigated respectively how it is changing our life, our culture and our society.

Despite it was quite nicely written and complete, it remained somehow superficial.
Too many arguments and too much addressed to a public not so deep into the subject.
An interesting summary and reading for people not directly into the web otherwise too simple.

The Problem with the Waterfall software development model

The waterfall model is a sequential software development process, in which progress is seen as flowing steadily downwards (like a waterfall).

It should be readily apparent that the waterfall development model has its origins in the manufacturing and construction industries; highly structured physical environments in which after-the-fact changes are prohibitively costly, if not impossible. Since no formal software development methodologies existed at the time, this hardware-oriented model was simply adapted for software development.

And here is the main problem with the pure waterfall model: it’s obsolete and was not really a good model for software development in the first place; it was just easier to use already existing practices from other areas at the very beginning, but those areas were not so similar to software devlopment as initially thought.

The waterfall model maintains that one should move to a phase only when its preceding phase is completed and perfected.

This is the central idea behind Big Design Up Front (BDUF) and the waterfall model:  time spent early on making sure that requirements and design are absolutely correct will save you much time and effort later. Thus, the thinking of those who follow the waterfall process goes, one should make sure that each phase is 100% complete and absolutely correct before proceeding to the next phase of program creation.

The waterfall model is a bad idea in practice because it is impossible for any non-trivial project to get one phase of a software product’s lifecycle perfected before moving on to the next phases and learning from them.

Another criticism revolves around the model’s implicit assumption that designs can be feasibly translated into real products; this sometimes runs into roadblocks when developers actually begin implementation. Often, designs that look feasible on paper turn out to be expensive or difficult in practice, requiring a re-design and hence destroying the clear distinctions between phases of the traditional waterfall model.

Again, software devlopment is not like manufacturing a car or building a house: it’s more an art, like a chef creating a new cooking recept: you need to try and iterate, adding salt or sugar, tasting and sometimes to start over.

In response to the perceived problems with the pure waterfall model, many modified waterfall models have been introduced. These models may address some or all of the criticisms of the pure waterfall model, mostly introducing overlapping phases (you don’t need to have completed one phase before passing to hte next one) or feedbacks.
But the real changing model came with the agile and iterative models.

Next: when to use a waterfal model and when an agile one.