Tuesday, July 22, 2008

Seek a wide breadth of knowledge


Jack of All Trades
An architect must seek to gain a wide breadth of knowledge on a variety of subjects. The proverbial Jack of All Trades, and Master of None. This requires a love and passion for learning. I believe strongly that learning is an acquired skill. There are those whom I have encountered who have not been proficient learners.

Learning is a skill
Strangely, it is difficult to teach the skill of learning. As everyone has their own unique way of acquiring information in the most efficient way possible (e.g. listening, speaking, writing, reading, etc). However, as it relates to the role of an architect, the acquisition of a large variety of info means that one of the most critical nuances of learning is the classification and understanding of what can be forgotten, or ignored completely.

Know what to forget
Data floods us all of the time. Like those word problems we had in school, we are presented with more data than is necessary to solve the problem at hand. Ideas and facts have a way of competing with each other for space in your brain. Attempting to remember all of the details about something has a tendency to smother other knowledge. Instead, know what is reference material that can be found easily within a book or a google search. Stop trying to be an encyclopedia, and instead become an index of knowledge.

Engineers vs Architects
While an Engineer or Developer will hone their craft becoming very deep and proficient at a subset of skills, the architect will cast their net wide. This means that an architect can rarely profess to be as competent in a skill that is a specialty of a developer. Java developers will be walking encyclopedias of arcane knowledge (proud of their ability to spout of JavaDoc specs from rote memory). On the other hand, the architect will know of the class in question.... they will know it's general purpose and use, and know some web links and books where more detailed information can be gained, or engineers who can be contacted for a brief technical discussion.

Buzzwords aren't knowledge
In the 16th century, Galileo Galilei changed the world of astronomy with the telescope. For generations, you were considered a foremost expert in astronomy by your ability to spout off the buzzwords from famous people who died nearly 2,000 years ago (Aristotle and Ptolmey). Galileo changed the game by bringing practical, testable, measurable knowledge to the table. Despite the initial outrage of the buzzword armed 'experts', buzzwords never can win over cold hard pragmatism.
As an architect, ensure that this breadth of knowledge you are gaining is in fact practical hands on roll up your sleaves in the trenches knowledge. Write some code, install some software, if not production code, then prototypes which actually work. I've witness architects fire up a webpage, consult the online demo, and consider themselves knowledgable enough to recomend the software to a development team.... only to find out later that developing in the tool is hard, has little documentation, and has zero traction in the industry to garner troubleshooting support from.

Never stop learning - Invest in yourself
In short, part of the mettle of an architect is to be a voracious learner. There are always new skills to learn and dabble with. Consider the knowledge an investment in your own career. Like stocks and bonds, investment in yourself pays dividends. As with the stocks, the best advise is to diversify. Spread your investment over high risk up and commers (e.g. Ruby, Scala), tried and true workhorses (e.g. Java, .Net), and low yield old timers (e.g. COBOL, LISP). And while my examples pertained to languages, this applies to all skills acquired. Don't frown upon or overlook the dying skillsets such as Mainframe. For the industry has the track record of resurecting ideas from the past.

A good example is Javascript Prior to it's resurrection and rebirth in AJAX, Javascript was frowned and spit upon in the Enterprise. With it's lack of debugging support, it wasn't a first class citizen on most web pages. Now it is difficult to find a website not utilizing Javascript to give a more responsive Web 2.0 experience to the user. This from a language which the industry slapped with a toe tag.

0 comments: