BE CURIOUS
A curious and open mind is the most important asset you posess. Don’t let rules and common paradigms narrow you down.
SEEK TRUTH
Seek for truth rather than short term profit. Don’t be satisfied with high-level understandings. Reach out for the very essential core of everything around you.
BE EXTRAORDINARY
Transform yourself. Do it often. Don’t pretend you’re someone else than yourself. It’s always crazy people who change the world because they rather spend time exploring than pretending.
BE HONEST
Don’t be nice just to be nice. Be honest to yourself and others. Do it in a way another curious mind can absorb your honesty.
This a re-post of the original post I wrote on our ezeep company blog this week.
Click here to go to the original post »
For all of you following ezeep, you might have noticed that we hardly released any new features the first two months of this year. Then suddenly, just a few weeks ago, we began releasing a flurry of new features and improvements. The reason we were so quiet so long is that we eliminated Groovy from our backend stack and switched completely to Python. As a startup, you’re under constant pressure to move fast and quickly adapt to user needs within the market. With a major part of our backend written in Groovy, we decided we just weren’t able to be as responsive as we would like.
The initial choice of programming language usually depends on the personal preferences of the developer who designs and scaffolds a code’s very first iteration. Our old system evolved from the original prototype, written in Groovy (on Grails). While our system evolved, the people around the technology changed. We quickly realized that we were tackling a very specific sort of problem. And, with most of the team coming from server-side and web development backgrounds, it took us all awhile to get comfortable with the reality of designing and shipping software that interacts with multiple systems.
Community and Culture Are Key
Generally, I don’t support the ‘language wars.’ Almost every widely used programming language can be used to design pretty much everything the majority of technology companies are working on. Too many programmers try to scale prematurely or take potential high-scalability issues into account at early stages when that consideration is actually premature. Very few companies actually reach a point where the choice of language becomes a technical bottleneck. Then there’s another potential problem that is even more meaningful than low-level technical challenges: Cultural fit.
Every technology on the market–open-source and commercial–has a certain kind of community around it and its design is constantly shaped to best-reflect the values of this community. When it comes to choosing the technologies you want to work with, cultural fit is certainly more important than scalability and performance. We feel at home in the Python community and are looking towards contributing to more open-source initiatives and conferences in the future (we will be at EuroPython in Florence this July, by the way!).
‘Simple is better than complex. Complex is better than complicated’
At ezeep, our vision is to turn printing into a friendly, human experience that just works. Python nicely reflects the way we’re working and our core values, as they’ve developed over time. We have a highly collaborative and quirky work style, and try to design things in a simple and generally understandable way. Python helps enliven and underscore this value, as it’s highly readable and also very expressive at the same time (the expressive power of a programming language shows the bandwidth of ideas you can express with it). And even if you join our team through a marketing or sales route, you’ll get an engineering intro (the happy, smiling ‘light edition’) to explore parts of our code, learn how to read it and understand the inner-workings of our product.
Since we’re dealing with very complex systems, the Python approach of using built-in data types and features whenever possible, as well as generally keeping things as simple as possible to avoid over-engineering, helps us to reduce complexity in our code. You can find a very nice overview about the ‘Zen of Python’ in PEP-20.
What We’ve Already Gained from the Switch
Since we hot-swapped our old backend with the shiny new Python version, we’ve significantly increased performance and stability, and also multiplied our work performance. We’re now deploying to production on average 2-3 times per-day (up from once every two weeks) and we lowered our server response times by more than 50%. We’re also working towards unifying our code base–not only on the server side, but also on the client side–by leveraging reusable Python modules we plug into our native desktop apps.
Besides mere technical metrics, we’re already seeing real improvements in internal transparency between ezeep’s different teams. Communicating technical topics and bouncing product and design ideas around got much easier, and people seem to more-easily shrug-off their inhibitions when participating in technical discussions.
The decision to shift a major part of your product to a new technology framework is always a tough call. It’s a high risk endeavor that doesn’t deliver immediate business value and ties-up most of your engineering resources. We didn’t take the decision easily and, to be honest, spent far more resources on it than we expected. Looking back, we don’t regret the decision though; it brought us into a new position with a clean and properly designed system that we can build-on confidently–and, most important, that resembles ezeep’s unique culture and values.
Culture evolves and can’t be designed on the drawing board
It’s hard to get together with your co-founders and kick off a startup. But it’s much harder to actually turn this idea into a real company. After you got properly funded, your first thought is very likely “Great, now I can hire people and we’ll be blazingly fast!”. Sorry to let you down, but turning an idea into an actual company is much harder than you might think. The reason is very simple: You’re starting with a blank slate. Your so called company doesn’t have any culture, values and history. Innovative and successful companies are usually communities with a rich culture and a concise value system.
Starting from a blank slate
So the experiment begins. You start hiring people and It’s very likely that the cosy little dorm-room style startup has turned into a gigantic mess by now with your new hires running around like headless chicken. Besides you’ll very likely run into conflicts and arguments because for some reason all these people you’ve hired are either not a fit for the position or they are not compatible with each other.
Slowly but surely you start thinking: “What a mess! Let’s introduce some hierarchies and processes to get this thing in order!” Now you start introducing processes for buying office equipment, releasing software, you introduce SCRUM and do many more things to try to get this thing under control. Surprise, surprise. It doesn’t work at all.
Why on earth have you’ve hired these people? They might be smart and well educated, but you have a constant atmosphere of tense relationships and issues around properly coordinating anything. The answer is that you don’t have any value system yet that you can apply to your hiring process. Consequently it’s very likely that many of your hires turn out to be non-compatible.
Don’t create an artificial value system
The biggest waste of time I experienced in my startup life was probably creating an employee handbook in an early stage of the company. The book was a patchwork of ideas and directions some people thought might be appropriate. This handbook did more harm than good. It was doomed to die off quickly as it was an artificial, non-organically grown document.
It’s definitely allowed to look at other successful examples (e.g. HubSpot or Netflix) and to take into account your own experiences from communities that had a great impact on defining yourself (MIT and the community around CIC had a significant influence on my value system). Feel free to borrow elements from different cultures and try to apply them to your own startup. You’ll find that many things don’t fit but eventually you’ll have some hits. Just keep in mind that every organization is different and there are no absolute truths you can apply.
By their very nature, organizations are dynamic social networks rather than static hierarchies
Most larger organizations have still very static, hierarchical systems. This is still possible because large organizations have lots of resources to back this wasteful organizational design. Besides, organizations get incredibly complex at some point and I must confess I don’t have a recipe for corporate structures. But in a startup environment with less than 100 people you have different problems. Your primary problem is that you can’t afford organizational waste because everyone needs to be fully committed to turn your idea into a viable business. Every bad hire, every social conflict brings you closer to the abyss of the startup deadpool.
Culture must grow organically. It’s hard to accept this because it would be quite nice if you could just put together some kind of handbook and everyone accepts and lives it. In reality you can’t just draw up the actual culture, especially if you managed to get together a group of very smart people. You can and must set the overall vision and get everyone to agree on that and coordinate the cultural evolution (which is a lot of work). Especially for founders it’s incredibly hard to give away a big junk of control.
Keep it lean - Avoid processes, have one core value and live it
Startups don’t have the resources to build and maintain hierarchies and control structures. Think carefully about every single process you introduce. The only reason to introduce a process is to improve the interfacing of different people or parts of your organization. Process overhead is poison can collide easily with the way how smart and committed people work.
Based on my own experiences I strongly believe that you have to have one broad core value on a human level that defines the foundation of your culture. This might differ from organization to organization, but you have to live and rigorously defend this value. For me, the core value is trust. At my current startup, trust is the foundation for everything.
Trust is mutual
Frankly it was really hard for me to give away control in the beginning. The first problem was that we weren’t clear on and didn’t enforce our core value properly. Means we hired people that might have been smart, but were incompatible with working in a highly trust-based culture. It took us quite some time to build a team that really lives around this core value and starts to organically develop an incredible and unique culture.
Keep in mind that trust is mutual. I expect that I can fully trust everyone on a professional and personal level and everyone else on the team can expect the same from me. If someone violates that trusted relationship, it should be openly discussed and should immediately raise the question if the violator can still work with the team.
Trust i the glue that holds your team together and gives people the power and freedom to flourish. Building and maintaining a highly trusted relationship between all your team members is crucial if you want to avoid the usual pit holes like clique formation and management and hierarchy overhead.
If you hire people you need to manage, you’re doing something wrong
I see my job a bit different than it might be defined in most parts of management books. My most important tasks are coordinating our tech development, building the right framework for people to work and grow in and represent the engineering team’s decisions to other stakeholders. We’ve managed to get together a group of excellent people and I wouldn’t dare to make important decisions on my own without discussing them with the team.
Our usual decision process involves all members that are working in a certain project, looking together at all the details and data that might help us to make a solid decision. We then mutually agree on what to do. If one person on the team doesn’t feel confident about a certain decision and raises concerns (e.g. releasing a feature under time pressure), I’m fine with communicating and defending this decision.
The only reason why we can run this open decision design is that I can trust people to decide in the best interest of our shared vision. On the other side, they can trust me, that I hear and defend their decisions.
Let’s sum it up
I know, that was a long post. So let’s sum up how you can get from a blank slate chaos company to the first stage in building an actual culture (I’ll talk about achieving the second stage in my next post):
In my opinion these steps are very necessary to just get to a point where you can really start growing a more detailed value system within your startup. Never forget it’s humans, not resources, you’re working with. In my next post I’ll look into the next step: Controlling the evolution of org culture and into managing friction within that context.
Once and for all: If you are a tech recruiter, save your time and don’t send me canned contact invites on LinkedIn, XING or via email. And definitely stop calling me. Some of you might have noticed, that I’m always in a meeting when they try to reach me. Actually I don’t have that many meetings, but I consider my time as too valuable for listening to someone who’s telling me about awesome Ruby engineers they have. Because if this person would have taken just 5 minutes to look through our website and our Coderwall page, they would notice that we’re not even using Ruby.
Not all recruiters are bad and I have successfully worked together with selected ones in the past and made at least one very excellent hire that way. But in general: If we want to work with you, we’re going to call you. Not the other way round. If you really want to get in touch with me, tell me something interesting that makes me read further than the first 5 words of the message subject.
Please drop me an email with whatever application you think is appropriate. I’m currently really slow in working through the applicants queue in our ATS. Apologies for that. If you email me, chances for a relatively quick response are quite sunny. My email address is very easy to guess. Also, don’t forget to check us out on Coderwall: https://coderwall.com/team/ezeep
The Bird Job - DIY Saturday at ezeep
I just received the following message on LinkedIn and was immediately suspicious:
Dear Marian,
It is a pleasure to make contact with you. Ezeep is one of the first 200 companies to be considered for this prestigious award. Many companies are excited to be recognized, while a few non-techy people may not know the Red Herring magazine.
Please keep this confidential as no PR is allowed unless Ezeep makes it to the 2013 Red Herring 100 Europe Finalist stage, which will initially list the 200+ top private innovative companies in Europe followed by the Top 100 most innovative companies in Europe.
Our editorial team recognizes Ezeep as an exceptional candidate for the Red Herring 100 Europe Award because of your technology innovations in making printing become more user friendly.
Facebook, Google, Yahoo, Skype, eBay, Salesforce.com and most of the NASDAQ listed companies have benefited from the Red Herring press and listing. If you are not aware of us then please ask around.
The official nomination and requirement to complete the online submission will only be sent to you upon request after receiving your email ID. If you do not want to be considered and prefer to stay in stealth mode we will respect those wishes.JB
—
This communication (including all attachments) is intended solely for the use of the person(s) to whom it is addressed and should be treated as a confidential Herring International communication. If you are not the intended recipient, any use, distribution, printing, or copying of this email is strictly prohibited. Your cooperation is appreciated.
If you’re nominated for some reputable award, it seems to be very unlikely that they just send you a message on LinkedIn congratulating on your nomination. So I spent just a few minutes googling around and quickly found a few articles on how the Red Herring strategy works. Apparently they ask you to spend about $3k on their conference to receive your award. You should especially read this post: http://www.techinasia.com/red-herring-awards-scam/ (related discussion on HN: http://news.ycombinator.com/item?id=4538950)
I don’t think an award is very legit when you have to essentially pay for it. It might give you some press coverage, but it’s probably not worth going through this dubious and expensive process.
Besides, if you nominate our startup for some kind of award, I expect you to take the time to get personally (phone or at least email) in touch with us. They seem to target quite a lot of startups. So if you receive one of those amazing messages, think twice.
I finally moved my blog away from the dying Posterous. Since they got acquired by Twitter they discontinued work on their product. So bye, bye Posterous and hello Tumblr.
Cool, isn’t it? I stole the idea from Victor Martinez (http://coderwall.com/p/xlatfq) who fully deserves the credit for me annoying the web with this video.