I recently read an excellent book called The Clean Coder written by Robert C. Martin, a.k.a. Dr. Bob. I wanted to share a few excellent points that stuck with me.
USING THE WORD “TRY”
Dr. Bob talks a lot about saying “yes”, “no” and how to manage client (or management’s) expectations. We want to be nice people and hate to disappoint. So when we’re asked if we can meet a particular deadline, even if it’s unrealistic, we frequently answer “I’ll try.” Deep down, we know that we probably won’t be able to deliver. However, instead of “i’ll try”, the client or management hears “Yes.” Part of being a good developer and professional is managing expectations and giving honest answers. Saying “no” upfront can be tough and uncomfortable… but it is better than not delivering something altogether or at the last minute.
Dr. Bob is a huge Test Driven Development and Extreme Programming practitioner. He suggests that you are not a professional programmer unless you write tests before the code. One of the arguments against testing upfront is that “there isn’t time, we have to ship/deploy.” The idea is that testing takes too long. Unfortunately, the lack of writing tests will create technical debt that must be repaid. Eventually, bugs will happen, apps will break and you’ll have to spend panic time fixing those issues. A test suite upfront will provide peace of mind and help assure that your code is not brittle.
It is your responsibility as a professional to not only maintain your current skill set, but to continually add new tools to it. One shouldn’t rely on his/her employer to do this. A professional should be proactive about daily code challenges, working on side projects, learning new libraries and languages, etc.