Wednesday, January 24, 2007

Change, not just the silver in your pocket

Change is not just the silver coinage in your pocket. Change is all about how you react to the world around you. We live in an ever-changing world, always moving, sometimes forward and sometimes back - but ALWAYS moving. Some people seem to thrive on this ever-changing environment eager not only to keep up but also to change along with the world - to learn, to grow, to expand with the world and its many MANY changes. Why is this so important?

Change is something that seems to happen with or without people involved. The world is spinning and things are changing without any effort from me right now at this very instant. This is important to note in terms of people because there seems to be a class of folk who stick too closely to the way things are 'Right now'. This class of people becomes mired in thinking about how things are rather then how things could be. They easily get caught up in the current and in some respects due to that are missing the boat so to speak. They are missing the boat because this group of people seems to always cling to the past and to a routine without accepting or at least acknowledging a modicum of change in their day-to-day, month to month, year-to-year life. What is the draw back to thinking like this - to being someone who doesn't look or acknowledge change? The draw back is the rigidity that it brings to a personality. The inability to accept new things, new people and new processes is the draw back.

I have long thought that being on this planet is all about learning and expanding my personality as well as my spirituality. I see an inability of people to accept change as not acknowledging a level of lifetime learning. I look at it as being 'stuck' with an almost 100% inability to move forward. Now I know that some people are saying that it is hard enough just to live in the 'now' or to live in the moment. Granted the world is moving much faster these days and things are operating at a much quicker pace now then they were just 10 years ago. I get that and I certainly feel that same way. I do not believe however that this gives people a free pass to stand still and not grow and learn as things change. Living "in the moment" means a little more then just being present - it means walking away from the moment with something more then when it started. It means accepting some small change or large change that occurred as a result of that singular moment. Do not let yourself fall into a rut - Strive to make your world what you want it to be. If you already accept change easily then put energy into education, learning - and expanding. Help people embrace change rather then fear it. If you are one of the people that gets stuck then try to strive to listen - there is probably someone who does not fear the change trying to help you to move forward and expand your knowledge. There is probably someone standing next to you right now with their hand outstretched inviting you a hand out of your rut.

Wednesday, January 17, 2007

Treating people with 'respect' - id10t errors.

I recently read a post that has peeked my interest. Dan over at It ought to be simple posted a write up on IT and how pretensious IT people can be when it comes to dealing with users (or if you are going to be pretensious lusers).

I have to admit that I tend to think he is hitting the nail on the head with this one. In the world you can run into a great number of people some of them good and some of them bad. Some of these people that you run into are people who will have some impact on you and your life. Be they bosses, wives, etc. this second group of people is usually where I classify the users of IT. They have some impact on the life of an IT person in the sense that their feed back and questions and comments more often then not turn into bugs, requirements or reprimands for doing things BADLY in IT.

This doesn't however give IT the right of way to call them idiots or to beraid them when they do something in the system that the system let them do that they really shouldn't be doing. This highlights the problem at its heart for me. IT is really about servicing the users at its core. These users are really what keeps us all in jobs and in business doing what we love, yet at every single turn we treat them as lower then low. This in turn means that IT is not acting professionally as Dan points out. More specifically that IT is not accepting responsibility for the things it does/develops. IT folk attempt to protect themselves by saying things like "That is the way the requirements were defined, blah blah blah" rather then standing up and saying that they didn't think that a given requirement was a good idea and fighting for it to get changed before it gets implemented. If it does get implemented taking some level of responsiblity for it being that way rather then foisting that burden off on someone else. We try to find every way in which to coat ourselves in Teflon and make comments about how we do our job slide right off. This ignors our part and makes us as bad as the people we are denegrating in the first place.

Complacence is death: If we sit idly by and watch thing happen and poke fun at them while we do we really are no better then a good portion of the world watching the Nazis condem an entire race to death. While that might seem to be a harsh comparison - think about it, by calling the users idiots and demeaning them making them part of a "lessor" class and IT as part of a "higher" class we are setting ourselves up for a comparison as such. If that comparison is too strong for you, how about IT is white and users are black? Does that help?

Where we go from here: In the end we have to treat those people like we would want to be treated. I too have worked on both sides of the fence and been in IT as a developer of systems and software and as a user of a different group of IT in terms of machines and infrastructure. We all have a choice of helping, and accepting responsibility in some part for how things are, and like Dan says looking at each call into the IT department as a chance to make something better... to improve the interaction between the users and IT rather then denegrate them and make them into something they are not.

Tuesday, January 2, 2007

UI Refactoring

There has been a bit of discussion on the topic of simplicity lately. Joel has talked about simplicity in terms of features and the simplicity of not having too many choices to make when taking/making a simple action in a user interface (or at the very least taking/making what on the surface 'seems' like a simple action). This topic of Joel's touched off a response in the form of an explanation from the MS camp that he was lambasting. He also recently expounded on elegance and what makes something elegant. I believe that these two things are intertwined and have some serious impact on certain people when it comes down to what makes up a good user interface design.

Programming as we already know is hard but the user interface should be easy right? I mean seriously we all use them every single day and we know what doesn't work from what does right? One might take those questions to mean that I personally think that every single person who has ever touched a program in their life should be able to design an effective interface from the ground up. Most programmers know from experience that this is not the case. However - back to our original topics of simplicity and elegance.

Joel rightly points out the interfaces should be simple. This means easy - or almost intuitive to use. This does not mean that the interface should not contain as many useful features as it can support. What it means instead is that when you go to do something with your whizzbang new toy, gadget, program, computer thing... it should work in a straight forward and intuitive manner. NOW - it is that last bit "intuitive" that is the hard part about software UI design. This is even more true when you consider that UI design, like software programming, suffers from some of the very same problems. The Overall UI design picture can get bit rot and get old over time. So the original SIMPLE and ELEGANT design (i.e. it just works and it does just what it is supposed to do) can become cluttered, annoying, and just plain bad the longer it sits out there. This "bit rot" effect can be exacerbated by not giving the design and new features of the UI a good thought process when a group of programmers is attempting to add new features.

In the programming world we combat this problem by continuously refactoring the code. This is not the one liner spot refactoring that can be done from within your typical IDE. Nor is this the type of program refactoring that consists of variable renaming for the readers sake - THIS type of refactoring is a critical look at what a program was for, what it is for now, and what it will be for a few days/weeks/months from now. This allows the programmer to mold the program like clay to match the needs as they expand. What appears to be missing in most software shops is a similar process for the user interface. User interface deserves the same attention as "does the code do what it is supposed to" - why you might ask? the answer should be simple, the interface is what people see first - it is the first impression, the first experience with what and who you are if your job is creating a user interface to ANYTHING that has to drive underlying software processes. More importantly the simplicity and elegance of solution need to be inbred into both the software and its user interface and while a single design may have been just fine when you started it always deserves to be revisited. UI design like software should be ever changing or at the very least being continuously reviewed to make sure that it still meets the needs, is simple and elegant to perform the job at hand. IF the UI you have now is neither of those things - you may be missing, at the very least, half of the software development equation.