Feed on
Posts
Comments

My Vista Home Premium finally arrived. Since I have a Ati 9250 at work, which is a smartly rebranded DirectX 8 card, I was craving for the full “vista experience”. After doing some backup I installed Vista on my laptop and spent some time setting up the basic programs I need. Since installing colinux is one of the great challenges of the Game Of Windows I’ll try to present you a step-by-step guide to a working mobile colinux setup in Vista.
Continue Reading »

The Weakest Link

There is a single most important rule to IT security:

Always address the weakest link.

Continue Reading »

Do you estimate the time it will take you to finish your task in the mythical unit called “perfect engineering day”? Have you ever wondered why?
Continue Reading »

The first human beings had a hard time. When they weren’t on edge due to the Neanderthals who constantly tried to get their unprofitable genes into the big pool again, they had to deal with a real challenge: self reflection.

When I exercise my introspectional skills I often think fondly of my ancestors. I imagine their first grunted discussions of values, time and the meaning of soccer. And I believe these discussions closely resembled those we see about good code nowadays. But without the discussion we’d probably still be fighting naked over the affection of women. Um…

In this article I’ll try to define good code from a business value perspective. I’ll come to this conclusion:
Good Code executes a set of features correctly in a specified time (present value) and maximizes future value (minimizes future cost) by adhering to the dynamic nature of code through an ROI-oriented design, a test suite, process automation and VCS-usage.

Continue Reading »

Ed carefully tiptoes towards Karl’s desk. “Hey Karl”, he cheerily announces: “I still need this time estimation for the Globster project!”.

“Yea, right… That was the Irish Coffee feature for their coffee machines at the management offices, wasn’t it? I just have to read some specs to figure out what I have to do – give me two days.”

Ed hesitates for a second: “So, you tell me you need two days to give me an estimation?”

“Yeah, so?” Karl shoots Ed an inquiring look. He really hates time estimations. They always seem to come back at you. Mostly when you want to leave work in the evening. Looking straight into Ed’s face Karl knows what’s expected of him: “Ok, let’s just say it takes 5 days”.

Leaving Karl’s desk Ed heads straight for the coffee machine. What on earth is the developer’s problem with time estimations? Getting the coffee machine to deliver Irish Coffee can’t be that hard, after all… and it would be a nice addition for their own machine. Somebody has to do the testing.

“Hey Ed, good that I meet you. I’ve got Mr. Globster on hold, how long will the changes for the project take?” – “Oh, hey Dave, Karl said it’s about 5 days…” – “Thanks, Ed!”

“Mr. Globster? Yes, the new software will be ready at Friday, no problem. A manager password and taxi service will be included.”

Continue Reading »

In case you didn’t notice: I’ve been away from my keyboard for two weeks. My wife and me had a beautiful vacation in Jamaica where I learned that reading and writing English doesn’t help a lot to understand people actually talking. Ya Man!

Continue Reading »

“What are those five lines of code for?”
“I put them there because … wait, um, they’re, let me see … they sum up x, y and z and calculate some sort of squared nearest neighbor… yep…”
“So, what do they do?”
“I just told you…”
“See, I just found that I couldn’t understand those lines in the current context, so I just wanted to rip out a new method for this stuff…”
“And?”
“Now how should I call this method?”
“Um… … call it doCalculation!”

Continue Reading »

Today was a beautiful sunny day. The warm sunbeams on my skin told a story of the oncoming spring. And while my body started up it’s Vitamin B3 production line, I remembered a conversation I had yesterday with Bernhard, a rocket engineer, that evolved around two statements:

“With hardware, theoretically anything is possible.” – This statement emphasizes the limits of hardware. Theoretically you can do whatever you want, but you’re limited by the material the earth provides. I admit that human beings are highly innovative – memory chip designers happily use techniques today that were believed to be physically impossible not long ago.

“With software, practically anything is possible.” – Software has no inherent limitations. The concept “software” consists of a bunch of algorithms neatly packed together into a structured specification of how to solve a problem. Of course, software is limited by the hardware it is run on, which is why I usually have a problematic relationship with hardware which sometimes leads to mutual physical violence.

There is a point in the life of a software developer when you realize this (the limitlessness of software, not my problem with hardware). That realization marks your promotion to Programmer Level 1. At that time you usually know a bunch of programming languages, acquired some basic algorithmic competence and finished some minor projects. You leave the hunting grounds of not knowing how to implement things and ascend to the heavenly plains of being capable of anything.

You’re Turing Complete.

Continue Reading »

Morbus Maximus Hypercodus, also known as BPCD (Best Possible Coder Disease) is an uncommon illness these days. It mostly affects integral parts of the brain and while some people believe it to be a genetic dysfunction, others claim that BPCD has purely psychological causes. People who suffer from BPCD are usually not aware of it – this is in fact one of the symptoms of the disease.

The only known effect of BPCD is that the infected person writes exceptionally clean, well-structured, bug-free and easy to maintain code. The benign character of the illness is the root of a devilish new pest called WBPCD (Wannabe Best Possible Coder Disease). Curing WBPCD is hard, since the infected person usually believes to suffer from BPCD and stubbornly refuses medication.

Since spreading BPCD is supposed to have positive effects in corporate environments, you can find quite a lot of studies about effectively spreading BPCD. Mostly getting infected by BPCD involves close collaboration with people you believe to suffer from BPCD, or mind-to-mind intercourse which is easy to practice by reading.

Unfortunately you can never diagnose BPCD for yourself, since if you believe you have BPCD you’re just a WBPCD case and should consider professional help. If you don’t believe you have BPCD – well, it could be that you’re right, but since you don’t believe it this won’t help you. The only known solution to this problem is to try to get BPCD infected for the rest of your life, always hoping to be infected, but always doubting your current condition.

That said, it’s not too hard to diagnose BPCD if you know the symptoms. If you suffer from WBPCD you may subconsciously use this information to make others believe you’re a BPCD patient, so watch out! Don’t fool yourself.

Symptoms of BPCD:

  • Unbreakable optimism – BPCD patients usually start getting infected with Morbus Codus (Coding Disease). They recognize quickly that it’s impossible to write bug-free code. This is the turning point in the course of disease. Some people just stop there, running away to business or law schools. The other lot is optimistic enough to hope that this time everything will be all right. While WBPCD patients just assume that their code is top notch (they believe to be BPCD infected), real BPCD people realize that optimism must be controlled with caution and test their assumptions thoroughly.
  • Easily bored and clumsy – Doing repetitive tasks will bore a person suffering from BPCD to death. If the person is also clumsy this results in a high error rate. While WBPCD patients just ignore those errors and think they will manage to do everything correctly the next time, you will find a high level of automation in the BPCD infected work environment.
  • A strange kind of perfectionism – While WBPCD causes the infected person to believe to be already perfect and requesting perfectionism from other people, BPCD makes you strive for perfectionism yourself. The typical BPCD patient is always in a mentally driven state, trying to learn and improve and help others get BPCD infected as well.
  • Annoying curiosity – Living or working with a BPCD infected person can be a challenging experience. Always seeking for answers the BPCD patient never stops questioning every possible process until he either recognizes it’s worth or starts trying to make you change. People who do not want to change should try to avoid contact with BPCD infected persons to prevent physical damage.
  • Bad memory – An unimaginably bad memory can help to catch BPCD. Some patients can’t remember what or why they did whatever they did last week, or if NMBR is shorthand for “number” or “Non Memorable Abbreviation”. Thus they find themselves reading their own code with the eyes of a stranger. This makes BPCD infected programmers write code in a way that people who know close to nothing about the project can easily read their code. For WBPCD infected persons this just means being late to meetings.

If you want to get BPCD infected you can read this nice article about becoming a better developer at willcode4beer’s.

XP – Cult or Movement?

Today somebody posted a very interesting comment on my recent article about my experience with XP. He (or she) linked to an article called Extreme Deprogramming. The comment’s author said it was “The most insightful take on XP”, in his opinion. Well, the article is very entertaining indeed, so first of all I recommend that you read it if you promise to come back when you’re finished…

The article finds that XP is a cult. Well, I totally agree. But than again – so what? All great movements that come to my mind started as small cults. For example <insert your preferred transcendent association>. I don’t really know about anything but Christianity, but I believe that other religious leaders had a hard time being accused of cult leadership, too, when they started their business. Now of course I counter polemics with polemics – but hey, I’ll flagellate myself later with my cult-colored whip.

Speaking about movements, don’t forget emancipation, civil rights or the Internet. In the beginning it’s always a few nerds with some crazy idea who build up a cult. And in the beginning nobody can say if it’s going to be the next big movement or just an other flash in the pan that didn’t beat Metcalfe’s Law.

The article doesn’t have a single argument against any XP practice. Funny, eh? The value of XP is judged purely by the author’s perception of XP in the media. Can you tell if an apple is sweet without taking a good bite?

Apart from tagging XP a cult, which is true, the article raises some claims that are – let me put it bluntly: wrong. For those of you who favor polemics over reasoning, stop reading here.

Elitist Attitude
Cited from Extreme Deprogramming.
This is definitely a group of people who think they have got it, and that anyone else not similarly enthused is a laggard.
That knowledge of what is and isn’t OK is seen to be held by a central authority and is not in the hands of the practitioners themselves [...]

Those citations give the impression that XP’s great ol’ ones are arrogant know-it-alls, who just want to make a lot of money. OK, they probably want to make a lot of money, but if you get involved with the extreme programming yahoo group, you’ll see that they answer your questions patiently. Especially Ron gives away a lot of consulting time for free (or he is a quick writer). The community behind XP is caring, open-minded and welcoming, always reflecting upon their own flaws.

All or nothing
This all-or-nothing thinking is typical of cults. Members must display total dedication to the cult and its objectives, or they are labeled impure and expelled from the community.

I don’t know where this insight comes from, but when I read the yahoo group for XP many people advice you to try to implement a practice only if you think it addresses a problem you have.

Most of the author’s knowledge about XP seems to stem from the newsgroup comp.software.extreme-programming. I can only do some guesswork: Mayhap there are many agile zealots who don’t have a clue of what XP is about and they manage to build up some weird image in open newsgroups. I can only recommend to take a look at the archives over at the XP group and lean more about the community.

Conclusion
The long term success of XP will probably depend a lot on whether it really works. To get the answer you can try it out for yourself. Apart from that only time can tell if XP will be a movement that changes the way we implement software systems or yet another hype.

« Newer Posts - Older Posts »