Last weekend, more than 80 developers, designers, bloggers and shop owners participated in the 6. BarCamp in Kiel, Germany. They all joined different lectures and discussed several topics. This year, the focus was laid on technology, media and education. Read on for a short review on the topics.
What is a BarCamp?
A BarCamp is an international conference with only user-generated lectures and speeches and no set agenda in advance. Every person interested can join for free and take part in interesting discussions. The main topics are technology and media, but most of the BarCamps focus on special subjects like medicine or social science. If you’re interested in participating in a BarCamp, search online and feel free to join.
LECTURE: Clean code and testing
One of the most interesting topics for developers is the challenge to write complex code without losing the focus on a clean and structured architecture. Additionally, this code should be tested and work properly after having changed some lines. Several tools help to ensure this.
But how tidy should source code be without losing focus in a fast-weight development? And which tools can help to optimise code and test it regularly?
A good base can be given by the continuous integration tool Jenkins. It’s open source and helps to develop any component to a programme. Other important software comes with programming in Java. The tool FindBugs helps to find errors in code before the software crashes. With [JUnit][junit] you can test your software. Checkstyle is a nice feature to define developing standards like numbers of chars per line. All this software is available as a plugin for the IDE Eclipse.
Good books on code standards are: “Clean Code” by Robert Martin or “Writing Effectively with Legacy Code” by Michael Feathers. The question about clean code is: how well should the code quality be in relation to the quantity?
LECTURE: The mBot
A common question is, how early and deep should the education of information technology start at school. School lessons in computer science give the wrong overview on planning, developing and understanding software principles and their ideas. To educate younger (and maybe also older) people on software development, the Chinese company Makeblock created a robot called “mBot”. These projects support children to learn simple software algorithms. They use the graphic user interface [“Scratch”][scratch] to let the robot move, see and react with the surrounding.
There are several other educational concepts for learning informatics at school. The company Lego hosts the First Lego League competition every year, the network Roberta is closely connected with schools to implement this.
LECTURE: Gamification in projects
One of the lectures was related to team and project organisation, e.g. how to motivate teams over a long time in discouraging projects.
A concept for the long-time motivation is the Gamification. Currently, Gamification is present in customer software. Software allures with ranking lists and virtual goods. Is it possible to adapt this concept to the team structure? An interesting concept like ClassCraft shows that this work. The idea is to motivate younger people with role-playing games. The student gets bonuses for example, one solved question in the next math test for helping other students and doing social things.
If Gamification should work, two ideas should be considered: the person taking part in the Gamification should not see the real aim, i.e. carrying out a task. And they should not be aware of all the “rules”. They should not see what is needed to win the game. Some companies try concepts like presenting a list of unpopular tasks. If an employee finishes a defined number of theses tasks, they will receive a day of vacation. Also, an interesting idea is to bet on a team related number after a special time period. Some teams in companies bet on the number of tasks solved after a month.