580 likes | 749 Views
10 Things Every Architect Should Know. Richard Monson-Haefel. 10 Things Every Architect Should know. Or. If you put 10 architects in a room and ask them to create a list of 10 things every Architect should know they will come up with either 10 different lists or a list of 100 things or both.
E N D
10 Things Every Architect Should Know Richard Monson-Haefel This work is licensed under Creative Commons Attribution 3.0
10 Things Every Architect Should know Or If you put 10 architects in a room and ask them to create a list of 10 things every Architect should know they will come up with either 10 different lists or a list of 100 things or both. This work is licensed under Creative Commons Attribution 3.0
10 Things Every Architect Should know - according to RMH • People are the platform • All solutions are obsolete • Data is forever • Flexibility breeds complexity • Nothing works as expected • Documentation is the universal source code • Know the business • Maintain the vision • Software architects should also be coders • There is no substitute for experience This work is licensed under Creative Commons Attribution 3.0
10 Things Every Architect Should know - according to RMH • People are the platform • All solutions are obsolete • Data is forever • Flexibility breeds complexity • Nothing works as expected • Documentation is the universal source code • Know the business • Maintain the vision • Software architects should also be coders • There is no substitute for experience This work is licensed under Creative Commons Attribution 3.0
People are the Platform Applications are for making users as effective as possible - Ben Geyer, Caterpillar Inc. This work is licensed under Creative Commons Attribution 3.0
People are the Platform Work on the things that matter most to customers first. - Sean Neville This work is licensed under Creative Commons Attribution 3.0
People are the platform Business People User Interface Information Systems This work is licensed under Creative Commons Attribution 3.0
People are the Platform Don't put domain modeling and service design on a pedestal and turn up your nose at UI and web work … domain modeling and data management are not the hard or time-consuming aspects of a project, the UI is. - Sean Neville This work is licensed under Creative Commons Attribution 3.0
People are the Platform One aspect of "giving in" to a great architecture is continually assessing if the decisions we're making are designed with the customer and their needs first and foremost, and our willingness to change prior decisions when we find they're not. - Luke Hohmann This work is licensed under Creative Commons Attribution 3.0
10 Things Every Architect Should know - according to RMH • People are the platform • All solutions are obsolete • Data is forever • Flexibility breeds complexity • Nothing works as expected • Documentation is the universal source code • Know the business • Maintain the vision • Software architects should also be coders • There is no substitute for experience This work is licensed under Creative Commons Attribution 3.0
All solutions are obsolete Hope that nothing you do will last. - Sean Neville This work is licensed under Creative Commons Attribution 3.0
All Solutions are obsolete Irrelevant Old School Mainstream Development Maintenance Early Adopters Idea Deployment This work is licensed under Creative Commons Attribution 3.0
All Solutions are obsolete Today’s solution is tomorrows problem - RMH This work is licensed under Creative Commons Attribution 3.0
All solutions are obsolete Understand disposable applications. These didn't exist even as recently as two years ago, but the combination of social platforms, hosted business models, certain methodologies, and certain frameworks has made it less expensive to start over and re-architect certain kinds of systems than it is to make those systems extensible and evolve them. - Sean Neville This work is licensed under Creative Commons Attribution 3.0
10 Things Every Architect Should know - according to RMH • People are the platform • All solutions are obsolete • Data is forever • Flexibility breeds complexity • Nothing works as expected • Documentation is the universal source code • Know the business • Maintain the vision • Software architects should also be coders • There is no substitute for experience This work is licensed under Creative Commons Attribution 3.0
Data is forever Technology, methodologies and business practices change, but data is forever - RMH This work is licensed under Creative Commons Attribution 3.0
Data is forever Business 2.0 Business Agility Just-in-Time Total Quality Management Six Sigma Agile Software Waterfall Rational Method Extreme programming Microsoft .NET Ruby Smalltalk COBOL Visual Basic Java EE Data This work is licensed under Creative Commons Attribution 3.0
10 Things Every Architect Should know - according to RMH • People are the platform • All solutions are obsolete • Data is forever • Flexibility breeds complexity • Nothing works as expected • Documentation is the universal source code • Know the business • Maintain the vision • Software architects should also be coders • There is no substitute for experience This work is licensed under Creative Commons Attribution 3.0
Flexibility breeds complexity Decide where you want to build in flexibility, it doesn't come for free and it will always adds complexity. - Rebecca Wirfs-Brock This work is licensed under Creative Commons Attribution 3.0
Flexibility breeds complexity Rigid / Constrained Flexible / Extensible Simple Complex This work is licensed under Creative Commons Attribution 3.0
Flexibility breeds complexity Simplicity requires courage and time - it takes a lot of guts to hold the line on a simple design and several iterations to shake out the redundancies and noise to get there. - Don Box This work is licensed under Creative Commons Attribution 3.0
Flexibility breeds complexity The strength of a framework comes not from what it allows you to do, but rather from what it does not allow you to do. - Richard Öberg This work is licensed under Creative Commons Attribution 3.0
Flexibility breeds complexity Adherence to or intellectual appreciation for a particular pattern is not an excuse to employ elaborate, complex frameworks that implement those patterns. Most new architects can't tell the difference, and are wedded to the expected solution rather than the actual problem. - Sean Neville This work is licensed under Creative Commons Attribution 3.0
Flexibility breeds complexity The more things are stable the more disruptive they are to your architecture when they change. But that doesn't mean you should make everything changeable. - Luke Hohmann This work is licensed under Creative Commons Attribution 3.0
10 Things Every Architect Should know - according to RMH • People are the platform • All solutions are obsolete • Data is forever • Flexibility breeds complexity • Nothing works as expected • Documentation is the universal source code • Know the business • Maintain the vision • Software architects should also be coders • There is no substitute for experience This work is licensed under Creative Commons Attribution 3.0
Nothing works as expected Independent of what the vendor says, the next version will not fix all your problems (and will even create many new ones). - Nitin Borwankar This work is licensed under Creative Commons Attribution 3.0
Nothing works as expected VISIBILITY Peak of Inflated Expectations Plateau of Productivity Slope of Enlightenment Trough of Disillusionment TIME Technology Trigger This work is licensed under Creative Commons Attribution 3.0 Gartner's Hype Cycle
Nothing works as expected Gartner's Hype Cycle for 2007 This work is licensed under Creative Commons Attribution 3.0
Nothing works as expcted Not all new technology is necessarily good technology, or better than older technology, just because it’s new and hyped and supposedly sexy - Randy Stafford This work is licensed under Creative Commons Attribution 3.0
10 Things Every Architect Should know - according to RMH • People are the platform • All solutions are obsolete • Data is forever • Flexibility breeds complexity • Nothing works as expected • Documentation is the universal source code • Know the business • Maintain the vision • Software architects should also be coders • There is no substitute for experience This work is licensed under Creative Commons Attribution 3.0
Documentation is the Universal Source Code A simple line of text is worth a thousand pictures. - Don Box This work is licensed under Creative Commons Attribution 3.0
Documentation is the Universal Source Code FORTRAN Modern English 1950’s 2000 BC 1700 BC 1900 BC 1800 BC This work is licensed under Creative Commons Attribution 3.0
Documentation is the Universal Source Code Re-use is about people and education, not about architecture - Jeremy Meyer This work is licensed under Creative Commons Attribution 3.0
10 Things Every Architect Should know - according to RMH • People are the platform • All solutions are obsolete • Data is forever • Flexibility breeds complexity • Nothing works as expected • Documentation is the universal source code • Know the business • Maintain the vision • Software architects should also be coders • There is no substitute for experience This work is licensed under Creative Commons Attribution 3.0
Know the business Business stuff and technical stuff are forever inter-twined. If you're an architect, learn to live in the white space. - Luke Hohmann This work is licensed under Creative Commons Attribution 3.0
Know the business Architecting is about balancing the needs of all the stakeholders in a system, from users to CEOs to operations personnel to future programming staff, over the short and long term, in the way that is appropriate to the context at hand. - Randy Stafford This work is licensed under Creative Commons Attribution 3.0
Know the business The first few members of your team will define the culture of your team for a long time to come. - Nitin Borwankar This work is licensed under Creative Commons Attribution 3.0
10 Things Every Architect Should know - according to RMH • People are the platform • All solutions are obsolete • Data is forever • Flexibility breeds complexity • Nothing works as expected • Documentation is the universal source code • Know the business • Maintain the vision • Software architects should also be coders • There is no substitute for experience This work is licensed under Creative Commons Attribution 3.0
Maintain the vision Conceptual integrity is the job of the architect. And it matters. - Luke Hohmann This work is licensed under Creative Commons Attribution 3.0
Maintain the vision Don't ignore (put your favorite quality here) until the last moment could be performance, security, scalability, whatever....all I know is when these qualities get shoe-horned in, the projects and architecture suffer. - Rebecca Wirfs-Brock This work is licensed under Creative Commons Attribution 3.0
10 Things Every Architect Should know - according to RMH • People are the platform • All solutions are obsolete • Data is forever • Flexibility breeds complexity • Nothing works as expected • Documentation is the universal source code • Know the business • Maintain the vision • Software architects should also be coders • There is no substitute for experience This work is licensed under Creative Commons Attribution 3.0
Software Architects Should also be Coders If you're unwilling to be hands-on, maybe you should keep your hands off. - Barry Hawkins This work is licensed under Creative Commons Attribution 3.0
Software Architects Should also be Coders Get into the trenches Get out of your Ivory Tower This work is licensed under Creative Commons Attribution 3.0
Software Architects Should also be Coders People who are responsible for a given technology should write code against it (or better yet as part of it) every single day. Bits talk, bullshit walks. - Don Box Every architect should spend at least 10% of their time doing code reviews with the engineers building their product. - Don Box This work is licensed under Creative Commons Attribution 3.0
10 Things Every Architect Should know - according to RMH • People are the platform • All solutions are obsolete • Data is forever • Flexibility breeds complexity • Nothing works as expected • Documentation is the universal source code • Know the business • Maintain the vision • Software architects should also be coders • There is no substitute for experience This work is licensed under Creative Commons Attribution 3.0
There is no substitute for experience You're not an architect until you've been working on the same system, and DEALING WITH YOUR CHOICES, for multiple releases. You're certainly not an architect just because you have a fancy title. - Luke Hohmann This work is licensed under Creative Commons Attribution 3.0
There is no substitute for experience This work is licensed under Creative Commons Attribution 3.0
There is no substitute for experience Don't go looking for an architect after the foundation has been laid - Nitin Borwankar This work is licensed under Creative Commons Attribution 3.0
There is no substitute for experience Creating great enterprise software isn't a matter of intellect as much as wisdom and tenacity -- the ability to see the similarity between one past experience (particularly a failure) and some aspect of your current context. - Sean Neville This work is licensed under Creative Commons Attribution 3.0
10 Things Every Architect Should know - according to RMH • People are the platform • All solutions are obsolete • Data is forever • Flexibility breeds complexity • Nothing works as expected • Documentation is the universal source code • Know the business • Maintain the vision • Software architects should also be coders • There is no substitute for experience This work is licensed under Creative Commons Attribution 3.0