So when you are a programmer life is good. You can kind of work from where ever you want (home/office/nature ..), constantly get to work on new and exciting stuff (well if you want that is) and you can choose from an entire planet offering you jobs that by and large pay pretty well. Personally I have been additionally very lucky in having found Liip. Now this sentence sounds a lot like the beginning of a note on my immediate departure from Liip, where I thank them and then state that I needed a new challenge lala. However this blog post isn't about making a decision to leave Liip public. Its about me trying to figure out what I want to do in the future. I am very certain that there is no other web agency on the planet I would rather work for than Liip.
So what is this all about? At Liip I get all the freedom to work on OSS projects that I want. Actually I have turned down various job offers over the past years that would have allowed me to work on OSS full time, but this isn't what I want. I love working on OSS, but I also love working on real world client needs. Figuring out what kind of challenges they have and identifying the right patterns to put into code. So as much as I am exciting about the potential for reshaping the internet (because the internet for a large part is PHP based CMS's) with PHPCR, I wouldn't want to do it outside of the context of real world client projects.
I have been with Liip now for over 4 years and I was very concerned about our growth in this period going from less than 30 to over 70 in this time frame. To my surprise Liip internally still feels like a place where anyone can affect the internal processes if they want to. This I never thought would be possible in an organization with 30+ people. The goal of this growth was getting larger clients with bigger more high profile projects that allow us to really push what has been done before. Like for example what we have done for a Swiss TV station where we have build a tight integration between a TV channel and social media at an unparalleled level. But we have not yet really figured out how to deal with such clients in a way that retains this attitude of trust and collaboration that I so much appreciated when I first started working for clients in Switzerland. Here it seemed to me like quality is still the focus rather than constant fighting over contract details. The entire rest of Europe/world seems to only focus on price because everybody expects to get screwed on everything anyway.
However, at these larger swiss clients we are actually facing an entirely new challenge: politics. Of course there was some of this before. Actually we have had big clients before, but now we have big clients where we are doing mission critical projects and so suddenly our projects are at the center of attention in the respective organizations. The end result seems to be that instead of working together with the client there are zillions of "back seat product owners" meddling, lots of people seeing an opportunity to climb the latter or just fortifying their position by making sure they line up enough fall guys. At any rate we are not collaborating anymore, we are now mostly just trying to navigate a mine field.
So what does this mean for me? Liip either A) needs to figure out how to deal with this kind of politics or B) we need to move away from taking clients where this happens (which also means being able to identify such clients before we sign contracts). I must note option C) as well which would be to try and fix this politics from happening, but that seems kind of unrealistic. Question for A) is if we want to have people working at Liip that know how to play politics. So maybe the only solution is indeed B) ie. to just ensure we never work with clients where we have to play big corp politics. Of course there is always a bit of politics, I am just seeing a pattern of increasing politics which is what to me is turning awesome projects into nightmares. Well "nightmares" in quotes, as by and large I cannot say that my life as a programmer working at Liip as been sooo horrible. It just feels like it is not going in the right direction currently.
And yes of course there is also another alternative: Leaving Liip to do something else. Like I said, another web agency is out of the question. I do one day want to work on a single product for a longer period of time. However most of the opportunities there either seem to be about fairly boring static products, large mega corps that are mostly about advertisement or at startups. Working at a startup I kind of worry about my tendency to transform into a workaholic. I mean at Liip overtime is paid so it sort of balances out. I of course also spend a good chunk of my spare time on OSS stuff but it doesn't interfere with my frisbee addiction. At a startup I will likely quickly be back to working 60+ hours a week like I have done when I had my own company.
Another option would be to go freelance where I would see myself mostly doing consulting on Symfony2 and database related topics. I really don't want to end up doing a ton of administrative stuff, so I would have to find some tax advisor that would take most of that off my hands. And then I would have to figure out a good contract that would ensure that if I run into too much political BS, I could leave a project quickly. But I guess if I do go freelance it would only be a temporary thing I would do for 1-2 years anyway. A twist on going freelance I have also been thinking about is becoming a "technical angel". Kind of like a "business angel" just that I would share my technical expertise and network of contacts with young entrepreneurs. Though I would need to earn my own cash for the short/mid term and figure out how to even be compensated for this work in the long term.
At any rate in June I asked Chregu, one of the managing partners of Liip, if I could take 2 months off to figure things out. Thanks to the fact that during the summer months things are always slower and Liip just being an awesome company I was able to take off July and August off to figure all of this out .. what will I do in the end? I obviously don't know yet, but its also clear that I have no reason to run away screaming from Liip and that if I find something to do that Liip currently doesn't do, there is a good chance that it might make sense for Liip to start doing it.
I guess the Zen is in becoming relaxed in mine fields. Since they are usually badly labeled or beautifully camouflaged, one gets to know only after the first blast anyways ...
My suggestion is to go the freelance route, continue working @Liip doing the fun stuff while allowing yourself to take on other projects where you can set the rules and choose projects/clients ...
Good luck in anything you choose to do and thanks for your contribution to OSS projects.
While you are free to air your concerns to a wider audience as it's your blog, I don't know if it's entirely professional to reveal the identity of your employer. This seems like sensitive information that could damage your employers relationship with it's clients (as it's open to all clients for mis-interpretation that it's them you are describing).
Just my two cents.
@Greg: well not mentioning my employer wouldn't have changed this because its pretty well known who I work for. But yes i am aware that this blog post could affect current and future relationships with Liip clients. I did ask for feedback from Liip management before posting this.
Now I did carefully try to keep a balance between openness, which I believe very strongly in .. not only for code, but also not just running around blindly burning bridges. There is definitely a risk here for harm, but imho there was a much greater chance that openness could lead to improvements for all parties involved.
as long as it will not take you away from FOSS, that is all
Companies are built to grow and make money, therefore it is inevitable that real world corporate bureaucracy and design-by-committee will kick in when you start working with clients over a certain size. The bigger the company, the more people there are trying to justify their salaries.
Being an ideological developer works up to a point, but you eventually reach the age where you need to start trousering as much money as possible and that's where you may have to compromise your standards and adjust your expectations regarding your future career choices.
Freelancing with some kind of get-out clause would not wash with most small-to-medium enterprise, because any lawyer worth their salt would spot it and object immediately. In the commercial world, the primary concern is the protection of the business. Sometimes you just have to take it on the chin when you pick up a dodgy project, and deliver what was agreed.
Final little nugget of advice - take emotion out of your decision. Try and look at yourself objectively before deciding what you should do next.
Yeah, absolutely agreed on the advice. This is why I took those 2 months off. To get out of the daily routine, distance myself so that I can make an objective decision .. especially one that takes into account more than just the immediate past. None of the projects were suffering from politics all the way .. and actually for the longer parts were quite cool both from the personal as well as the technical level.
Funny I can see a lot of parallels to my own career. I share your worries about startups and freelancing as well.
As of Liip and politics. I work in a fairly large and very political company now and I grew to enjoy it even. You should find and hire these kind of people and place them in a buffer position. Call them consultants or advisors or whatever. They will help to keep the team out of the line of fire.
For sorting out my own future I once wrote down what I expect from my working situation. Not what I want to work on but the how. It's more about the qualitative aspects. I just recently blogged about it here: http://www.testically.org/2012/07/09/protip-define-what-you-expect-your-working-life-to-be/
I'm not sure if we meet in the near future somewhere but if you need a sparring partner feel free to get in touch.
I can totally copy that! "At any rate we are not collaborating anymore, we are now mostly just trying to navigate a mine field." It's bad, but this seems to be usual client in today's agency work. 10 years ago, your clients were very techy, you know, they KNEW what they wanted, and they trusted you. Today, I work with clients who dont even know what a browser is, dont know what they want, but they have a 10-people marketing team that says what to do. Every person by its own. At every day- and nighttime. It's unbelievable. I kicked two projects this year (both without a contract at this time), both because while the project was in development, the client(s) messed everything up with "improvements". In the end, it was much better to lose the client and the money and go on with other projects. What I want to say: Working with clients, as a freelancer or in an agency is a hard job today (it's the same i think), and the thing that makes a project fun or a nightmare is simply the behaviour of a client. Well, usually agencies/freelancers get paid by a fixed rate for the project, which makes changes etc. expensive for you. But what if they pay by day, by week ? extra-paying for every little change ? Extra-paying for waiting times when the clients does not deliver clean instructions. Will this game change then ? I don't know as this is unusual here in germany, but i think the fixed-price-model makes clients think they can do whatever they want without thinking about costs and consequences.