Saturday 13 September 2014

Excellent resources to expedite your Software Architecture Skills

When I started my career as a "Trainee Developer", I was fascinated about just java coding, coding and coding... Then I learned fundamentals and principles of OOP Design and few more programming languages... As I grown my experience in software development and design; I started to get opportunities to grasp architecture of legacy systems, create architecture for proposed applications, envision high level architecture for proposals, analyze architecture and NFRs… And yeah, building architectural proficiency looks like a long journey!

In this post, I am publishing list of my favorite online resources which helping me during the journey of building my software architectural know-how. 

On a separate note,


I am greatly thankful to below mentioned assets and also endorse them for building proficiency in software architecture.

Microsoft Application Architecture Guide

Even though it is for Mocrosoft Application Architecture; the explained fundamentals, guidelines and practices of software architecture and design  is also applicable for Java Platform based Application Architecture. I simply love it! Also Architecture 101: Skyscrapr has interesting articles covering architectural perspective.




Software Architecture in Practice by Len Bass, Paul C. Clements, Rick Kazman

One would find "SoftwareArchitecture in Practice, Third Edition" to be a valuable resource for getting up to speed on the state of the art; when need to design, develop, or manage large software systems (or plan to do so). From this book, one would learn how to envision, create and analyze architectures using provided case studies and some of SEI methods explained in the book. 

One needs to purchase this book, however its second edition is available online.




Software Architecture Documentation Case Studies by SEI Wiki

The known architecture description styles are  ISO/IEC 42010 (an international standard for architecture descriptions of systems and software) / 4+1 Architectural View Model / Views and Beyond: The SEI Approach to ArchitectureDocumentation.

But for newbies to software architecture documentation, the case studies on SEI Wiki is great place to start containing the sample architecture documentation of the "Adventure Builder" and the "Java Pet Store" applications.


On a separate note,
  • One would need to understand UML, when it comes to Architecture documentation. If you don't know UML, then see http://www.uml-diagrams.org/


97 Things Every Software Architect Should Know

Great compilation of things which every software architect should know, and also published as a book by Oreilly.




Architectural Posts

Apart from systematic approach of building architectural skills, one should develop habit of exploring architectural experiences shared by intelligentsia. There are many resources for reading architectural posts, but my favorite are highscalability.com and infoq.com.



Frameworks for Enterprise Architecture

Apart from software architecture, when it comes to enterprise architecture, mainly I refer TOGAF framework documentation.




Disclaimer:
Undoubtedly there are unlimited resources for learning and building Software Architecture know-how. So I don't claim the above-mentioned are the best, but I am saying that those are my favorite and I trust recommending those to others.


Finally if you know any better available online resource for enhancing software architecture skills, then please share in comments.