On being the employee who “needs improvement”
Slightly off-topic anecdote:<p>I&#x27;ve been having conversations with a really smart friend of mine (PhD in one of the sciences, and fairly good with programming) who decided to repurpose himself as a software guy, got a job a couple years ago at one of the tech giants (not the big four though).<p>Everytime I talk to him, he expresses annoyance that his team and lead are dogmatic about CS principles and want him to modify his programming practices. To give a few examples, he thinks being against using goto in C&#x2F;C++ is dogmatic, and that there is no need to develop a testing framework until the software is developed, among a bunch of other things. All this while he piled on at the rate of about 1000 lines a month into the codebase (he started this project from scratch, surprise surprise).<p>I have been trying to convince him of the need to develop software engineering skills and that it&#x27;s more about lessons learned from history than being dogmatic about anything.<p>Recently he started expressing interest in climbing the corporate ladder and becoming a manager or something. Good for him, I didn&#x27;t point out anything, but to me, he felt 
 like one of those types who are more interested in their career bottomline than in developing good principles and practices of the work they do (something that disappointed me coming from him based on the person I knew for many years).<p>Just recently I heard he got awarded for the software he developed. (For context, the company is a tech giant but not mainly-software. I was very surprised to find out that they don&#x27;t have an internal document or guide on coding conventions, hence a developer gets to do whatever he&#x2F;she likes).<p>Point of the story? not much except that it&#x27;s another data point supporting my cynicism towards short-termist and superficial attitude of majority of people, especially those involved in the corporate culture.<p>Because I can see where this is going. This guy would want to become some kind of manager as soon as he can, and hand over the development to someone else. If that someone else has good software engineering skills, he&#x2F;she would be able to poke many holes in this codebase, and&#x2F;or would be put in charge of fixing the bugs (likely due to bad quality and hasty implementation of the code). This will delay and slow down the progress of the project, because fixing those bugs would involve fixing the quality of the code through heavy refactoring, etc. And 
 then this same manager would get to claim &quot;When I was developing, the project&#x27;s pace was great, and now you guys have started slacking off and creating lots of bugs&quot;.