December 17th, 2009 • 1 Comment
It doesn’t mater which programming language you are using Java, Python, or something else. Writing cool kick-ass Unit-tests is a must. So here are some thoughts and Ideas:
- Design first & design to test. But do not add extra methods just for testing!
- Always write your unit-test first; It will start small (just 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 unit-test:
- test for success – Test if the method behaves correctly when given parameters in range; this is were the Test-Driven-Development starts.
- 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
Categories: Personal, Work • Tags: Software Engineering • Permalink for this article
September 19th, 2009 • Comments Off on Remote Component Environment
While I worked for the German Aerospace Center (DLR) I was in the lead of a project team working on the SESIS project. Definitely one of the most interesting projects I ever head. During this time I was in charge of the development of the Reconfigurable Computing Environment (RCE). Since then I moved on and started to work for Sun. But the project has moved on – And I am so happy to see it grow more mature! RCE has now been released under a open source license and been renamed to Remote Component Environment! Great stuff – Two days ago it hit version 1.4.0 – My congratulations!
Categories: Personal, Work • Tags: RCE, Software Engineering • Permalink for this article
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!
Categories: Personal, Work • Tags: Software Engineering, Twitter • Permalink for this article
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://cubesat.atl.calpoly.edu
http://www.cubesatkit.com/ – yes you can even build your one 🙂
Categories: Personal • Tags: Software Engineering • Permalink for this article
May 12th, 2009 • Comments Off on How do you look when mergin fails?
Great blog post, which I should definetly try out sometime…Or it should even be a mandatory hook script!
http://andialbrecht.wordpress.com/2009/05/09/when-merging-fails/
Categories: Work • Tags: Software Engineering • Permalink for this article