QuoteOriginally posted by: CuchulainnMaster Planner: Fred Brooks Shows How to Design Anything QuoteWired: How has your thinking about design changed over the past decades? Brooks: When I first wrote The Mythical Man-Month in 1975, I counseled programmers to ?throw the first version away,? then build a second one. By the 20th-anniversary edition, I realized that constant incremental iteration is a far sounder approach. You build a quick prototype and get it in front of users to see what they do with it. You will always be surprised. How many libraries get thrown away and start again?? How many are incrementally improved?Improvementi think the main obstacle for incremental improvement is no or not enough code commentary. a new guy who get the task to improve stuff have to understand the existing code. there is a saying you should comment more than less. hmmm... i get used to to write summary comment why the current code sucks (at least i try). ... or that i heard that there is a better solutions ... or why it become a problem for reusability (eg. software you have already in mind)... that is quite helpful some months later.at least there is always a guy who know better, is smarter, more experienced in programming.dont waste his time to understand the messiness and slatternliness of your code. be honest and tell him how the code sucks. librariesActually boost is an good example. it uses ATLAS. but ATLAS includes not all LAPACK routines. then it might happen you need the missing LAPACK routines. So guess what happens? Noooooo... you dont call missing LAPACK routines in your C++ (or integrate a nice way), you will write old-new algorithms in C++ (at the risk that the LAPACK algorithm is state-of-the-art, and your's is not).