Sunday, June 28, 2009

97 things SW Architects should know

Found this fantastic website. It's more of a wiki where people have collaborated to bring out a master list of "gems of wisdom" from SW architects for all future ones...
http://97-things.near-time.net/wiki
Here's the collected list (as of today)...I guess this has been distilled and released as a book by O'Reilly....would be a great book to get hands on....
  1. Don't put your resume ahead of the requirements by Nitin Borwankar
  2. Simplify essential complexity; diminish accidental complexity by Neal Ford
  3. Chances are your biggest problem isn't technical by Mark Ramm
  4. Communication is King; Clarity and Leadership its humble servants by Mark Richards
  5. Architecting is about balancing by Randy Stafford
  6. Seek the value in requested capabilities by Einar Landre
  7. Stand Up! by Udi Dahan
  8. Skyscrapers aren't scalable by Micheal Nygard
  9. You're negotiating more often than you think by Michael Nygard
  10. Quantify by Keith Braithwaite
  11. One line of working code is worth 500 of specification by Allison Randal
  12. There is no one-size-fits-all solution by Randy Stafford
  13. It's never too early to think about performance by Rebecca Parsons
  14. Application architecture determines application performance by Randy Stafford
  15. Commit-and-run is a serious crime. Respect your Colleagues by Niclas Nilsson
  16. There Can be More than One by Keith Braithwaite
  17. Business Drives by Dave Muirhead
  18. Simplicity before generality, use before reuse by Kevlin Henney
  19. Architects must be hands on by John Davies
  20. Continuously Integrate by Dave Bartlett
  21. Avoid Scheduling Failures by Norman Carnovale
  22. Architectural Tradeoffs by Mark Richards
  23. Database as a Fortress by Dan Chak
  24. Use uncertainty as a driver by Kevlin Henney
  25. Scope is the enemy of success by Dave Quick
  26. Reuse is about people and education, not just architecture by Jeremy Meyer
  27. There is no 'I' in architecture by Dave Quick
  28. Get the 1000ft view by Erik Doernenburg
  29. Try before choosing by Erik Doernenburg
  30. Understand The Business Domain by Mark Richards
  31. Programming is an act of design by Einar Landre
  32. Time changes everything by Philip Nelson
  33. Give developers autonomy by Philip Nelson
  34. Value stewardship over showmanship by Barry Hawkins
  35. Warning, problems in mirror may be larger than they appear by Dave Quick
  36. The title of software architect has only lower-case 'a's; deal with it by Barry Hawkins
  37. Software architecture has ethical consequences by Michael Nygard
  38. Everything will ultimately fail by Michael Nygard
  39. Context is King by Edward Garson
  40. It's all about performance by Craig L Russell
  41. Engineer in the white spaces by Michael Nygard
  42. Talk the Talk by Mark Richards
  43. Heterogeneity Wins by Edward Garson
  44. Dwarves, Elves, Wizards, and Kings by Evan Cofsky
  45. Learn from Architects of Buildings by Keith Braithwaite
  46. Fight repetition by Niclas Nilsson
  47. Welcome to the real world by Gregor Hohpe
  48. Don't Control, but Observe by Gregor Hohpe
  49. Janus the Architect by Dave Bartlett
  50. Architects focus is on the boundaries and interfaces by Einar Landre
  51. Challenge assumptions - especially your own by Timothy High
  52. Record your rationale by Timothy High
  53. Empower developers by Timothy High
  54. It is all about the data by Paul W. Homer
  55. Control the data, not just the code by Chad LaVigne
  56. Don't Stretch The Architecture Metaphorsby David Ing
  57. Focus on Application Support and Maintenance by Mncedisi Kasper
  58. Prepare to pick twoby Bill de hOra
  59. Prefer principles, axioms and analogies to opinion and taste by Michael Harmer
  60. Start with a Walking Skeleton by Clint Shank
  61. Share your knowledge and experiencesby Paul W. Homer
  62. Make sure the simple stuff is simple by Chad LaVigne
  63. If you design it, you should be able to code it by Mike Brown
  64. The ROI variable by George Malamidis
  65. Your system is legacy, design for it by Dave Anderson
  66. If there is only one solution, get a second opinion by Timothy High
  67. Understand the impact of change by Doug Crawford
  68. You have to understand Hardware too by Kamal Wickramanayake
  69. Shortcuts now are paid back with interest later by Scot Mcphee
  70. "Perfect" is the Enemy of "Good Enough" by Greg Nyberg
  71. Avoid "Good Ideas" by Greg Nyberg
  72. Great content creates great systems by Zubin Wadia
  73. The Business Vs. The Angry Architect by Chad LaVigne
  74. Stretch key dimensions to see what breaks by Stephen Jones
  75. Before anything, an architect is a developer by Mike Brown
  76. A rose by any other name will end up as a cabbage by Sam Gardiner
  77. Stable problems get high quality solutions by Sam Gardiner
  78. It Takes Diligence by Brian Hart
  79. Take responsibility for your decisions by Yi Zhou
  80. Dont Be a Problem Solver by Eben Hewitt
  81. Choose your weapons carefully, relinquish them reluctantlyby Chad LaVigne
  82. Your Customer is Not Your Customer by Eben Hewitt
  83. It will never look like that by Peter Gillard-Moss
  84. Choose Frameworks that play well with others by Eric Hawthorne
  85. Making a strong business case by Yi Zhou
  86. Pattern Pathology by Chad LaVigne
  87. Learn a new language by Burk Hufnagel
  88. Dont Be Clever by Eben Hewitt
  89. Build Systems to be Zuhanden by Keith Braithwaite
  90. Find and retain passionate problem solvers by Chad LaVigne
  91. Software doesnt really exist by Chad LaVigne
  92. Pay down your technical debt by Burk Hufnagel
  93. You can't future-proof solutions by Richard Monson-Haefel
  94. The User Acceptance Problem by Norman Carnovale
  95. The Importance of Consommé by Eben Hewit
  96. For the end-user, the interface is the system by Vinayak Hegde
  97. Great software is not built, it is grown by Bill de hora

Other Things Software Architects Should Know

The axioms have been accepted into the web project but not the 97 Things book . Axioms here are complete and useful and should be considered great runner-ups to the axioms on the other two lists. Thanks to everyone who conributed these axioms as well as others - they all provide great advice and should be read in addition to the other axioms.
  1. Architects should be Pragmatic by John Davies
  2. Applications are for making users as effective as possible by Ben Geyer
  3. Community by Evan Cofsky
  4. Know all the rules -- so you know which ones you're breaking by Kevin Bedell
  5. Not all problems are solved with a layer of abstraction by Apu Shah
  6. Learn to be humble by Apu Shah
  7. Architecture is more than just the pieces byPaul W. Homer
  8. Responsible explorer by George Malamidis
  9. Design for limited resources by Mncedisi Kasper
  10. The fastest system components are the one's that aren't there by John Tullis
  11. The closer the better by John Tullis
  12. It's not an architecture if it can't be managed by Dan Pritchett
  13. Your project does not exist in a vacuum by Charles Martin
  14. Design for needs, not wants by Claudio Perrone
  15. Consider application failures, and design for ease of recovery by Stephen Jones
  16. Risk priority by George Malamidis
  17. Test the Architecture by Matt McKnight
  18. An architect's responsibility never finishes after the architecture is created by Kamal Wickramanayake
  19. Change is a constant; architecture needs to be adaptable and the architect needs to be a change driver by Daniel Noguerol
  20. One alternative is a trap, two are a dilemma, three are freedom by Lior Bar-On
  21. Work on thy soft skills just as much as on your hard skills by Arnon Rotem-Gal-Oz
  22. Examine the sourcing of calculated fields by Stephen Jones
  23. Feel it by Mahomedalid Pacheco
  24. No, the goal is not the code nor the design by William Martinez
  25. Quality is a feature by Sam Gardiner
  26. Good Requirements Are Boring by Eben Hewitt
  27. Don’t Make Worlds, Make Containers for Worlds by Eben Hewitt
  28. Architecture = SPICE RTM by António Melo
  29. Know your limitations by Peter Gillard-Moss
  30. Tarchitects vs. Marketects vs. Carhitects by Yi Zhou
  31. Read Philoophy (and related Arts) by Keith Braithwaite
  32. Prioritize Challenges to Drive Architecture Decisions by Charlie Alfred
  33. Reduce Conceptual Distance by Charlie Alfred
  34. The User Interface drives the User Experience by Burk Hufnagel
  35. If you're unwilling to be hands-on, maybe you should keep your hands off by Barry Hawkins
  36. Lead by Influence by Travis Illig
  37. Software Should Be Invisible by Eben Hewitt
  38. Requirements are not the measure of success but the beginnings of a conversation by Christopher Dempsey

No comments: