Skip to main content

Command Palette

Search for a command to run...

Aaaahh…Agile.

Updated
2 min read
Aaaahh…Agile.

I don’t know if I’ve ever told you, but I am a big fan of unit testing. Especially with Nunit and a little util called TestDriven.Net

In my opinion if you’re using Object Orientated Programming, then unit testing is a must. Unit testing using an automated unit testing framework is one of the cornerstones of Extreme Programming(XP).
I recommend reading more about Extreme programming, it is a really neat way to develop applications without the need for gigantic specs and is a breath of fresh air from the Waterfall model. Now, I’m not saying the one is better than the other, but what I do not like about the Waterfall approach is the fact there is not a steady flow of feedback from the users, thus you might be working for months before you receive feedback from a user about a feature, only to hear that it was not exactly what they expected.

I’m currently using a mixture of XP and Feature Driven Development,where I agree a certain number of features with the client and we use the approach of first finishing one feature, ensuring it works and then only moving onto the next feature. This is particularly useful when you, like me currently, have to rewrite an old legacy system, where the users already have a clear picture of what features they require. Being on-site at the client is proving to be very valuable, this allows me to talk directly to all the users involved and get a clear understanding of their unique requirements.

Another fantastic advantage of being on-site is the immediate feedback you receive from users, enabling you to adapt and change the application on the go, rather than working on the project for a month and then changing it.

I know a lot of development companies cannot have a developer on-site at their clients for projects, but another alternative is to have the developer work more closely with the business analyst in gathering the requirement from the users. This will eliminate a lot of 2nd hand communication, where a lot of information is due to get lost, and will empower the developer to better understand the users’ needs and also put a human face to the application i.e. "I’m writing this application for John, that’ll really appreciate it if this app can enable him to invoice the client automatically"

Agile development is a "relatively" new approach software development, but something I highly recommend reading up on and giving it a go on a project. Try it once on a smaller project, and see how much less painful it’ll be.

More from this blog

M

Mythical Man Moth

80 posts

Hi, I’m Pieter van der Westhuizen. I'm a professional freelance web & mobile developer from South Africa that has been code slinging for more than 23 years. https://youtube.com/shorts/aCCKAnDNrzM