Toyota did not start out as a car company. They started by making industrial looms for the creation of textiles. They became a leading loom manufacturer by building looms that required minimal human intervention because they recognized that an operator’s time was expensive. If one operator could run a dozen looms instead of just one …
Continue reading “Keep Defects from Escaping”
Read MoreIn my last post, I discussed barely sufficient documentation and I said that the best place to express what the code is doing is in the code itself. But there is another form of documentation that we often overlook. It’s actually the most important kind of documentation yet we rarely devote even a sentence to …
Read MoreIn Agile, when we say “barely sufficient documentation,” we’re not referring to user documentation. User documentation has been notoriously bad throughout the entire history of the software industry. As an industry, we must do much better with user documentation than we have in the past, but this post is not about user documentation, it’s about …
Continue reading “Barely Sufficient Documentation”
Read MoreAs software developers, many of us have been trained to dive right into implementation. As soon as we learn about a problem, we think about how to code a solution. But this is not always the right approach. Sometimes, it makes more sense to step back and look at the big picture, to try to …
Continue reading “Take Your Caller’s Perspective”
Read MoreI know it seems like a paradox but often we have to slow down in order improve our productivity. We need to step back and look at what we’re doing and see if we can find more effective ways to meet our goals. A NIST study (http://www.cse.psu.edu/~gxt29/bug/localCopies/nistReport.pdf) showed that over 80% of software developers’ time …
Continue reading “Slow Down to Go Faster”
Read MoreSo, what are the practices that support changeability in code? There are surprisingly few, and I’ve written about them extensively here in this blog, in my book, and I discuss them in detail in my courses: inject dependencies, embody the SOLID principles, keep code quality high, and understand design patterns… There’s a lot to it …
Continue reading “Changeable Code”
Read MoreDevelopers love writing code. It’s what we’re good at. It’s what we do. But all sorts of things get in our way: Meetings. Reading and interpreting specifications. And the worst time-sink of all—debugging. Most of us would rather do anything other than debugging, but that’s where we end up spending a lot of our time. …
Continue reading “Doing More of What We Love”
Read MoreAs Frank Herbert said in Dune, “Fear is the mind-killer.” He could have been talking about legacy code. As soon as we fear touching legacy code, we won’t do it. As a consultant, I know that merely giving my clients tools and techniques for working with legacy code isn’t enough, I also have to help …
Continue reading “Don’t Be Scared to Touch Legacy Code”
Read More