Wie es ist, bei Wikimedia Deutschland im Bereich Software Entwicklung Praktikant zu sein, erzählt uns Andrew Pekarek-Kostka in diesem Gastbeitrag auf Englisch. Andrew berichtet über seine Vorstellungen vor dem Praktikum, der Arbeitsatmosphäre, wie er sich an unsere Prozesse der agilen Softwareentwicklung angepasst hat und an welchen Wikiprojekten er arbeitete.
Before starting at Wikimedia Deutschland e. V., being a 17-year old with no previous work experience, I was under the impression that working for such a big organization would be similar to the way a typical work day was portrayed in the famed 90s movie “Office Space”: boring, dull, and uninteresting. However, when I walked into the office for the first time the contrast between the rather dark and grim weather in Berlin and the ecstatic attitude of the office was huge. The overall working atmosphere is welcoming and spirited with a perfect balance of fun and professionalism. It was a positive opposite of what I was expecting.
My first few days at Wikimedia were spent going through a process called “onboarding” which enabled me to get ready for my following 7 weeks. This consisted of prepping my machine, my software, and getting all my accounts setup along with a quick tour which gave me the opportunity to briefly meet most of my colleagues from all departments. If I had any questions or needs, I always knew I could ask one of my colleagues for assistance. Following the setup came a series of meetings through which I gained valuable insight into the various different departments and simultaneously meet the many interesting people who, together make Wikimedia Deutschland possible.
One critical meeting set a milestone for me since it introduced me to one of the most used software development processes, called “Agile Development”. This is the process by which most software is developed and maintained in large organizations. Agile Development is a process consisting of time frames of typically two weeks called sprints, within these two weeks the tasks chosen beforehand should optimally be completed. It is essentially a more advanced “To Do” list specifically used in software development. Before, during, and after the sprint are designated meetings whose purpose is for feedback, planning, analysis, etc.. Other than these few larger meetings the team meets every day for a brief ~15 minute meeting to keep everyone in the team up to date on what they are working, has been done, needs to be checked/reviewed, and what will be done. In the end I am quite certain that I will be seeing more of Agile Development in my future careers.
Becoming a Wikimedia Developer
As the second week came rolling along I was finally ready enough to jump in and start actively developing. I ended up joining a team which was orientated towards fulfilling community requests [TCB], one of two development teams, and was quickly claiming and completing tasks before the designated sprint has ended. Right from the get-go I was able to determine what my most obvious weakness was, coding conventions. Working as an independent developer allowed me to use any coding conventions I wanted to, however, when working in teams a certain style is required. The comment section for reviewing my first code submission was overflowing with coding conventions comments. My issue with coding conventions subsided quite quickly once I got the hang of it and my overall code quality increased over the duration of my internship.
What really impressed me was the level of code quality that was maintained. The process of review can definitely be the most painful no matter how much (or little) code was written. For example I wrote a patch with three lines of code which after being submitted started a large comment discussion debating the efficiency of these three lines. The review process terminates after the code is at least approved by one other person which then results in the code being set free and merged into the existing code.
If you are ever stuck or can’t seem to get further it is great knowing you have a whole team of people you can collaborate with, allowing for solving even complex problems and better efficiency. At the same time it is also a great feeling to then return the favor when the possibility to arises.
Some of the projects that I have worked on during my stay include WikiLovesDownloads, WikiLovesMonuments, Lizenzverweisgenerator, and Datentankstelle. WikiLovesDownloads can be found here: https://tools.wmflabs.org/wikilovesdownloads/. This tool will be used for downloading different sets of images from Wikicommons which will then be distributed to juries in a competition. For WikiLovesMonuments I developed a python bot which was used to analyze different table structures within various WikiLovesMonuments articles. Lizenzverweisgenerator can be found here: https://tools.wmflabs.org/file-reuse/. This tool can be used to generate the proper license for images found on Wikicommons. Finally, Datentankstelle is a used fuel dispenser houses a computer to store open source files which can be retrieved by connecting a machine to the dispenser via multiple different interfaces.
Wikimedia’s largest European office is located in an amazing city, which never fails to accommodate you. Located only one single station away from Potsdamer Platz it can also be said that it is quite central.
Looking back I consider myself very fortunate to have had the opportunity to work full time at Wikimedia for the past two months. This milestone has undoubtedly allowed me to garner real world experience through working for such an immensely popular software company. It truly enriched my knowledge in the field and I finally feel that I can now officially consider myself a software developer/engineer. What I have gained includes but is not limited to working in teams, using agile development, undertaking new challenges, constantly improving, meeting deadlines, and more. I would definitely want to continue working at Wikimedia, however completing High School and studying towards a University degree does not leave much time in the day to be able to work full-time. I hope to continue as a volunteer from here on forward and I am very proud to be able to call myself a Wikimedia alumnus.
I now am beginning my “off boarding” process, saying farewell and thank you to all my colleagues, especially the team I have been working with for the past eight weeks.
– Software Developer at Wikimedia Deutschland e. V., August 2015