The software is Still for the Customer

Whenever you are developing a software, don’t forget the most important thing and is that the project is going to be delivered at some point to your customer.

But let’s take a step back and think of the planning on a high level view.

Like ingridients, there are several ways of developing sofware systems and there is no “correct” way of doing so. You need to find out what the project is going to need and choose the best criteria for development. Here are a few:

  • Use Case Driven Development. This kind of development is about using the use cases as a way of blueprint. You create good and usefull use cases, and you grab one by one and start coding that scenario. By the end you should have a complete system if the use cases were well made. This approach is commonly used when having lots and lots of scenarios and processes.

 

  • Feature Development. Focues on the functionality of the system or features, similar to the use cases, you grab your feature and start working on it until it is done. After you tackle all of them, your system will be complete. It works best when the features are not linked to one another as you need to finish one to start another and the connectivity may be lost.

 

  • Test Development. This is “think before you act” kind of development, you create the testing before the actual coding (tricky, right?). How I’m going to test something before actually making it? Well, if you design the test first and how to succesfully complete them, you can design and code a system that succesfully runs through the test without worrying if how the testing will come up. Remember to design the test according to the requirements of the client.

 

  • Programming by contract. This is not a contract you sign and get paid. More freedom is given to the programmer as the system is already built and it is assumed both parties how to use the system. Errors and exceptions are handled by the party that aquire the system.

 

  • Defensive Programming. Almost complete opposite of contract. This time you handle every exception and error the system may throw before you launch it the public. Still it is assumed both parties know how to use the system.

Leave a comment