August 2006 - Posts
I just attended the XP Forum that the JCSE holds every month. Topic this time around was XP Approach to Design by Morkel Theunissen, which I was very interested in as this is a problem I have experienced a couple of times... especially when trying to explain to management.
A couple of interesting ideas arose out of the conversations that followed, and numerous debates on the topic. Some people believed that you shouldn't even decide on the architecture at all before starting to develop, e.g. web/smart client, etc. I disagree with this, when you go and see the client, or get some form of user requirements, things like performance, scalability, offline availability, etc will come up which will steer you into a direction. And even though there is not such a formal design as in traditional development, when you see the requirements, you already start to think of ways to implement it, so in essence you are starting to think about a design. (Which you can always refactor as you go along)
In the project I'm working on currently we decided not to follow a strict XP approach, but rather combined aspects from XP and FDD, where FDD brings a bit more formality to the process. In a quick summary, our process is as follows:
- Gathering User Requirements: The outcome of the process is a list of features.
- Design and documentation: Our documentation consist of a central repository where developers update documents with all information sourced, programming tasks and timelines per feature.
- Development and Testing, which includes iteration planning, unit tests, coding, refactoring and code reviews.
- Deployment: After each iteration.
This is our first agile project and so far it is working very well, except for our customer who isn't always as available as one would have liked on a project like this...
To find out more about the XP Forum, contact Fazel Mayet (fazel at psybergate dot com). This forum has just been listed as the first XP group in Africa.
Article by Martin Fowler which has been quoted a couple of times during the discussion: Is Design Dead?
Came across something now which was quite funny... I dynamically add controls to my form, and I also need the option to remove them again. So at first I did this, which seemed logic as it is exactly how I add them:
foreach (Control c in this.Controls)
{
if (c.GetType() == typeof(TextBox))
{
this.Controls.Remove(c);
}
}
But this only removed every second textbox! At first I was dumbstruck, but then found out that when you remove a Control from the ControlCollection, subsequent controls are moved up to fill that space. So had to change it to this to work for all textboxes.
foreach (Control c in this.Controls)
{
if (c.GetType() == typeof(TextBox))
{
forRemoval.Add((TextBox)c);
}
}
foreach (TextBox txt in forRemoval)
this.Controls.Remove(txt);
I attended a class today at Solms Training which covered a
new course they've established: Organisational Architecture. Although it is
business oriented, I decided to go as 1. we are looking at attending some of
their other courses and 2. it sounded interesting. And it was - a lot of the
concepts can be used at a departmental level. It showed how you can use
Capability Driven Architecture to design an organisation’s architecture
according to what output you want, e.g. innovation, quality, accountability,
etc. by using proven patterns.
And I was very impressed with Dr. Fritz Solms, he knows what
he is talking about. Solid industry experience, not like other courses I’ve
attended. And although his language of choice is Java, the courses that I’m
interested in are language agnostic, e.g. the Architecture course covers J2EE,
SOA and .NET.
Decided I would give it a mention as everyone is always looking for decent training and are so often disappointed after spending a lot of money...
I just stood in SNOW for the first time in my life!!! In Woodmead, Joburg! Very very small flakes, but it was snow! Apparently the last time it snowed in Johannesburg was in 1981! 
I hope the snowflakes become bigger, then I am going home!