Excerpts from "The Clean Coder"
Read this book earlier this year and loved it! (Is it weird to say that on a technical book?haha)
"The Clean Coder" by Robert C. Martin talks about a code of conduct on professionalism for developers. It demonstrates very clear examples on software development pitfalls by fault of the developer not adhering to professional ethics and discipline. This book is a must read for any to-be or experienced professional developers out there! You will also love Robert's style of writing because it's entertaining and told as if he was telling a story. He also shares MANY of his personal experiences in the software development industry and you'll see that he has gone through a LOT! And when I say experiences, he also shared both the good and the dirty; all of which are entertaining, informative, and inspiring! Here are some excerpts from the book that truly struck me.
"Years of experience have taught us that breaking disciplines only slows us down"
"Working while distracted creates waste"
"I remember thinking that working at 3am is what serious professionals do. How wrong I was!"
"Don't write code when you are tired. Dedication and professionalism are more about discipline than hours. Make sure that your sleep, health, and lifestyle are tuned so that you can put in eight good hours per day."
"The hours I spent away from my usual problems, while being actively stimulated by challenging and creative ideas, results in an almost irresistible pressure to create something myself."
"It is unprofessional to remain stuck when help is easily accessible."
"Why don't you fix bad code when you see it? Your first reaction upon seeing a messy function is 'This is a mess, it needs to be cleaned.' Your second reaction is 'I'm not touching it!' Why? Because you know that if you touch it you risk breaking it; and if you break it, it becomes yours."
"No professional developer should ever follow a discipline when that discipline does more harm than good."
"When the business actually sees what they specified running in a system, they realize that it wasn't what they wanted at all."
"In the end, the more precise you make your requirements, the less relevant they become as the system is implemented."
"Professional developers understand that estimates can, and should, be made based on low precision requirements, and recognize that those estimates are estimates. To reinforce this, professional developers always include error bars with their estimates so that the business understands the uncertainty."
"I once heard from Tom DeMarco say, 'Ambiguity in a requirements document represents an argument amongst the stakeholders.'"
"...acceptance tests...written by a collaboration of the stakeholders and the programmers in order to define when a requirement is done."
"Acceptance tests should always be automated. There is a place for manual testing elsewhere in the software cycle, but these kinds of tests should never be manual. The reason is simple: cost."
"The cost of automating acceptance tests is so small in comparison to the cost of executing manual test plans that it makes no economic sense to write scripts for humans to execute."
"These tests will prevent you from implementing the wrong system and will allow you to know when you are done."
"Kent Beck once told me something profound: 'Any argument that can't be settled in five minutes can't be settled by arguing.'"
That's about it. I hope you enjoyed reading the quotes. I also hope that you'll get the chance to read the book! And if you have read the book, please share some of your favorite texts or thoughts on it by leaving a comment :)
P.S. It's been almost 2 months since my last post and I still haven't posted the one regarding MOOCs. Been really busy lately with work but rest assured, I'll post it soon (hopefully). I also want to research more on this so I can provide helpful references :)