Dave Thomas is a computer programmer and author/editor. He has written about Ruby. Together with Andy Hunt, he co-authored The Pragmatic Programmer and runs The Pragmatic Bookshelf publishing company. Dave Thomas lives north of Dallas, Texas. He moved to the United States from England in 1994.
When you come across a stumbling block because the code doesn't quite fit anymore, or you notice two things that should really be merged, or anything else at all strikes you as being "wrong", don't hesitate to change it. There's no time like the present.
Write shy code - modules that don't reveal anything unnecessary to other modules and that don't rely on other modules' implementations.
It's not at all important to get it right the first time. It's vitally important to get it right the last time.
Don't live with broken windows.
DRY ‐ Don't Repeat Yourself ‐ Every piece of knowledge must have a single, unambiguous, athoritative representation within a system.
Be careful to preserve the orthogonality of your system as you introduce third-party toolkits and libraries. Choose your technologies wisely.