This new book from Gregory T. Brown (@practicingdev) provides a fresh look at the skills and habits that modern software developers need to possess in order to advance past the stage of slinging code around. The most clever code in the world is useless if it’s solving the wrong problem, or solving the right problem in the wrong way, whether that’s because it only addresses a user’s needs tangentially, or is brittle in the face of real world constraints. None of us should settle for being just a code monkey.
Remember learning about fractals in math or science class? They’re repeating patterns that can be viewed at any scale. That is, keep zooming in on a fractal and you’ll keep seeing the same image — and the same complexity. When a project is first estimated, requirements are usually written at a high level with relatively little attention to detail. That’s especially true today, with the current focus on early releases, beta software, and fast iterations. Why write down a lot of details that are likely to be thrown away before implementation when the first customer release sends the app in a completely different direction?