There are no stupid questions
When you start your first IT job, people tend to say things like:
Hey man, don't hesitate to ask about anything. There are no stupid questions.
I don't know about you, but I took it to heart and asked every question I came up with. I asked about every bit of code, every feature, and every possibility I could imagine. It was a never-ending story.
Every developer gave me a few pieces, and I started to build a bigger picture. After a couple of months, I became a go-to person when someone wanted to know more about any part of the app.
Don't get me wrong, I still was a very fresh developer - after all, I was an engineer with maybe six months of experience. I just did exactly what they suggested on my first day. I knew what the outcome should be, but I needed to learn more about the code itself.
Let's fast forward.
I started to feel good about my knowledge and experience in this project. I could solve most of the tasks by myself, and whenever I struggled, someone was eager to help and set up a pair programming session with me.
We've had another big feature coming up. Without going into details - we were supposed to synchronize two systems with each other, which means whenever some data changed in System 1, System 2 should apply the same changes and vice versa. Sounds simple. Even too simple...
I will not bore you with the details because the story is about something other than this feature. I want you to understand that a big group of developers worked on that, and each day, we felt even more concerned about the whole idea.
But we couldn't stop; it wasn't up to us.
So, we continued our work, working long hours and getting complimentary pizza and beer (sounds cool, huh?).
We were crunching for the next couple of weeks and felt the breath of deadline on our necks.
THE DEADLINE
More or less, we were ready. One of the senior devs (and my mentor) was working on the "startup script", which was supposed to set up the data before the code merge. I was asked to sit with him for a pair-programming session, so there's more than one set of eyes looking at this VERY IMPORTANT SCRIPT.
I was tired, sleepy, and nervous, but did my best. The senior dev walked me through the code, then I asked some questions - everything seemed right. I gave a thumb up.
But then, something felt off. I wasn't sure about one piece of the script. From what I understood, it should look like this:
System2 data should be zeroed
System1 data is sent to System2
System2 data is sent back to System1 (even though it will be the same at the moment, it was more of the check to make sure it works correctly)
But in the script, we were zeroing the System1 and sending data from System2... Did he really make such a mistake? It's possible, sure. But so many things have changed every day... Maybe I wasn't informed about it. I really should ask.
But I didn't... I felt this was an idiotic question, so I never asked. Other devs also looked at it, gave a thumbs up, and we ran the script.
Before we noticed something was wrong, it was already too late...All of the essential data in our main application was set to pretty, round 0. No one could buy anything, we had to look for system backups, the warehouse was in panic, customer support was constantly getting calls from angry customers. One big dumpster fire.
How we "fixed" and maintained this feature is a story for another time. It was one of the most intensive periods in my entire career.
For now, I want to leave you with this lesson: ALWAYS ask your questions.
Because there are no stupid questions.