I have been a nice guy most of time, in my work and outside of work. But I have done something pretty bad this week. I am talking about programming. I made two mistakes.
First I checked in code to the source control system and forgot to put in some compile flags. Without these flags my teamates will have compile errors. Bad bad bad. In C/C++ programming world, the first thing we learn is to make sure the code compiles. I remember my C++ instructor at Rolla once said “if a program does not compile or run as designed, it’s not a program, it’s a novel”. In this case although I did compile it successfuly in my own project, I forgot the impact of my changes to the team (group). Note other peoeple in the team are using same piece of the code. The good thing the mistake itself does not cause any serious consequence and it was easy to fix.
The second problem is more subtle, and did cause some headache for my coworker. I made an API change for one function. I thought about its possible impact to some of the functionalities developed by my coworker but I checked in without notifying him – I was in a hurry. One day later, my coworker told me my code change broke that functionality. I am embarassed again. Fotunately my coworker is very gracious and together we fixed the problem.
Been in software development for more than 5 years, these problems are not really new issues for me. I have seen other people making similar mistakes from time to time, and I have to fix the problem, unfortunately. I guess that’s one important difference between code in school and code in industry: in school we did not have lots of oppertunites to collaborate on large projects and work on same code; while in the industry especially in large company we work in team all the time. In that case we should be very careful not to step into other people’s toe.