Silver Bullet Found

It is time to say it aloud: most of software development books are dangerous.

And when I say books, I don’t mean the shameless waste of not renewable resources like ASP.NET in 21 days, Visual Studio for Dummies, and other printouts of help pages, screen shots, tutorials, and code sample listings. No, I mean books like Software Design Patterns by GoF, Object Oriented Analysis and Design by Booch, Extreme Programming series by Kent Beck, and other iconic and deeply philosophical books.

Ever since Brooks’ Mythical Man-Months we software engineers believe in existance of Software Development Crysis, shame ourselves for the poor quality of software we produce, and desperately dream about the silver bullet, this magical and beautiful thing that would finally liberate us from our guilt complex.

Now, here is the silver bullet: we are not guilty. Guys, we overestimate our control over software quality.

Time pressure and unrealistic deadlines are the number one reason to cut on software quality. Therefore, we try and go into unbelievable deeps of smart and sophisticated processes and methodologies to squeeze yet another 5% of efficiency and free up yet another hour we can dedicate to the only activity that can increase software quality – to the thinking.

But being completely honest to ourselves, we cannot deny that having 5% more or 50% less thinking time would not play any significant role to the outcome. To achieve really satisfying results, we need much more thinking time. So much time that some people even believe we would work on software endlessly if we were allowed to. Unfortunately, it is often impossible. There is almost always a deadline, either due to budget constraints, or coming from marketing strategy to use the big wave of some launch event, or even to win over a competition and be first on the market.

There is no such thing as enough time in a software development project. But looking at the bigger picture, I can’t help asking myself: is the software development phase of the project really the bottleneck? The part where the whole software quality gets lost? Because of these poor software developers unable to write a bug-free software in the first try, and with the speed of a typist? Are the activities happening before the development phase also so sophisticatedly optimized and mercilessly streamlined like ours?

And the answer is often no.

I speak about cases, where pre-development activites are paused for two weeks just because some important decision maker acts as a bottleneck due to his busy schedule. A whole two weeks lost! We would implement a couple of additional features, or 50 unit tests, if we had this time!

I speak about cases, where an important information making the planned software architecture to explode comes in too late, just because some team members either incompetent or playing politics.

I speak about cases, where software development is being outsourced, and the customer’s Purchase and Legal spend a month to negotiate terms and conditions with the vendor whom this customer has already been worked with for a year.

I speak about cases, where the project setup includes several vendors that must cooperate but are in competition with each other, so each inquiry would take at least a couple of days and involve quite a lot of politics.

I speak about cases, where software development workgroups are not stable teams of people who have already been worked together and know each other strenghts and weaknesses, and be able to trust each other, but rather being dynamically gathered together from people who coincidentially were free at the project kickoff time. So that the workgroup has to spend days for neccessary philosophical discussions and alignment…

And this is why I think the books are dangerous. They imply that selection of a programming language, coding style, diagram graphical language, choosing exact procedures to exchange information inside the workgroup, the release timeline, and all such stuff, is important. Often, it isn’t very important. They imply that if we do everything right, we can achieve reasonable software quality. Often, it’s not true. And they imply that we are those who is most responsible for software quality. Sometimes, we are the least responsible for it.

Before going into the great lengths and discussing how yet another programming language would make the software better, wouldn’t it be more reasonable to profile the whole software project and eliminate the biggest waste first?..

This Week in Twitter

  • Reading chinese is completely different from reading alphabet-based languages. You remember words not by their sound, but by their look. #
  • My chinese progress sofar: can grasp the topic of some twits. #
  • Nice selling trick (to call it a mouse): http://www.youtube.com/watch?v=yHGODp0b8Ks #
  • Do you also think adding filter and sorting features to the lists destroys usability? iPod and Outlook notwithstanding. #
  • It's like: sorry, I couldn't make the UI really usable, so I'll just throw some filters, just in case you're lost. #
  • Verlockendes Stellenangebot…http://tweetphoto.com/40929047 #
  • How do you know your OOA metaphor is wrong? Important business logic is implemented in the class named InputHelper. #
  • Drafting http://tweetphoto.com/41635074 #
  • I like Fürt http://tweetphoto.com/41689433 #
  • and don't like keyboards missing the h in Fürth #

Powered by Twitter Tools

My Star

Musikvideo: Adobe Flash Player (Version 9 oder höher) wird benötigt um dieses Musikvideo abzuspielen. Die aktuellste Version steht hier zum herunterladen bereit. Außerdem muss JavaScript in Ihrem Browser aktiviert sein.

This Week in Twitter

Powered by Twitter Tools

10 Mistakes of Creative Teams

  1. Building a team for a creative task in a situation where one person would do fine.
  2. Expecting absence of flames and philosophical discussions for teams who haven’t been working together, on the same kind of tasks, day to day, for more than a year.
  3. Critisizing work of the other team members in the way so that it can be taken personally.
  4. Not critisizing work of other team members just because of interpersonal relationships.
  5. Inability to question decisions of a boss however wrong they subjectively seem to be.
  6. Inability to discuss topics with a boss without being overly aggressive just because he has the final say.
  7. Involving a decision maker into each and every team-internal communication.
  8. As a decision maker, declaring work finished without asking permission of other team members (it is only possible to cancel or prematurely stop the work by decision, not to finish it).
  9. Giving feedback to each and every small detail; being always opionated; not providing enough free room for others.
  10. Overriding decisions of others / throwing work of others away without an explanation.

And I’m guilty of at least 6 of those…

This Week in Twitter

  • Reisebank kassiert 100€, wenn man $500 hin und zurück wechselt, obwohl ihre Werbung was anderes suggeriert. Und das ist legal… #
  • RT @asdtvg: ARD und ZDF interessiert an neuer Videoplattform http://bit.ly/amyq9s #
  • Innovative entertainment tested on one Lufthansa flight: http://j.mp/c5dLJd #
  • Apple's 3 screen strategy: iOS, iOS, iOS. #
  • Ich mag ein YouTube-Video. — China Straddling Bus http://youtu.be/iQxP_un15iQ?a #
  • Does Oracle vs Google controversy mark beginning of the end of the open source as we know it? #
  • Ah, eastern part of Eurasia. If you only could share some of your sunny 40 degrees with us. Last weeks here were rainy 16-ies. #

Powered by Twitter Tools

3D now

Yesterday I’ve received the latest issue of ”test”, which is a magazine of Stiftung Warentest, German counterpart of “Customer Reports”. One article was quite shocking: they have tested 3D TV devices. 

Wow, we’re really in the 3D era now. So, now I would expect that 3D glasses will appear in mass usage pretty soon and obtain a cult status. I would also expect appearance of 3D street signs, 3D infographics in airports, 3D company name plates, apparel with 3D pictures, 3D wallpapers, and various 3D printed matters. I’m also looking for 3D live performances on stages.

I can also imagine DRM-enabled glasses because 3D-prepared images cannot be enjoyed without glasses.

For now, enjoy 3D fashion: http://www.fashionadexplorer.com/l-ellus-leather–c-denim-ad-campaign–s-2010fw#_

This Week in Twitter

  • Not going to the USA any more. #

Powered by Twitter Tools

This Week in Twitter

  • is going to the USA tomorrow #

Powered by Twitter Tools

This Week in Twitter

Powered by Twitter Tools