Saturday, 16 January 2010

Technical Debt


I first came across the concept of Technical Debt whilst reading a recent copy of the Microsoft Developers Journal called the MSDN Magazine. It struck a chord, as it's a concept that all software developers are familiar with.

In every software system, there are areas of the code that are difficult to change, that strike fear into us when we are required to change them. Those areas of the code that make you think "Oh please no". They are difficult to modify or extend, and thus working in those areas are prone to making the system less stable. They will also generally require a greater degree of regression testing to ensure that you have not inadvertently modified other areas of the system.

The phrase was initially coined by Ward Cunningham, and uses the metaphor of finance. There are certain kinds of debt that are cheap to repay, where the interest rates are low and repayments incur little cost. Then there are those kinds of debt that are difficult to repay as the repayments are high. A credit card would be a good example of the latter, where their high interest rates make them an option that should only be considered as a last resort.

The major downside of Technical Debt is that is has an associated cost. Being difficult to modify will lead to longer development lead times. It will require additional testing, particularly regression testing. All of this extra time and effort involves greater cost.

It also ensures that the software system in which the Technical Debt finds itself will be less likely to be able to respond to customer changes, or fluctuations in demand or functionality. If there is a swing in customer demand, and the system needs to change to be able to respond to this swing, it will require far greater resources to make those changes in a software system which has a higher degree of Technical Debt.

I remember whilst working as a Senior Software Engineer at the Kettering based software house Pegasus, one of my colleagues telling me how he disliked modifying certain areas of the underlying Framework code, as it was like "playing Kerplunk with the code". What he was referring to of course, was that the code was so interlocked and tightly integrated, that making a change in one area of the code, would often result in changes being made inadvertently in other areas of the code. This would lead to longer development / testing cycles, and would be fraught with frustration.

I have already discussed in previous articles how to prevent Technical Debt through the use of Design and Design Patterns. I won't bother covering how to repay back already existing Technical Debt, as this too has been covered in an excellent MSDN Magazine article.

Technical Debt is a simple concept that every software developer both understands and can sympathise with. If left unchecked, it can lead to significant cost implications, so it is worthwhile investigating and taking the time to remove it. There is a strong financial incentive to make the case for removing Technical Debt, and this should be proposed as a project as early as is convenient.

Sunday, 10 January 2010

Freedom of Speech should be respected!


One of the most powerful rights we have as a democratic society is the right to Freedom of Speech. That we can voice our opinions openly and freely, and without the fear of reprisal or prejudice.

This is a right that many brave men and women have fought and died for over the generations.

So where does that leave the intended march proposed by extremist Muslim group Islam4UK, who have stated that they intend to march through Wooton Bassett to demonstrate against the Iraq war.

As we saw last year in Luton when the service men and women returned from their tour of duty, this consisted of placards bearing such offensive phrases as "baby killers", "rapists" and "Nazis".

While everyone has the right to Freedom of Speech within a liberal, democratic society, this needs to be tempered with responsibility.

While I have no issue with people voicing their opinions, no matter how extreme they may be to my own views, I think that Islam4UK's language is tantamount to incitement to hatred. I am quite sure if a group of hostile citizens gathered with similar placards denouncing the Prophet Allah, we would be very quickly locked up, and accused of being racist.

If Freedom of Speech is to have credibility, it needs to be granted in an even handed manner, so the same right is granted equally and without bias to every single citizen. I feel that in the case of Islam4UK, that they have been granted special treatment because UK citizens are so afraid of being branded racist, or being guilty of causing offence (sic).

If it is acceptable for an extremist Muslim organisation to brand our service men and women as Nazis, why is it not acceptable for me (or anyone else for that matter) to carry equally offensive placards about the Prophet Allah?

It is Britain's obsession with political correctness that means organisations such as Islam4UK will always be granted the right to be offensive, with little fear from the authorities.

Organising the march through Wooton Bassett is a cynical attempt to give them maximum publicity, and to cause as much offence as possible.

There is the argument of course, that by letting them have their march, they will reveal themselves for the vile, bigoted extremists that all decent people know them to be. But if we already know that they are vile and bigoted, then what do we gain from letting them have their march? We don't learn anything we didn't already know before.

I am firmly in favour of the right to Freedom of Speech, but that is a right that should be respected. Much blood has been spilled throughout our history to give each of us this right, and that should always be remembered!

Wednesday, 6 January 2010

All the best for 2010!


I hope everyone had a very Merry Christmas and a Happy New Year. I did for the most part, spending much of the festive break with my family.

If you made any New Year resolutions, I hope you keep them. Personally, I'm the sort of person who tends to do things as they arise, rather than postpone them until the New Year. However, if it works for you, then so be it.

I do believe that having goals and things to aim for in life are a good thing. I certainly have my fair share of those, and hope to see them become reality during 2010.

It's always a little bit sad putting the Christmas decorations away, as it signifies the end of another year, and that it will be another year before you get them out of the attic again. All the festive drinking, eating and general frivolity is now well and truly over. Monday signified back to business, and was a bit of a shock to the system.

All the best for 2010!

Monday, 4 January 2010

Are atheists and theists really so different?


Most people who know me, know my religious views, or my lack of them anyway. I have never shied away from my atheism - in fact I have embraced it and written about my views several times on this very blog.

However, I would like to take the opportunity to point out our similarities for a change. While my views may differ from a theist in terms of religion, I genuinely do not think that my views differ that much in terms of being a human being.

Human beings are capable of feeling and expressing love, desire, lust, despair, hope, failure, happiness and tragedy. Your religious views are immaterial in such respects, and the emotions I have just described transcend all religions. Such commonality of emotions bind us, and bring us together in ways that are greater than each of us individually.

Religious faith - or lack of religious faith - does not prevent us from being human, and feeling and experiencing the same emotions as our fellow human beings.

Atheists are often accused of being immoral because we lack the moral framework of formal religions. My own view is that humanity transcends religion, and that we all share the same emotions as everybody else. Being an atheist does not prevent me from feeling the same emotions as a theist.

At the end of the day, we are all humans, and share the traits that make us human. Religion should never be a barrier to sharing human experiences with one another. While I may differ from a theist on their religious views, I would hope that we could still get along, as fundamentally we are human beings, and share all the traits that come with that.