Education in the workplace
As a developer, no matter how knowledgeable you are, every day you are continuously learning. A developer’s role is an ever evolving practice and this in particular is what makes the job of a developer extremely exciting. This is why I believe education in the workplace is important.
I haven’t a programming or technical background so education in the workplace is key for me to develop my technical and programming skills. I would go as far to say that almost 90% of my learning and development has been undertaken in the workplace.
As a Developer at Codeweavers we are very lucky in the sense that education and continual improvement are seen as important aspects of our job roles. To facilitate learning and progression, Codeweavers have implemented a range of processes and are continually encouraging all members of the team to look and test out new ideas. Below are some of the processes we use to promote continual improvement.
The idea is derived from the sport martial arts, whereby a skill is practiced on a regular basis to keep those skills “sharp”. In the world of programming, Dojos/Katas are generally small problems that can be used to define certain skills and techniques.Dojos/Katas are so flexible that there are endless possibilities for what can be done with them.
At Codeweavers we practice pair programming, so an exercise we have taken on in Dojos is to rotate pairs frequently. For example, a favourite Dojo of mine was based on the Mastermind game. All the developers began in pairs and were given a sample input and output. Using TDD, we found a solution that satisfied the criteria. One person from each pair would change to pair with someone else in another pair and we were given another input and output. The next time we changed pairs, the person who previously didn’t change pairs did so. The key benefits with this pairing method were that the developers always joined someone who had already completed an iteration of the code that you were joining. Additionally, Codeweavers Developers got to see several different approaches to solving the same problem.
Other Dojo exercises include ‘no talking between pairs’, that’s a fun one and forces you to write explicit code and tests. Another interesting Dojo that I have been a part of at Codeweavers was implementing Conways Game of Life without using public setters and getters, this was a real eye opener and I highly recommend you give it a try. Not only are these exercises ideal for sharpening your skills they are good for moral. These Dojo’s enable developers to tackle fun problems in interesting and engaging ways and take a break from the normal constraints and pressure of day to day programming.
These are short talks or presentations on a certain topic. Topics can range from techniques and practices to new technology. Lightning talks are ideal for ensuring everyone is sharing their knowledge with one another and are up to scratch with coding standards. Codeweavers developers are currently experimenting with a new weekly “series” of lightning talks. The first weekly series subject matter is on principles. This weeks topic was DRY and the second topic is Design Patterns which we hope to start next week. These are quick and effective ways of sharing knowledge and introducing new concepts. The topics are not limited to technical aspects either, we have completed several talks on domain knowledge.
This is a new practice for Codeweavers developers that we are currently trialling. The practice is simple， at the end of every week a developer presents some code they wrote that they are not entirely happy with. The idea is that the developer will discuss why they are not happy with the code and why they wrote it in that particular way. The rest of the developers will then suggest different approaches for how the code could be written until they have a solution.
This is a very useful practice to show ‘real world’ examples of code that could be improved and how to improve it. Another benefit of coding anonymous is it can highlight the reason why code was written in a particular way to prevent further code coming against the same issues. As of yet Codeweavers developers still need to refine the process of coding anonymous as the practice hasn’t been as successful as initially anticipated.
Books and Training
At Codeweavers we have an ever expanding library of books on a magnitude of subjects. Codeweavers developers also attend numerous conferences and talks held outside of the workplace to stay up to date in the industry and gain knowledge outside of the workplace that they can bring into Codeweavers.
These are just a few of the current techniques and practices we use, get in touch let us know what you think or feel free to share some of the techniques you use. Until next time.