Is it wrong to be good?

By on 25/05/2018

So here I am – almost three months working ‘on my own’. Meaning that I finally quit being an employee, and jumped into partnering up with a very promising startup idea.

How could I make this decision? The answer to this contains several aspects. First and most important was decision to leave the comfort zone Germany with its well paid industrial employmentships – for living in my wife’s home which is Mendoza, Argentina. The first year was very comfortable, because I didn’t have to work and could dedicate a lot of time in my personal stuff, house, family and plans for the future.

Professionally that was the moment when I started to try new things, study new technologies, discover new applications and get in contact with a lot of new kinds of people. After almost a year, I applied for a developer’s job in a well known company in Mendoza, and this already teached me several lessons. Since it is a software factory (yes they call themselves like that!), the interview process was already a lot like this. The funny thing is that my former company in Germany was literally a factory, but the ways of getting to know each others and talking about terms and conditions wasn’t anything like it. In this ‘factory’ here it was more like finding out which pieces of which technology I didn’t know enough, just to be able to talk me out of my salary expectations. I’m sorry if I sound too negative here, but this was not all of it. The fact that a company makes you work for some weeks on applications, demo programs, interviews and formalities (without giving you any guarantees) was not really a problem for me – but in the moment of really getting and starting the job, it started to feel sour already.

The business foundation of these ‘factories’ is to get well paying clients and to sell hours. And well, probably this is just how it is in this business…. While working in Germany, I was on ‘the other side’ of this. We were working with hired developers in India, and we told them what to develop and how to test. We were all aware that we get paid much better, and everyone made an effort to include them in the team – especially when one of them came over for some weeks, to work with us in person. Still I always had the impression that it will be impossible to feel like equals with our remote collegues. Not just because of being paid better, or because of cultural differences. But also because of how their companies are, and because of the situation these guys were in. Their companies won’t appreciate when they get emotional about a project or a product idea. They don’t value someone spending time on investing and understanding profoundly the tech they’re using, and asking questions that are not directly related to the current ticket in the board. Well yes, they try to create processes for personal development, metrics for evaluating efforts and to determine salary groups (or to get one of the funny titles like junior, senior and lead). They hire sympathetic people in human resources who pay breakfast and organise team events. And on top of all, they like to make publicity about being the most innovative, attractive, promising and growing company there is.

I know, I still sound negative. But I’ll make it even worse! I lived all my life on my parents’ farm, and I’ve spent a lot of time with dairy cows. Working in a software factory, I continuously felt like one of them. It’s not that we treated the cows bad in any way, but they had their place, and they were considered resources. They need the best food, medical attention, and a little love, and they give you milk. If they’re ill, you take care of them, invest in their well-being, accept that they dont’ bring income for a while, and then everything will be fine. But at the same time you have to calculate the money coming in, and the money going out. And when one doesn’t perform in a long time, you are forced to sell the cow, and we all know what that means.

Yes, time to stop – noone is sacrifying programmers! And some of the major differences between continents and countries are not the fault of companies. But still I always kept believing that a difference can be made! That you can get anyone’s full performance by treating them right, and motivate them. To show empathy, be generous, and oversee some lacks in performance and perfection. The last client I worked for was a great example. It was because of this client (company) that I stayed so long in the company in Mendoza. They had a lot of the modern development atmosphere, they included everyone of us in their teams (not all of us in the same team), they listened to everyone’s opinion, they didn’t consider tech-know-how to be the most important factor in interviews, and they even paid us bonuses, hackweeks and business trips.

Back to the beginning of this post – I’m independent since some months. But actually it’s been some years already that I try making my own projects work. And I try to apply everything that I learned in the last 15 years into this. Technologically speaking, there’s not too much to say at this point – for this I have my post categories ‘implementations‘ and ‘concepts‘ in this blog. But on a higher project level, and especially when it’s about working with people, it seems like I had and still have a lot to learn.

My first three projects are hardly worth mentioning. In the end it was always the same story. Someone having a greeeat idea, and mostly even a graphical design or mockup of the application. Then they meet you, talk a lot about the possibilities and expectations, and they really make you believe in it. But this euphoria almost always just works until there is really work involved outside of the programming – because for a non-technician it always seems easy to make an application out of an idea. Or – if it lasts so long – the idea dies in the moment when there is an actual meeting with a potential client. And what seems like fantastic from one perspective, can be the complete opposite from another one.

Enough of that – what I’m really talking about are the 2 serious projects of mine…

The first one started more than half a year ago – a friend who is purely working online, and using lots of different online services and platforms. Out there, there are several middleware platforms that try to the make life easier for this kind of guys – and obviously make it a business. So this friend has several ideas about middleware functions, and convinces me of starting a project on our own. I realised in the beginning that he has quite some business knowledge regarding this, but that he lacks the knowledge of technology and development. Also we didn’t have any funds, and I was still bound to my regular job. So this also was a ‘side project’, but I invested a lot of time and effort into it. Being aware that it will take a long time for having something productive, and considering the lessons I’ve learned, I insisted in having weekly online meetings (different countries again) – no matter the actual progress I made in this week. Additionally, I’ve always spent a lot of time explaining my partner the technical difficulties, and why things take so much time to develop. And also I insisted a lot in getting business input about which middleware functions we could use – or better to say which functions he could use for his work for his clients. Sometimes it was really like pulling a cart through the mutt – because it’s hard to find time in parallel to family and job, and also because of not having a team being phyically together. But I went through it until the point when I had to cry out for help. That was actually the moment when my friend offered me some money for my efforts. But instead I told him that money won’t help me – it would be better the get an additional programmer for this money. Then I’ve spent additional time in explaining and defining the profile of a developer – backend and frontend wise. And I did this several times. But the last conversation about this ended in ‘wouldn’t it be better if you looked for someone’ ?? Some weeks later, my friend instead bought some stand alone software covering just one or two (almost hard coded) functions from an Indian developer, which he hosted on an own server. And then he offered me to have a look, and if it could help our project. I mean he didn’t even consult me before buying this, and the product he bought didn’t even include the source codes!

Still, I couldn’t just give up on it, especially because of the time I had already invested into this. I offered him similar solutions like this ‘hard coded’ package that he bought from India, but he wasn’t interested. Then I invested time in refactoring my solution, to make it less complex and easier to implement (for a one man job). But when I came back to him, offering business solutions about our relationship, and technical concepts for his middleware funtions, it started to end in solutionless conversations, or no answers at all.

What I’m getting more frustrated about than lossing money, is about loosing precious time. I never gambled, but I can imagine that a roulette player is in the same situation when he already lost $10,000 and just can’t stop playing because he still believes he can recover what he’s lost so far. Of course in my case, it’s not so extreme because I didn’t really loose the time I’ve invested already. It’s just that all the different pieces I developed so far are not a product yet. So from a business perspective, I didn’t produce any value yet (like my friend also likes to say).

Enough of this projet – time to get to the core. The horse I’m really betting on is the project in which we are 4 partners, and in which I’m working full time since some months. Among the partners I’m the only developer, but they have the business, the clients, the idea, and a skilled friend that we hired as a consultant, and who has a lot of experience in software and startup development! And because the project is wine related (which is one of the greatest things of Mendoza), and since I really trust their business plan and my skills, I went in with all my faith and confidence. We’ve spent quite some time to think and talk about money, rights, risks and agreements. And I went into this with the best of feelings. Still, we take it kind of easy to finally sign a real contract (although it’s in work). The thing is that the others have their regular business, and I’m the newcomer. For them it’s more like a side project, and for me it’s the most important (professional) thing right now. Considering this and the fact that the development work is quite complex, I start feeling a kind of pressure that I never knew as an employee.

Trying to be efficient, and to push the project forward, I decided to give some of the work to freelancers specialising in some pieces of the system that would cost me a lot of time to get into it (e.g. C++ plugin development). The problem is finding them. The first one I’ve found (in one of these freelance platforms) was a guy presenting himself as the perfect specialist for what I need. Me always being kind of naive with people, believed instantly that ‘this is him!!’. But after actually starting with the work, he realized that he can’t do it, and that he didn’t even read my specs entirely. So in the end I lost a lot of time instead of winning some.

The next guy that I’ve found gave me even more confidence – and after starting to work together, I really felt that he’s skilled, motivated and a bit of a perfectionist like me. He delivered good work after a short amount of time, and we even talked about following projects and functions that I will need soon. Then he asked me the favor of a pre-payment, and I didn’t see any problem in it – especially because we’re not talking about a huge amount of money. But believe it or not – after transering this to him, he just disappeared. I am really stunned!! I realize I was a bit naive, but could I really get such a wrong impression about someone? Or are there really people who invest effort in such a scheme – to make a professional impression, deliver easy pieces, and just try to rip you off?

I really want to believe that I learned something about people along my way, and about how to be successful with honest and hard work. And especially that it’s good to be generous with empathy, trust and helpfulness. But every time I have this kind of setbacks, I ask myself if it wouldn’t be better to be more suspicious, egoistic and hard on people? Wouldn’t it be better to become a factory boss than a leader? Wouldn’t it be smarter to always ask for money upfront, and legal contracts before going into a project you trust in?

Is this where we are going?

Is it wrong to be good?