Wednesday, May 24, 2006
Flows in Action
This is the question that stroke me while reading an insightful article from IEEE Spectrum. Comment here if you think similarly. Or not!
Sunday, May 21, 2006
Dematerialize Me
Switching the OS for another one that asks much less care (defragmentation anyone?) is certainly an appropriate action: I will come back to it in a later post.
Reducing the hard disk drive footprint is surely another one. This means less to re-install and less to lose between two backups. This means dematerializing applications and use their web counterparts in lieu. So far, here I am:
- E-mail client: GMail instead of Thunderbird,
- RSS feed reader: BlogLines instead of Omea Reader,
- Chat client: Meebo instead of Trillian.
Not only my web related tools are available anywhere there is internet connectivity, but session state is persisted: for example, all the RSS feeds that I have marked as read will remain so (which is not the case when you have multiple clients on multiple machines).
The next step is to dematerialize me: I am still thinking on how I could be replaced with my web counterpart... In the meantime, if you know other smart tools like the ones I have listed before, please comment on this post!
Saturday, May 13, 2006
Duties and Rights (Quote of the day)
Tuesday, May 09, 2006
The Mystique of Software Craftsmanship, Part 5
Fifth Discipline : Control Temporal Localization
It has been said enough that psyche is a the key factor of success in human endeavors. One aspect that is worth paying attention to is the way we control how our mental activities are distributed in a time-based manner, or said differently, how we focus our streams of reflection on the past, the present and the future.
In that matter, anything that would not be following a standard normal distribution (also known as bell curve), where the peak of the curve would be the present time, the left side the past and the right side the future, would be damaging for our work and ourselves. This concept sounds pretty obvious and natural, but for intellectual workers, the risk is high to have the shape deviate in one direction or the other and it must be recognized in order to be controlled.
To understand why temporal localization is important, let us examine some potential side effects of deviating from the bell curve.
Focus | D | Risk and Mitigation |
Past | + | This tendency could be the immediate consequence of work habits too much oriented to the past (see part 4). Regrets of a glorious past or a previous technical platform can make a developer unconsciously sabotage his work. It is important to recognize the constantly changing nature of our business (and the fact that a glorious past is a self-made myth) to avoid spending too much focus on the past. |
- | Not having enough focus on the past leaves the developer at risk of ignoring valuable experience. Systematic project postmortem can help turning past experience into useful memories instead of denied and buried ones. Easily built knowledge bases (for example using a Wiki) can also be of great help. | |
Present | + | Focusing too much on present can expose developers to the feeling of being overwhelmed by the task they are working on. It is very difficult to reach the right level of detachment necessary to alleviate the emotional impact of technical difficulties that a programmer meet almost every minute. Developing a humorous attitude can be a positive way of shielding oneself! |
- | The consequences of not focusing enough on the present time are well known: lack of attention to the details, unsatisfactory feeling of not seizing the instant... If this escapism is rooted in boredom, talk your manager: you will be surprised by how converging your interests are! | |
Future | + | It is very easy to focus too much on the future because software development entails huge prospective mental constructions. The risk is a high mental load that ends up in extreme fatigue and a difficulty to “go off line” (the fourth state in the cycle described part 3). Writing down informal do lists, models or plans as they come to mind can help reducing the amount of prospective concepts manipulated and explored simultaneously by the brain, thus reducing the propensity to excessively look forward. |
- | Not paying enough attention to the future generally translates into ill-designed systems, unable to absorb changes without breaking. Of course, over-engineering is a real risk that must not be ignored, but learning simple non-intrusive techniques (like programming to interfaces) can help to efficiently prepare the future. |
Because we are where our mind is, temporal localization is a factor that software developers should be aware of in order to optimize both their work capacity and mental load.
Monday, May 01, 2006
The Mystique of Software Craftsmanship, Part 4
Forth Discipline : Question Traditions
No workplace is free of traditions: in fact, establishing traditions is inherent to our human nature hence computer-related workplaces, whether they deal with software development or IT operations, are also bound to some forms of traditionalism.
We should become very aware of these traditions and by no means be afraid to question them. Very often a tradition acts as disabling force instead of simply being a neutral vector of knowledge. The same way they can turn a living faith into a dead religion, traditions can weight on decision making process and orient them into cumbersome or counterproductive acts.
There are many patterns under which traditions could take place in your working environment: it is crucial to get used to expose them. Here are three examples, that you can use as starting points for your inquiry:
- the “self-perpetuating pain”, where the cause of a problem or the limitation of a system is long time gone, but the workarounds or constrictions that were put in place remain - unquestioned,
- the infamous “we have always done it that way”, where the reason of a particular choice has been forgotten and, or more accurately, hence becomes impossible to change,
- the “myth of the mountain”, where a practice, a system or a person is considered impossible to change or improve simply because communication as given way to prejudice.
Of course, we all know that questioning practices that have reached the status of habits is a very difficult endeavor, if not a risky one. Questioning a tradition goes far beyond the act of merely discussing a decision or a piece of knowledge: it sometimes touches the very fundamentals of an organization and will instinctively be considered as being destructive.
In the course of your adventure through traditional aspects of your organization, you will quickly find out that the most virulent supporters of a particular habit will be the ones who suffer the most of it: for them, enforcing such a painful tradition is close to the psychological trait known as capture-bonding.
Knowing the powerful psychological forces at stake in such a process, a wise craftsman will become a cunning tactician: he will avoid a direct confrontation and favor a more subtle approach, like systematically undermining practices that are peripheral to the targeted tradition or evangelizing intermediaries who can approach its fervent keepers.