I love to talk about it because I think that it could help others in similar situations, however sometimes everybody needs to fail, so do not be afraid of it.
In a past 10 years, I had many failings related to my work and also some in my private life, but I won’t bother with my private stuff any of you.
We were constantly growing in the last 10 years, and all the failings were different. They were different by impact, by size, by a loss. Every failing hit me somehow.
I will tell you my most recent failings, I won’t use names but you could expect some honest stories. Keep in your mind that at least 50% is my mistake when the failing happens.
No.1 - Gentleman’s agreement
Let’s start with the one that hit me the most in this year. The situation was a little bit complicated. We had an opportunity to work for a big company, booth web development and online marketing and also some side project. I personally know the owner for a long time and in these situations, I think that gentleman's agreement is more important over standard contract and proposals. I was wrong.
We agreed on a job for some branding and logo design. It was the side job. We have agreed on this logo design and branding 400 euros (do not laugh at the price, it was just a tiny side job). It was accepted at a meeting. And that was the problem. This was the failing point number one. We did not send a standard proposal and contract, please never ever do it.
To continue the story, we regularly sent an update from a logo design, we got a very positive feedback. Then we finished the work, then we sent the invoice then they said we are super expensive and they do not want the logo and the branding. Also, they told me that forget about the e-commerce store (it was the second part of this side job) because there are developers who will make it for less money.
Yes of course. I agree. But… how to say I was shocked... We know each other, we agreed, they liked our work… then something happened.
Of course, I do not need to mention, after they terminated the digital marketing project also. I hoped that we will continue to work on the digital marketing, where we negotiated for weeks, we wanted that job for two reasons. It is a big company and we had a plenty of ideas and we wanted this opportunity the show our creativity and the second thing was that they have no clue of digital marketing and they were doing wrong stuff with wrong people and we really wanted to help.
Just an example, the Facebook budget for daily spend was 1 euros. No…., I did not make a mistake. 1 euro. Ther in-house marketing consultant said that they do not need to advertise with Google AdWords because they do not need text ads, they need image ads. So really really no clue.
When it happened I felt cheated. I even had a terrible night because I can’t empty my head before sleep. Then I spoke through with my wife and my team the whole situation and we learned from it. We agreed on some key points where we needed to act differently.
I still feel something when I talk about it, but it is over, and definitely, this is the failing what made us much stronger.
No.2 - trust in your guts
We started to work on an e-commerce store. This time we had a contract and a proposal too. (and booth helped in the end).
We finished the design part, made a couple of UX improvement for the end. We communicated with the client’s contact person, who was involved from the beginning. Everybody was happy with the design until I got a call from a client’s contact person that the client saw a nice e-commerce store and want to his store to be similar.
I do not know what to do, but then I realized that the client is not capable of the handle the dev process, and I felt that it will be very hard to finish this project. Then I said to the client that I feel that we can not do a good communication and he is not happy with the design and I am ready to pay back the whole money and he is free to find another agency.
Then the client insisted to continue to work. I accepted. I shouldn’t.
We had a lot of pain because we do not get the information what we needed on time, then we put them on hold. Then they were unhappy because of it. They even threatened us with a lawyer. The client was rude with my project manager then I needed to change the project manager. Thant a 3rd party person get involved to upload one by one the product. We made an importer for them, but they did not use it… so a lot of struggles, but we finished somehow and once we finished they said that they change us for another agency.
I was happy because the client was problematic and I think they did not value our work. But also I was sad because we finished the project and after the finish line we lost a client.
I made a couple of mistakes. The first was that we continued to work for the client when I felt that we need to stop. I think that we had bad communication, what we reviewed and we learned from it. The positive side of this story is that we had a contract and proposal. It helped us to get paid for the job, and of course, we were just threatened with lawyer verbally.
No.3 - Learn to estimate
O yeah. I could talk about bad estimates all day long. But there is a hope or at least I hope that there is a hope. :)
This particular project what I am talking about is a fresh Drupal commerce 2.x store. Under Drupal 7 it was easy, we know every little part of the code, we know what could go wrong, we know relatively good to estimate the tasks.
Then we decided to change to Drupal 8 and of course after Commerce guys announced 2.x DC version we knew that we must switch.
We knew that we need to invest in the project, we know that there will be unknown things. We calculated almost double time, as usual, we knew that we need to invest and develop some new things. But…
In the end, we needed more time as expected (almost double) to this invest phase or call it Drupal 8 transition phase. So it was an investment to have things done and to cut the future projects development time.
But the real problem is again in communication.
This is natural that the client wants the most for his money. I could understand it. It is also “natural” that we want satisfied clients and in almost every project we want to add some plus. But it sometimes goes wrong even when you think that you are doing your best.
In this case, the problem was the time. We needed more time because of Drupal 8. We reported to the client, but we wanted to compensate him. So when the client asked for the first tiny thing what wasn’t on the proposal we made it. When the client gave us a bad csv table for import we corrected it. Then we got a new one that we did again.
Then we made two new mistakes. We left out one function what was on the proposal and accepted new function while we event not finished the project. The days went by and we were unable to finish the project. Till the end, we doubled the development time too.
Now the project is finished, and we also learned a lot. In the end, we have a satisfied client. We are also happy that we prepared a lot of stuff for future Drupal commerce projects. We analyzed the project management mistakes and we improved our skills.
The best suggestion what I could share is if you can, do not accept fixed budget project because most of the clients do not see the big picture and their exact needs when they negotiating on a project. In my opinion is way much better to work on time & cost construction.
No.4 - You do not need bad people on your team
It is often uncomfortable to talk about it, but let’s be honest. You do not need bad, uninterested people in your team. It could ruin a lot. It is hard to find a talented developer, but you do not need to keep the ones of whom you think that they won’t fit in your team.
We have an unwritten rule. If I or my company co-founder thinks that somebody is not investing in himself enough or if after a couple of months cannot solve simple task alone or if one of us think that the person won’t be good, simply fire him.
It is never an easy decision, but no company can afford to have bad people on his team because it pulls you back in your way to succeed.
My advice is if you or upper management or senior developers who are with you for a long time think that a new team member isn’t going to fit the team for some reason, fire him until it is not too late.
I made a mistake a couple of times. My personal problem is that I want and I believe in people. I give time for them, I try to give all the help to fit in the team, but in the last 10 years not in a single time happened that the person has changed when I thought that maybe we do not need to keep him.
Closing words :)
Don’t be afraid of failings. Failings will happen from time to time. The only important thing is to learn from them.