From a small start-up to the big agency - A retrospective of more than a decade of agency life
Agency life - a term which brings about numerous results in social networks and search engines. After more than eleven years at Cocomore I came to understand the real meaning of this term. In short, working in an agency is a world of its own. Although I have to admit that my pool of comparative experiences is relatively limited and relates to university years, internship and my dissertation as well as statements of my wife, friends and clients. That is why it is time for me to get to know things from a different perspective and to leave Cocomore. Before I leave, I would like to share some of my experiences from the previous years. And who knows, maybe I will be able to contribute a follow-up of this article from a different perspective at some point.
Building our IT department
A decade is a very long time. But as always, if you are busy time flies by. And in fact I was never bored during my time at Cocomore. Working in an agency offers enough challenges, variety and momentum to prevent any kind of dullness or boredom. And I think this is exactly the reason I stayed for this long - in addition to my fantastic team. Sure, agency life can be very stressful at times as well, but this way I could learn a lot very quickly. A desk job where I'm just waiting for time to pass has always been a daunting thought to me.
My insight into agency life began at the end of 2005, when I started at Cocomore immediately after graduating with a media informatics major. At that time it was still a rather small agency with about 15 employees and some freelancers. The IT department was in the process of being set up and consisted of two permanent staff members (including me) and three student trainees. One of these students at the time is now our head of software development, by the way, and in charge of more than 20 employees. The degree of specialization was not as high as it is today either: in a small company everyone must be able to do everything for a fast and flexible work environment. My tasks were not limited to software development - I also took on administration tasks for web servers and the in-house infrastructure, supported the graphics department with image processing, and was also responsible for the design of IT projects as a consultant. In the course of time I gave up some of these tasks, and new ones were added.
With the increasing size of Cocomore and new technical possibilities, the subject areas of the agency and the employees’ fields of activity became more and more specialized - our work gained professionalism. I remember standing in the basement in front of the in-house mail server to get it running again at the beginning of my career (which I successfully did) - in times of cloud service providers and "software as a service" many IT experts will never face a situation like this. Even here at Cocomore, the mail system, which had caused the problem at that time, has been outsourced by now - and none of the colleagues have to run into the basement anymore for the regular server check-up.
There are, of course, plenty of anecdotes like this one. If, for example, I think about the last few weeks in our old building when Cocomore had grown drastically in contrast to the office space, and numerous people had to share a single DSL connection, I feel thrown back to sharing an apartment with several roommates during my studies. Later on we moved into our current building close to Frankfurt’s central station, which has an elevator, air-conditioned rooms and a dedicated leased line. So, some things have become more professional and better after the move. And while we used to occupy only one floor, we are now claiming 4 floors as well as two other locations for a current total of 160 employees.
In general, the comparison of an agency with apartment sharing is not too absurd in my opinion. You work together, you eat together, you empty and fill the dishwasher in the kitchen together and you party together (often). There were times when I saw my colleagues more than my wife. This is certainly also a factor that distinguishes working in an agency from public administration or a large corporation and owes the term "agency life" part of its meaning. Over the years it became clear to me that the almost family-like cohesion among colleagues strongly depends on the size of the company. Back in the day when there were only 15 people here, everybody knew each other and you saw each other daily in the corridor; with around 160 colleagues this is no longer the case. Although the roommate feeling from back then has been lost to some extent, the team spirit at Cocomore is still strong. This also applies across the globe: at the end of 2013, our office in Seville opened, where many of my direct colleagues from software development are based.
Technical innovations that changed my work as a developer
Over the past eleven years, work has changed not only due to the growing teams and structural changes, but also in terms of new departments and services. A lot has happened on a technological level as well. When I started at Cocomore, I was working on a central development server using FTP. In practice, this meant that all the developers who were there at the time were connected to the server and made their code adjustments there. The code was then copied from there to the test or live environment. Of course this did not always happen without complications - because if everyone is working in the same system, you have to communicate very well in order to avoid accidentally overwriting the code changes of a colleague.
Then CVS was introduced, a version management for code. Here the code of each developer was entered centrally and from there played to the different environments. It was progress, even though CVS handling was not exactly the best. But it prevented developers from interacting unintentionally. Subversion (SVN) followed, which was much better in terms of handling and offered the possibility to create development branches and thus to handle different software for different environments. Especially in the sometimes quite dynamic agency environment this was a great help. And then Git came. Actually, I cannot even imagine working with anything other than Git now. The ability to create feature-branches quickly and easily, to work decentralized and to re-assemble different development branches without any major effort has, in my opinion, revolutionized software development. And all those who still work with Subversion (if there is still anyone out there), I strongly advise to switch.
A lot has happened regarding IDEs for code editing as well. During those eleven years I have used quite a few different IDEs (if that is what you want to call all of them), from simple text editor in Windows, or vi(m) on Linux, to Eclipse, NetBeans, and PHPStorm. Like Git, I do not want to miss PHPStorm nowadays. In addition, the possibilities of software development, particularly in the area of PHP, have improved dramatically in recent years. When I think about the limited possibilities for developing at the time and what software development looks like in 2017, my decision is very much in favor of today's time. At least from the point of view of a developer not everything used to be better back in the days.
At the beginning I mentioned that I also used to take on tasks in administration at Cocomore. For a few years now we have had our own system administrators, who can do this much better than me. But I was still active in the DevOps area and responsible for deploying software or setting up MySQL replications. Here, too, a lot has changed: While in the past there were only physical servers, which were stored in a rack and could actually be touched, a lot is now regulated via virtual servers. Thanks to VMWare and Virtualbox you can easily and quickly create a new virtual environment and then throw it away immediately. And in times of Docker and the use of containers, the whole thing gets even better and faster. Never before has it been this easy to create environments and reject them. In combination with cloud service providers, a very efficient and cost-effective solution. In addition, there are many more developments, such as Jenkins, which can easily automate processes. Deployments are carried out today with one click. Previously, this required much more effort with manual procedures and checklists. If someone had told me this in 2005, I would have dismissed it as science fiction. And I am looking forward to the things yet to come.
Speaking of science fiction: During those eleven years there have been even more revolutionary upheavals. Ten years ago, for example, the smartphone made its way to the market. Before then, mobile surfing on the Internet was not really usable, especially since the trend initially went towards increasingly smaller mobile phones. I think, in 2005 I had a Nokia 3310. I could use it to make calls and write text messages on a green display. There was WAP for surfing on the internet, but that was expensive and far from today's standard. The smartphone has not only revolutionized the world for the users, but also for web development. In 2005 nobody spoke of Responsive Design. Today, almost every website is built this way, and the “mobile first” approach is very common.
Becoming part of the Drupal community
A very significant part of my work at Cocomore was also the development of Drupal. Prior to specializing in this, we had actually programmed everything ourselves. However, a new IT manager brought a breath of fresh air and the approach to fall back on already existing processes in order to be able to provide functions faster, cheaper and better. It was the obvious next step to use freely available software, which is continuously being tested and further developed by a large community - a concept that was plausible for everyone. I was involved in the decision-making process at the time and for a variety of reasons, the choice fell on Drupal. And we have not regretted this decision.
In early 2007 the 5.0 version just came out. With this new version, which still had one or another initial bugs, we decided to build a larger Web 2.0 customer portal on a Drupal basis. We had accomplished this within just three months, with an amazing functionality for that time. Because of this positive experience, the growing Drupal community, the resulting future security as well as the great flexibility of the system we decided to make Drupal our core technology. From then on, most of the projects at Cocomore have been implemented with Drupal and we have never regretted it. For about a decade we have been using Drupal not only for our customer projects, but have also actively contributed to its development. There are not many agencies in Germany that can claim this.
Cocomore enabled employees to travel to Drupal meetings all across Europe, so we could exchange information with the community. A trip to Denver, Colorado in the U.S. was part of it, too. To date, Cocomore is a very active member of the Drupal community - in both Frankfurt and Seville. I am particularly proud of my Spanish coworkers who have accomplished that the Drupal Developer Days, one of the most important Drupal events, are held in Seville this year. And a Drupal Camp in Frankfurt is in its preparation process as well.
What’s left to say…
Building the Drupal community has definitely been one of my highlights at Cocomore. There have also been many funny experiences throughout the years, such as telephone conferences with India - it takes some time getting used to the accent and mentality. The same goes for some clients. We still have a very good relationship with many of them, especially, of course, with our long standing clients. But in the case of one or the other, who have gone separate ways over time, quotes and descriptions from the website "Customers from Hell" can be applied quite well. Luckily I had only few of this sort, otherwise I would probably not have stayed with Cocomore for eleven years.
I still have a lot of stories from my time at Cocomore, which would be enough to write a book - but I might tell those rather unofficially during an after-work round of beer. In the end, I would like to focus on one thing: I started as a small developer at Cocomore and have worked my way up to lead developer and team leader, right up to being co-director of the entire software department at Cocomore. I was able to work on many (large) projects, got to know fantastic people and different nationalities. I have felt like an important part of a family in my team. I would like to wish Cocomore a successful future and use this opportunity to thank all of you who have been with me during all these years and have "endured" me for so long ;-). We will stay in touch.