Recipe for a great place to work at

27. March 2011 - Vesa Palmu

It feels great to work at Mearra! Sure we have our bad moments as everybody, but on most days working is fun, inspiring and challenging. A lot of this has to do with the way we work and with our approach to customer work. I will do my best to share some of our best kept secrets in spirit of open source at this post. I hope that the following post makes you think about your ways of working. Feel free to challenge me in the comments on any of the points I make.

When reading this you have to remember that Mearra is a Drupal service provider and our largest business area is consulting. We also do Drupal training and value added hosting, but these posts mostly talk about the consulting part of our work. Some of these concepts do apply also to other business areas, but not all of them.

Self development and participation in open source community and projects

As some of the best companies on their business area we allocate 20% of everybody's time for learning new things, taking part in open source projects and participating in Drupal community. When selling customer projects our work week is 4 days long so that everybody should have enough time on their hands on learning new things also outside the projects. Naturally most of the learning happens inside customer projects, but there are always some new things you would like to learn outside your current work. We do weekly internal training on various topics ranging from deeply technical to life management and completely unrelated topics that we feel would be beneficial or inspiring.

We are not only happy with learning on our own, but we also participate actively in external events. I have found that our knowledge of issues that don’t have anything to do with Drupal is way more advanced than that of some companies that actually do these things for living. This is largely thanks to open source community that shares new ideas and best practices very actively globally. We are a small company of 20 people and still we invest well over 100 000 euros every year just in participation on training and events. This really pays off in extremely high level of expertise in our employees.

Challenging projects

When choosing projects we can be picky at times. We don’t do implementation-only projects where customer is looking for spare pairs of hands to implement something they have already designed in detail. We have developers with over fifteen years of experience in building online business and we want to give them new challenges. Our way is to start challenging the customer right from the start by asking difficult questions such as why they are even doing the project. This often leads to new directions in design of the project. Combining this with agile development model where we work closely together with the customer during the entire project and results are often stellar.

Shuttle

We want to keep work challenging on the level where every employee learns something new every day. Technology and especially Drupal is changing quickly and just to keep up with the change can be challenging not to mention getting ahead of the change. Our focus is however not only on learning new technology, it’s on learning better ways to do project work and a lot more on business of our customers. This enables us to be even more productive and know what would work for a customer even without asking about every detail.

Choosing the right customers

The traditional way of customer-vendor relationship is that the customer asks questions and chooses a vendor that they deem most fit for their needs. We see this more as a two-way negotiation. We do ask for customer references before doing a proposal on a project as surely as customers ask for ours. It is very important to know if the customer has allocated enough time of the key persons for the project, if project team on the customer side has previous experience in same kind of projects and so on. If we know that we are working with customer that does not have any previous experience on agile development we know that we have to reserve extra time on teaching their project team.

Project manager (or product owner) of the customer is the most important person in the project team. If the customer is unsure on what to expect or why the project is being done in the first place, it will be almost impossible to succeed on a project. Since our employees work daily with our customers, having people who know what they are doing on the customer side has a huge impact on how the project team works. Unhealthy project team means unhealthy employees and nobody wants that.

Everybody is equal

We work hard to avoid having project managers who assign tasks to a team of developers. The way agile development works is that each team member pulls the work for themselves instead of being force-fed tasks by a manager. This can be difficult at times when working with customers who are used to feeding tasks instead of just prioritizing them, but our project managers (or scrum masters) do their best to “protect” teams against this.

Trust between employee and company is a very important value for us. We don’t force any specific daily schedules for working and do understand that some people are more productive working at home than at the office. When people get to take responsibility and pull in their own work they tend to be more responsible and proud of their work. We do track all hours because we want to understand what we are using the time on, but measure the results instead of time spent on them. As with any freedom this trust also comes with a healthy dose of responsibility that works both ways.

Best tools available

I often wonder how many companies work on crappy old PCs, 5-year-old phones, avoid using some productive piece of software because it’s expensive and might even use partially broken equipment. We believe that if you want to attract the best talent out there you also need to offer them the best tools there are. This doesn’t mean designer laptop bags or always every latest cool gadget out there, but recent equipment that is suited for the job. This also varies from person to person based on their work preferences so one size definitely does not fit all. Some people need external keyboard while others are happy typing with laptop one, some prefer Android over iPhone and so on. To add insult to injury hardware and software are hardly a major business expense in Western Europe. Cost of hiring people is far superior to anything else in most cases anyway, so being cheap on the professional tools is just plain weird and bad business.

Where, when and how? What ever makes sense!

We do not have a single process model. We don’t work only at our office or exclusively on site with the customer. We only have senior developers with 10+ years of experience in charge of customer relationships. The reason for this is that we can modify our standard agile project model to what ever works for any customer case. Every case is different and you just can’t approach every project with the same set of tools. We don’t work at customer premises only because it is a requirement of a customer. If there is a valid reason for doing so, we will. If it makes more sense to work at one of our offices, we will do so. If the best option is for everybody to work remotely from their homes, we will pick that option.

Blue Angels

The same philosophy extends to everything we do. Everybody is more than welcome to question anything in our work habits and there always has to be a good reason behind everything. “Because it has always been done this way” just does not cut it for us.

Peer support

We work only with Drupal for a reason. Drupal is more than 7000 projects and the size of the ecosystem keeps on growing. You really need a lot of time to keep up with what’s happening in the community and you should also have enough time to develop yourself in other ways than just your technical skills. It would be ridiculous for us to tell that we work on 3-5 different platforms and that our developers are just so good that they can keep up with multiple ecosystems at the same time. Everyone has only 24 hours a day and that’s just not enough. It’s not 1995 any more and only learning new programming languages or light-weight frameworks does not take you far.

When our developers are working together with other top experts in their field they do get a lot of peer support from each other. In most technical problems we have already solved a similar problem somewhere before. We know what worked and what didn’t in a specific approach. This makes work so much more rewarding for developers and also gives us a huge performance boost compared to companies with less Drupal experience.

Competent project management

Pulling an all-nighter with a really difficult problem might be productive and fun every now and then. On the other hand, being forced to work 16 hours every day because of bad – or even worse  – a lack of project management really sucks. We haven’t missed deadlines, gone over budget or missed any major business goals in a project. And to top it all our employees have not done even a single hour of overtime. Ever. Not many project organizations can make the same claim and even though Mearra is a young company we are working smart to keep our perfect track record.

Having realistic deadlines helps reduce stress for both customer and our people. Managing risk and changes during the projects enables us to keep the deadlines. Having project managers with technical backgrounds makes it easy to do quick estimates on any change and block ideas that obviously are too expensive to implement compared to their value. If I was to pick the one thing out of all the things we do to make Mearra a great place to work at, I would pick competent project management.

 

Let us know what you think in the comments. How does this compare to your company?

Next post

Power up Drupal search with Jetty & Apache Solr in Ubuntu 10.04

Read More »

Add new comment