December 17th, 2009 • 1 Comment
It doesn’t mater which programming language you are using Java, Python, or something else. Writing cool kick-ass Unittests is a must. So here are some thoughts and Ideas:
- Design first & design to test. But do not add extra methods juts for testing!
- Always write your unittest first! It will start small (jsut checking the public methods and eventually grow with your code)
- Design and spend time writing test environments with Mocks etc.
- Each method should be at least tested by 3 test methods in your unittest:
- test for success – Test if the method behaves correctly when given parameters in range
- test for failure – Test if the method behaves correctly when given invalid parameters, wrong environment etc.
- test for sanity – Test with a set of input parameters and compare results with expected output parameters.
Next to this I would encourage all developers to use Agile development methodologies like Scrum or similar. And also: please tweet and blog to give your users an insight of what is going on with your product/software.
Blog post is also available here
August 31st, 2009 • Comments Off on The advantage of Twitter
Twitter gives you an unique chance to show your customers that your are actually improving your product. Twittering that bugs are fixed an when new features are added, tested and released helps keeping the noise down in forums etc. Also (future) customers can retweet or suggest additions. So to all management: Let your software developers twitter! It will help your product!
May 20th, 2009 • Comments Off on Modularity in Software and Space
I am a big fan of modular software. It allows the reuse of software parts and clear designs. Especially the later one. Think of a Object Orientated Software project where 100 of classes can just call each other – We invented OO programming for more cleaner designs and now the dependency graphs look horrible (have a look here), because every class depends on other classes and no clear boundaries are available. With the help of modular design it is possible to clean it up. But it needs to be enforced (see also here). If you say a programmer you should do it, he won’t. Therefore I suggest using OSGi! (But OSGi can become a mess to: 1 2)
Now I discovered a project for modularity in space and satellite design. With CubeSat (10cm x 10cm x 10xm) cubes are used as modules for satellites. It is therefor possible to create 1U, 2U (two cubes) and XU (X cubes) big satellites. Great idea! And it seems to work. Only the reuseability does not seem to work 🙂
Also great it the reduction of cost by using this satellite model. This is also true when using modular designs in software. You can run successful projects within time and resource usage with the right planning, tools and a modular design.
Other sites about the CubeSat:
http://www.cubesatkit.com/ – yes you can even build your one 🙂