Archive for the 'Design' Category

Ten Software Development Myths Which Are Still Around

Saturday, November 11th, 2006

Today, I’m going to start with the bottom line: we still have a long way to go.
No, there’s nothing new about it. If you’re a regular reader of this blog, you probably know all about the misconceptions and myths the software industry suffers from. But today wasn’t any ordinary day, because today I had the […]

When YAGNI Is Confused With YRGNI

Friday, June 30th, 2006

A couple of weeks ago I wrote about The Semi Myth Of YAGNI. The message of that post was that there are cases where trying to anticipate the future evolution of the product is the best approach. In those cases, doing the simplest thing possible today without analyzing where the product is going is also […]

Elements Of Simplicity: Make Up Your Mind

Friday, June 23rd, 2006

In the previous Elements Of Simplicity post I discussed the importance of proper research to the simplicity of the design and code. Today we’ll discuss the next step toward simplicity: being decisive.
What does being decisive have to do with simplicity? See if you find this scenario familiar.
You are working on a system architecture. You’ve […]

The (Semi) Myth Of YAGNI

Saturday, June 10th, 2006

Welcome back to the “Only Part of the Story” show. In today’s episode, we are going to revisit one of the most common Agile statements, which seems to make a lot of sense. But as you can guess, it’s only part of the story.
We will do that with the help of this blog post […]

You Are Here!

Tuesday, May 30th, 2006

Here’s the deal. You find yourself in a city you do not know. How did you get there? You don’t know. It is just as if you were dropped in the middle of this foreign city by aliens. No one around seems to speak your language. Everywhere you look you see roads, buildings, cars – […]

Sharing Project Knowledge With Your Peers

Tuesday, May 2nd, 2006

My Are Your Code Reviews Effective? post raised some fine questions. The most popular question regarding Professional Reviews argued that reviews conducted by a professional mentor will not provide the benefit of knowledge sharing that other reviewing methods seem to provide.
Knowledge sharing among team members is an important goal. Having only a single developer who knows […]

The Illusion Of One Dimensional Quality

Friday, April 28th, 2006

I read a lot of articles and blog postings about software development, management and quality. My “favorite” articles are characterized by their ability to present some idea or concept with a sound voice, while blurring other important aspects of the subject. Most of them are not doing that on purpose. But the innocent reader might still get a wrong […]

Refactoring++: The Clean Sheet Approach

Tuesday, April 25th, 2006

I was working on my book yesterday. I read one of the chapters I had written and I wasn’t happy with it. It wasn’t the grammar, nor was it the phrasing. It just didn’t feel right. Something in its flow was awkward, although I couldn’t just put my finger on it.
So I started working […]

Mastering Context Sensitive Domains

Monday, April 10th, 2006

In a recent article James Shore describes Software Design as context sensitive. He rightfully claims that every practice and guideline should be questioned and adapted to the specific context we are currently working in.
This is more than true. Design is context sensitive. Context sensitivity, however, is not unique to the design domain. Many other software development activities […]

Which Is Better?

Monday, April 3rd, 2006

I often come across “Which is better?” questions in newsgroups and forums :

Which is better: C# or Java?
Which is better: Windows 2003 Server or Linux?
Which is better: using an interface or an abstract base class?

Now I have a question. Which is better: a bicycle or a car?
Well, that depends. What are you looking […]