November 2004 - Posts
Yesterday I noticed something in Task Manager on XP. This came as a complete surprise and I couldn't believe I had it wrong for so long (or at least since Windows XP) (That was a hint to a degree).
Below is a screen shot of the Windows Task Manager in Microsoft Windows XP. Below the CPU Usage and Graph, there is another (for now XXXX) Usage and Graph. Without going to your Task Manager, what should XXXX be. After you've made your guess, go have a look to see if you're right.

Last night we had our first SA Architect braai @ Tina's place. As per typical Cape Town custom, a number of people said they'd come and then didn't pitch
. It was still great none the less.
Thanks Tina it was great. I'd also like to thank you for the washing up
. Here are some pictures I took. Can't wait to see Ruari's though. I think he took some nice ones (mostly because I'm in it ;) ).

You speak eloquently and have seemingly read every
book ever published. You are a fountain of
endless (sometimes useless) knowledge, and
never fail to impress at a party. What people love: You can answer almost any
question people ask, and have thus been
nicknamed Jeeves. What people hate: You constantly correct their
grammar and insult their paperbacks.
What Kind of Elitist Are You?brought to you by Quizilla
Tonight we had our first SA Architect meeting and I thought it was great.
Before I go on, I'd like to thank everybody that attended. It was greatly appreciated and enjoyed by myself and Tina. I hope to see all of you at the next meeting.
The meeting's topics were MSF and RUP, with me doing the MSF talk and Tina doing the RUP talk. I must use this opportunity to apologise to Tina for using most of the time during my talk. Next time she can talk first and leave me with only 10 minutes
.
Afterwards most of the attendees met for snacks, drinks and a good chat. I met some interesting people, and once again realised how much I enjoyed hearing and learning from other peoples experiences.
I really enjoyed the event and can't wait for the next one. You can find some pictures here
A while back Ed blogged about win2vnc and I decided to download it. Needless to say I thought it was pretty useful since I'm using both a PC and a laptop at the office.
Tonight though I decided to install it @ home, where I know have 2 pc's and my laptop. From left to right I have a PC1, PC2, Laptop1. I installed the VNC servers on PC1 and Laptop1 and the viewer on PC2. I then set it up so that "west" goes to PC1 and "east" to Laptop1. .... And it works brilliantly. This is one of the nifties tools I've seen in a long time.
What impressed me most is the simplicity of the idea. Basically all that happened was to take the "normal" vnc client and remove all the "screen rendering" code. Brilliant
FlexWiki has been made opensource. You can find it here
While reading up on MSF Agile, I came across their principals which included this statement.
The core idea behind MSF Agile is that the right amount of process enables people to be more productive. Too little process requires extraordinary people to do ordinary things. Too much process and extraordinary people can’t do extraordinary things.
I think this is very well put and adds to my argument as to way processes are risk management tools.
To me a software process is just another tool, and there is no such thing as the "better" process. The only purpose of a defined purpose is to try and minimise risk, i.e. to help in getting the software product delivered.
Let me first motivate why I see a software process merely as a risk management tool. I'll use RUP as an example, but it applies to all processes.
Let's look at the purpose of the various phases in RUP (and most other processes)
Inception: This is where it is decided whether something actually needs to be done. Buy in from the stake holder are required thus making sure the stake holders actually know what they want. So the risk we are trying to manage here is to make sure we build a product that will actually be used. It is no use having the best product, without any bugs delivered on time but it is of no use to the organisation.
Elaboration: During this phase the scope is analysed, and architecture is defined, a project plan is setup up and the "risks" identified. What we are really doing here is to make sure we understand the problem and guestimate how long it will take. The risk being managed is that of building something the users can use (since we can build them notepad to edit with, but what they really needed was MS word....or other way around) and determining if the time line is acceptable.
Construction: Now the system is actually built. Are there any risks to manage here? Definitely. We need to make sure the code works, that we have competent people working on the code, that we have the right number of people working on the project, that we have the correct environment for developing the project etc etc.
Transition: And then the system goes into the hands of the users. Here we are managing the risk of the users being unhappy with the system for whatever reason. Once again we can have the "perfect" product, being delivered on time and within budget, but if the user is unhappy with the system then the product will be seen as a failure. We thus have to manage the users and their expectations and feed back their needs to the development team to keep them satisfied.
And then their are iterations. Although not a phase (since it is an iteration), the idea behind iterations is to give the users/organisation something as quickly as possible to see if it satisfies their needs. If they are unhappy with a "release" then it won't be that much work "lost" and direction can be changed with minimal impact.
So, back to my original statement of there not being a "better" process.
The various processes focus on different risks that are to be managed, and some processes try to focus on all the risks.
Some processes focus on construction for example, where the process tries to make sure the code is viable and meets predefined standards. If your team consists mostly of "junior" developers, then this might be ideal for you. (Note: I'm not saying only if ....) It ensures that knowledge gets transfered from the senior developers to the junior developer and that coding problems are addressed as quickly as possible.
Other processes try to focus on all the areas, but that might be a waste of time. If you are developing software for yourself, you do not need a formal inception phase, you're the guy who wanted it so hopefully you know what you want. If your user is sitting with you while you are developing, then there doesn't have to be such a big focus on the Elaboration phase, since the user will guide the development as it goes along.
So, what is the end result. I think organisation should be aware of all the processes (or as many as possible) there are, and then use the different aspects to suite their organisation, development team and users.
At last proof that men are better drivers can be found
here
I was reading up on MSF and a thought struck me. "How often do projects fail because of the process?"
The question I asked myself was "If I had the perfect process, will all my projects be succesfull". For example, if I have a bad architecture, no matter how good the process, the project will probably still fail. Now people might say that part of the process is to QA the architecture, but unless everyone in the world gets a chance to QA the architecture and unless the architecture covers an area that has been handled (solved) before, this QA process will not guarantee a good architecture. The only thing it does do is minimise the risk of the architecture being bad or inappropriate.
This brings me to a question I'm asking on saarchitect.net. How often has the process resulted in a project being late/canned? If you have any thoughts, please go to saarchitect.net as I would like to hear from you.
I'm not an opera salesman, but I would not be ashamed if I was.
I was chatting to Tina tonight and somehow we got onto browsers. I told her about opera and I realised every time I tell someone new about it I just can't stop talking about it. So, while again using a nifty feature built into opera, I thought I'd mention one or two (or maybe even three) of the features I like most
Feature 1: F8 - By pressing F8 you go directly to the URL entry field. This is a big times aver
Feature 2: Shortcuts - For a lack of a better word. This is not like IE favourites. After you press F8 to go to the url entry field, you can type "g the forgotten" to search for "the forgotten" on google or "z applied architecture" to search for books with "applied architecture" in the title at amazon. This rocks
Feature 3: One of its coolest features. Its caching works. Let's say you loaded a couple of web pages (opera has MDI) but you don't get time to read them all. You then shutdown opera or your pc (especially if you have a laptop). Later you restart opera (without being connected to the Internet) and opera will actually retrieve the pages you viewed from the cache so that you can continue reading it. It works brilliantly.
That's all the features I'd like to mention for now. Obviously it had bookmarks that is so far advanced from ie's favourites that you can't actually compare them.
If you have a chance, go and download a trial version at http://www.opera.com
PS. Opera is not perfect and there are some sites that cannot be viewed in opera, but generally I find I only need to have to use ie about (on average) twice a month because of a page opera cannot display.