Skip to content

.NET Architecture & Development

The Zen and Art of Technical Leadership and Digesting Spaghetti Code

Archive

Category: Uncategorized

This is my first mobile post. That is, it is completely written on my mobile.
And – more important – from now on you can read it using a mobile reader!

Yes, my nerdy friends. I am talking about refactoring.

Refactoring is “a disciplined way to restructure code”, undertaken in order to improve some of the non-functional attributes of the software.

The problem with refactoring is that it is a nerdy thing. No non-technical person on earth will ever ask you: please, will you improve some non-functional attributes for me? Please?

 

It just will not happen!

 

You have to cloak it somehow in an urgent issue or some hot requirement. This, your customer will understand.

 

Your customer wants a modern GUI? In fact, she asks for refactoring.

Your customer complains about slowness of the software? Suggest refactoring!

 

However, never pro-actively suggest refactoring. People could think that you entered play time.

As you probably will know: HTLM5 is already faantastic and will be even more  fantaaastic in the future. And if you didn’t know this, you know it right now because I tell it you right here and right now.

 

Microsoft is also committed to HTML5. Of course, they want to sell and push IE9.

 

HTML5Nevertheless, HTML5 probably will be the next hype killer technology. So, in the unlikely event that you can understand Dutch you should listen and see for your self in this podcast.

 

In fact, there are people that believe that HTML5 is so promising that it probably will blow Silverlight away soon. Thus, that means that Silverlight will be doomed. There are also people in this non virtual world who believe that Silverlight is WPF vNext, thus WPF will also be dead (soon). On first glance, you could think this is some kind of domino effect. A cascading delete, so to speak.

 

Lastly, there are also people that are afraid to abandon MFC because of this doom say. Why should we invest in new technology that is doomed to be dead in the (near) future. Sounds feasible, right?

 

MFC is about 20 years old. Can you believe that there are people who are afraid of abandon MFC? Can you believe that there are people that do not want to invest in new technology as young as WPF?

 

Yes, we can!

Maybe this sounds a little weird to the innovators and early adaptors amongst us, but not to the late majority and laggards (according to the innovation theory of Rogers). Laggards only will embrace new technology when they are forced to. That pops up a new question: how-to get inertia and laggards in motion.

 

Maybe we should investigate that in the near future!

usabilityUsability is not that difficult to implement. Not difficult at all. Now I am thinking about it, I find it very impressive how some developers sometimes can create something that is so not usable.

 

It is so easy! The only thing you have to do is make sure that you don’t make the user have to think about it how to accomplish a certain task with your software. This maybe sound easy, but is very hard.

 

One problem is: when you are designing your software the answer is already in your mind. That makes you a biased thinker. You think that it is obvious to find your way in the software.

 

However, when you start with the right answer in mind, your have the wrong starting point for usability.

 

“Move the mouse to the left upper part of the screen.” If you give this instruction to a novice, you would not expect that the user lift up the mouse, moves it towards the monitor and touches the screen. However, some people with absolutely no experience with computers do that.

 

Another problem is: while developing functionality, we already have a certain not so novice user in mind.

 

We think ourselves that we have in mind a picture of a novice user, but in fact that is not completely true. We already know how to do the task, we find it easy to perform. Of course, we implemented it.

 

Therefore we cannot imagine someone who doesn’t. And to be honest, most of the times we just think that the user is plain stupid. However, your user is not stupid. Not at all. The user only is not used to your software, this footprint of your brain. People think differently. Users are not all nerds.

 

So, please think out-of-the-skull-cap and take your usability serious!