10 books that every architect must read

Post on 15-Apr-2017

1.172 Views

Category:

Software

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

10 books that every architect must read

ganesh samarthyam chaitanya kvnk

BEST TEXTBOOK ON SA

➤ Covers a wide range of topics in considerable depth + with rigour

➤ Perhaps the best textbook available today on software architecture

➤ Drawback: Written in “academic” style - lots of theory

➤ Can provide a solid foundation for becoming an architect

“Software Architecture: Foundations, Theory, and Practice”, Richard N. Taylor, Nenad Medvidović, and Eric M. Dashofy, John Wiley and Sons, 2009.

http://amzn.com/0470167742

PATTERNS IN SA

➤ This is one of the earliest and best books on architectural patterns/styles.

➤ First (and perhaps the best) in the series of book (POSA series)

➤ Disadvantage: Somewhat outdated (this is a 1996 book!)

➤ Does not cover modern patterns/styles

“Pattern-Oriented Software Architecture Volume 1: A System of Patterns”, Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal,

Addison-Wesley, 1996. http://amzn.com/0471958697

THE BOOK ON PATTERNS

➤ Classic work on patterns

➤ Provides insights on creating effective object oriented designs

➤ Generic “reusable” design knowledge

➤ Though dated (1994!), contents still relevant for architects

➤ Helps us think at a deeper level about design in general and object oriented design in particular

Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides,

Addison-Wesley, 1995. http://amzn.com/0201633612

DON’T MISS THIS BOOK

➤ This is perhaps the best book available for students and practitioners alike for learning software architecture.

➤ Focuses on key topics in software architectures: “ilities”, patterns/styles, documenting architectures, and evaluating architectures

➤ My opinion: “in Practice” in the title does not accurately reflect the contents of the book!

Software Architecture in Practice (3rd Edition), Len Bass, Paul Clements, Rick Kazman, Addison Wesley, 2012.

http://amzn.com/0321815734

REFACTORING IN PRACTICE

➤ Refactoring is a practical way to approach software architecture and design

➤ This book covers why care about software design viewed from the perspective of technical debt

➤ Covers 25 design smells classified as violation of the principles of abstraction, encapsulation, modularization, or hierarchy

➤ Interesting anecdotes and case studies reported from the trenches working in real-world projects

“Refactoring for Software Design Smells: Managing Technical Debt”, Girish Suryanarayana, Ganesh Samarthyam, Tushar Sharma, Morgan

Kaufmann/Elsevier, 2014. http://amzn.com/0128013974

www.designsmells.com

“NO-NONSENSE” BOOK ON SA

➤ If you like “no-nonsense” introduction to software architecture (especially useful if you are a programmer), this book is for you

➤ This book provides a good overview of software architecture

➤ It is written in an easy-to-read style with practices that an architect can adopt in their regular work

➤ Check slides here before purchasing the book

“Software Architecture for Developers”, Simon Brown, LeanPub, 2012. https://leanpub.com/software-architecture-for-developers

“IS” PERSPECTIVE ON SA

➤ This book shares practical experiences in architecting enterprise IT systems

➤ This book is more relevant for architects working in Information Systems domain

➤ if you are working in embedded systems or other specialized domains, you may perhaps gain very little

➤ Otherwise, it is an excellent and practical book on software architecture

“Essential Software Architecture”, Ian Gorton, Springer, 2006. http://amzn.com/3540287132

ON WORKING WITH STAKEHOLDERS

➤ Written by experienced/practicing architects, you will find it to be quite practical (though the book mixes quite a bit of theory)

➤ Emphasizes on working with stakeholders, and using viewpoints and perspectives

➤ However, be warned: with the focus on viewpoints and perspectives, many other important topics in software architectures (e.g., NFRs, styles) are not covered well

➤ Also it is a bit voluminous, so you need patience if you want to complete reading this book

Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives, 2nd Edition, Nick Rozanski, Eóin Woods,

2011. http://amzn.com/032171833X

SOFT SKILLS FOR ARCHITECTS

➤ Having only technical skills isn’t enough for an architect – softskills (in addition to business skills and domain knowledge) are equally important to live effectively as an architect

➤ This book presents a lucid and detailed discussion on 12 specific skills required for an architect

➤ If you are a developer and aspire to become an architect, you’ll find this fun-to-read book useful to hone your non-technical skills

12 Essential Skills for Software Architects, Dave Hendricksen, Addison-Wesley, 2011 http://amzn.com/0321717295

ON DEVELOPING ENTERPRISE APPLICATIONS

➤ Covers patterns related to domain logic, database mapping and access, web presentation, concurrency, etc.

➤ This book does for enterprise application development in comparison to what GoF (Gang of Four) did for software development in general.

➤ Written well with numerous examples

➤ Also guides us on choosing from a vast number of different types of patterns available (structural, web presentation, behavioral, domain logic, etc.).

➤ Given changes in this domain, a bit dated now

➤ Strongly recommended if you are involve in developing enterprise applications Patterns of Enterprise Application Architecture, Martin Fowler,

Addison-Wesley Professional, 2002. http://amzn.com/0321127420

www.designsmells.com

ganesh.samarthyam@gmail.com

bit.ly/sgganesh

@GSamarthyam

top related