No Free Lunch

At the start of the year every team member has to thoroughly think through his or her part before starting to actually make it. Different concepts for realizing the part have to be developed, weighted and eventually crossed off as not feasible. A meeting with elder team members of previous years helps you in this process as they have faced the same problems and probably even more. They ask the difficult questions needed for thinking about your part from every possible angle and to discover which aspects you might need to reconsider.

As I'm a Software Engineer, my task was to consider the different options regarding software. Since the Software Department decided that this year we want to have software with the main focus on reliability, special attention was paid to this when comparing our options. A big question this year is whether we would like to use a new real time operating system or not. This could potentially enable us to really focus on the software needed for the logic to make the car drive instead of bookkeeping and writing code that has to be included in order for the program to work but has nothing to do with the actual logic. It also could help us test our software piece by piece and as a whole system. Last but not least could it build and test all the code automatically every time a new change is made. So why don't we use this already? As always in engineering every advantage has it's corresponding disadvantages, or as we say in Computer Science: "There is no such thing as free lunch". Meaning that you cannot change a system to improve something without losing something else. So what are those disadvantages then? Well, for starters, as with every new thing one has to figure out how it works, which takes some time. Also this new system might not fit perfectly into your current project straight away. As this was the case we had to make some adjustments in order to make it work. Lastly, using something new means that most of the time the old system cannot be used anymore as a replacement in case the new thing breaks down.

Although the final decision has yet to be made, I have learned a lot already about the software of the car and about what makes a racing car go fast in general. Hopefully, well I'm actually quite sure, my fellow engineers feel the same way and we are going to build a well-defined and thoroughly thought through car which will win the competition and that will fulfil the engineers with proud when they talk about it.