Sunday, January 06, 2008

Software Architect - A study plan

I have designed and implemented many successful software systems in my career. One system processed more than $65 million dollars in its first year. Another implemented system was presented by the customer at a national conference as a best practices approach to solving a common but vexing problem. The point is that I have no problem conceptualizing successful software solutions to complex business needs. Does that make me a Software Architect? Unfortunately the answer is No.

In order to be a successful Software Architect in today's business environment, you must be able to employ generally accepted best practices to complete an efficient, flexible, and appropriate object-oriented design and then communicate that design to developers in a way that ensures the product can be built and delivered in stages and ultimately meets the customer needs. You must fully understand the business environment that has given rise to the need to the software system and how your design will satisfy that need, both now and in the future. Communication, project management, and general people skills are very important characteristics of a successful Software Architect.

Assuming you enjoy working with others and have the soft-skills, what materials can be studied to gain the hard-skills that are needed? Once I master the materials listed below and get a chance to fine-tune their use, then maybe I will be comfortable calling myself a Software Architect.

I mentioned my study plans at a recent meeting of other developers and I was surprised by how eager the other developers were to know exactly what I was studying. So here it is:

Books:
Software:
  • Enterprise Architect 7.0 Professional as a high-quality affordable tool for preparing UML 2.1 diagrams with a familiar Visual Studio interface. Great tutorial materials on the web site.

  • Design Pattern Framework 2.0 as an excellent resource to understanding and implementing design patterns in terms of C# and VB.Net code. As a bonus, it includes the .Net code for the Head First Design Patterns book above since that book shows the examples only in the Java language. Great tutorial materials on the web site.
Libraries:
  • Microsoft Enterprise Library as a collection of pre-written libraries that are easily incorporated into your system. Completed and full-tested code is even better than design patterns and can eliminate coding for one or more modules of your system. Enterprise Library includes application blocks for caching, cryptography, data access, exception handling, logging, policy injection, security, and validation.
Podcasts:
  • .Net Rocks as a view of what is hot and happening in the .Net developer world.

  • ARCast as a great overview of the concepts, trends, and people involved in .Net architecture.
So there you have it.

Disclaimer: I gathered input from some very smart people including experienced Software Architects when preparing this list. That said, this list is of my own making and does not guarantee results of any kind and comes with no warranty.

Hope that helps!

Joe Kunk
Okemos, MI USA

2 comments:

Unknown said...

Joe,

You have done this world a great favor by making that process explicit and easy.
Words are'nt enough to thank you.

i-netsolution said...
This comment has been removed by a blog administrator.