"great design is the key to increased productivity"
Given how many times the 90/10 principle will brutally murder your time estimates ("we're 90% done, so there's only 90% left to go!"), learning to also harness it in your favor as antirez talks about is a great programmer differentiator. If 90% of the effort is coming from 10% of the design, and you can find some way to cut that part of the design in half, you just cut 45% of your effort out. My numbers are made up, but the principle holds. Most of the time you don't get that lucky, but every once in a while it is possible to do even better; I have, on occasion, seen entire seemingly-massive multi-month projects dissolve into 200 lines of code in the right place, built on the right foundation.
I'm proud to say that I've accomplished that, at least once. My company was developing a new feature, hundreds of medical textbooks that would be searchable and readable online. The source content for each textbook consisted of a huge xml file and a bunch of images. The problem we faced was that many of our customers were government-funded libraries, and they required a physical product for anything they purchased. (We wanted to sell renewable access licenses for the online product.)
We were discussing this in a meeting with the C-level execs and other top employees, and they were working out a plan for bulk manufacture of CDs containing the textbook content. Many of the textbooks already had CDs that came with them when you bought the physical book, but most of them did not, and we'd need to manufacture copies in either case. There was liner material to produce, CDs and cases to buy, global distribution to manage, and a new department and headcount needed to manage all of this.
I interjected with an idea. I was building the online display of this content, and had already built everything needed for converting the xml into a table of contents display and per-chapter displays, all in html with the styling that we wanted, including features like the substantial amount of cross-linking between sections, chapters, figures, indexes, appendices, etc. So I told them "You know, as part of the production process where I'm converting all of this xml for online display, I can also produce a set of static files that would work well for an offline display, either sitting in a folder or on a CD. We can do that, create an iso image from it, and let the customers download the iso and burn their own CD if they want physical possession. It'd be exactly the same content, and would only lack the online searching and dynamic excerpting features that the website has which depend on our search engine."
They were stunned. They discussed, and decided that for most of the customers this would be just fine, and for the handful of exceptions we could burn the CD for them and mail it. We included a cover-art image from the book on the CD if they wanted a liner, and our download links had a little help icon that pointed to documentation we wrote for a few free CD burning utilities. Overall cost was a few extra days of development time.
Hundreds of thousands, probably, and my work on that textbook feature brought in millions in revenue. Another aspect of the project is that I wrote a custom XML content storage and retrieval database, and spending a couple of months proving that my solution was far more scalable and performant than either the Oracle-based solution or commercial XML database solution that the director of development and CTO preferred. So I saved the company a 6-7 figure annual licensing cost as well.
My reward was short-lived immunity to the corrosive political environment that the CTO and director of development had created. The director came from a competitor we had acquired for their customers (not their tech), and right from the start he was open about wanting to eliminate our development team so that his old team could be in charge. They failed due to incompetence, and he and his entire team were let go some years later. The CTO lasted longer, eventually firing my manager without cause, and I quit a few months later. The overall product we were responsible for (which the textbooks were a part of) is still running, and it is still their flagship. But very little has been done to it in the past seven years since I left. The CTO was let go a year or two after I left.
Handsomely rewarded? Hardly. That's not how it goes in big corps. Presiding over the hand-off from the team that was let go was satisfying, and knowing that my software is still running strong after many years of neglect because everyone who was capable of maintaining it quit is also somewhat rewarding.
Heh - did pretty much the same thing (not for medical textbooks) but included a title/keyword/first few hundred works text search thing as a Java applet, for this "Best viewed with Netscape 3!" was actually relevant! ;-)
At one of my first jobs, my employer had $1.2MM and 10 people budgeted full time for 2 years to build a project that would allow managers to make queries on a very large dataset.
I pored through the specs, talked to everyone who would use this, and realized all the queries could be calculated from a much smaller, summarized version of the data.
I wrote a script that would create an Excel PivotTable every month and send it to everyone who asked, solving the problem in a few weeks with a <500 lines of code. The execs decided it would not be worth spending an extra two years to get the exact same answers in a web UI.
Given how many times the 90/10 principle will brutally murder your time estimates ("we're 90% done, so there's only 90% left to go!"), learning to also harness it in your favor as antirez talks about is a great programmer differentiator. If 90% of the effort is coming from 10% of the design, and you can find some way to cut that part of the design in half, you just cut 45% of your effort out. My numbers are made up, but the principle holds. Most of the time you don't get that lucky, but every once in a while it is possible to do even better; I have, on occasion, seen entire seemingly-massive multi-month projects dissolve into 200 lines of code in the right place, built on the right foundation.