DEV Community

Cover image for A failure can teach you more than a ton of courses
coco
coco

Posted on

A failure can teach you more than a ton of courses

Sometimes, you only need to remember what you have done wrong before. What are your big mistakes? What were you sacked for? If you focus on taking some lessons from this failure, you will be better next time. This is called experience.
I remember tons of failures I did, but I want to share with you six of them. For me, the most important:

Complete your task first

When I was a newly developer, I worked as a freelancer. She hired me to make a few adjustments to her web page. I just needed to add a new page and replace one link at the navbar. I downloaded the entire site, for building a local version on my Mac and started developing. It was a WordPress, so it needed to upgrade. She had never asked for it, but I did it anyway. Then I kept working on my to-do list and finished my tasks in just a day. I was very proud and uploaded it. However, it didn’t work at all. I never could find out why. Despite having a backup, I had forgotten to back up the database too, so it was useless. I was desperate. Therefore, I told her what had happened, and I had to develop an entire new site for free. She was really mad, of course, but she loved her new site, and, in the end, she forgave me.
From this experience, I learned the importance of backup, it doesn’t matter if it is a small or a huge fix. You need to do it and test it to make sure it is useful. Besides, I know now that when a project is already started, you are walking on ice. You will never know if the ice is thin or thick. So, you must be careful. A little scratch could become a deep canyon. There is no need to refactor all the time. Sometimes, an upgrade is not necessary either. Sometimes, wisdom is to do only whatever they ask for.

Underestimate project

I was hired to do a small part inside a website. I had to make a tool to design an end of course jacket. The user will be able to choose between any different models, colors, and shapes. Then, they will be typing the name they want printed on the jacket. And finally, they will be sending the design by email. ‘Wonderful, piece of cake’. I thought. I had free time for two weeks, and this job was great to fill up the free space.
I started writing the HTML, it was a frontend job. My idea was to make that the user has as many as jackets' images as combinations possible.
However, it was a disaster. On one hand, the images they gave me were all different sizes. It took me like two days to resize all the images. Because I couldn't only resize them, the jackets had to match each other. And I am not a designer, Photoshop is not my skill.
On the other hand, there were too many combinations. And then, all of them multiplied by 5 or 6 possible colors. It was a spaghetti code. So, I made a matrix with all the combinations, and I put it into a Json file. Each combination = one image.
With the images and the combinations issue, I lost more than 6 days. Remember, I had only 10 days of free time. So, I had only 4 days to finish, and I knew it was impossible. What I thought was easy became harder, and I lost my enthusiasm for the project. The results were more than double of my time, working after hours. Because I underestimated it. I should have taken my time to analyze the project to have a better understanding of it.

Too big project

Two years ago, we started estimating a new project. We were very excited, because the team hadn’t been doing anything important that year, only intern projects, and it was a huge opportunity and a good challenge. React JS, Node JS, MySQL, and Redis for cache. I remember saying ‘6 months’ without thinking too much. Then, we sit to negotiate. We finished estimating in less than 4 months, and the project took more than 7 months to be completed.
The client knew exactly what he wanted: A revamp, better performance, and new technology. However, they didn’t know any details about anything. Any question we did, it was very difficult to find a person who knew the answer. Reading the old code, we discovered many functionalities the client didn’t know existed. Besides, the client was very happy with the new design, but developing it became hard.
The team had never worked on such a lengthy project before. We were used to short ones, 2 or 3 weeks. The estimation was so bad, but the methodology we chose was worse. We designed all first, and then we started developing. The project was too big for doing that. We should have designed a little bit, started developing this part, checked with the client and went on. Agile methodology would have been the correct choice.

Incorrect Focus

In my other life, I was a film director. I won a prize to make a short film for Buenos Aires city. I was so proud of my script, it had zombies, romance, and a message. The prize was money to film it. So, I reach a group of friends to help me do it. I did a casting, and we were ready to go. I used to live with a make-up artist, and she made up as zombies one time to go to a Halloween party. We were the party sensation. However, I told her to be the art director. She said yes, but I should have asked her to do the short film zombies. I hired a special effects company instead. It was the most expensive item in the budget. Therefore, I had to shortcut in all the other things.
The zombie was great, but it wasn’t the most important part of the film. My friend could have done the same, and with less money. I was wrong. Because I had to cut the days of filming and run, reducing the quality of the shots. Perhaps the short film would have been better if I was put the focus where it mattered.

Too many people

When I became the Director software development at Portinos, there were only three of us. I wanted to make the area grow. The first year we grew 100%. It was great, I was very happy then. However, there were only six of us. Therefore, the second year we continued growing. Suddenly, when there were over than ten of us, I noticed I made an issue. Too many people in the room, I couldn't handle them. The result was that many people quit, and I had to restructure the area. If you are going to grow, you will need more middle managers, so you won’t lose the balance.
Nowadays, we are much better. There are sixteen of us, and there are two teams with their own leader. This year we are going to create a new team also. We keep walking!

Quit without thinking

When I was studying to be a film director, I started working at Ogilvy. The multinational and famous advertising agency. I worked there for one year. My job was to make copies of the advertisements and send them to TV channels. In those days the distribution was made on video tapes (Beta SP and Umatic), so I took the master and copied many times as needed. It was a repetitive task. However, sometimes it was fun, because the creatives (the people who think advertisement) needed to find references to tell their ideas better. I was in charge of the Ogilvy and other agencies’ advertisement catalogues. So, the creatives used to come down to talk with me, and we spent many hours making a reel to show to the client.
In those days, I wanted to be a film director, and I finished quitting the agency because the advertisement was too frivolous for me. I wanted to make films, indie films as possible. I asked for a salary rise, my boss denied it, and I quit.
I know now that I should have been kept working there. Advertisement is a job as any other, and it is also an art. In only 15 seconds you need to tell story, that is quite difficult, and a huge challenge. But I was only 20 years old. I didn’t really need the salary rise. It was just an excuse. I didn’t know how to negotiate it as well.
This was the biggest regret in my life. However, it was a fork in the road, and I chose my path. Next time I should stop and think a bit more before starting to walk.

These are the most important failures, or at least, the ones which I remember most. Why do things right when you can do them wrong and twice? :D

Top comments (0)