12 December, 2010

My Reading List

This is the live content I will be using as my reading list.

Technical
- Software Craftmanship - Currently reading
- The Design Patterns Small Talk Companion - Under progress
- Expert One on One - J2EE without EJB - Finished
- Agile and Iterative Development - Finished
- TOGAF 9, Pocket Guide - Finished
- Agile Project Mgmt with Scrum - Finished
- Java Server Faces - Currently Reading
- Applying UML and Patterns - Finished, but needs some revisits
- Evolutionary Arch and Design - Currently Reading
- Architecture Principles - Finished
- Information Arch and User Experience - Currently exploring
- Architecture Review (ATAM, SARA) - Currently Reading
-

Non-Technical
The Toyata Way - Currently Reading
Mega Living - Currently Reading
Discover Dimond In You - Finished
The World is Flat - Currently Reading
The Malgudi Days - Currently Reading
The Koutilya Arthasastra - Currently Reading

Concrete skills

Each and every individual professional in the IT must have self analysis on some concrete skills. Here what I mean by concrete skills is nothing but deep understanding on the subject which can be easily appreciated and recieved by your collegues.In other words, these concrete skills demonstrates your authorative knowledge and experience on the subject. For example, following are few subjects which myself analysed on my professional life mostly reflects my day to day actvities.

Mostly concrete
Architecture, OOA/D, General Programming skills, Review, Agile engineering practices, Java/J2EE, build scripts, unit testing, Documentation, Presentations on different subjects, Leadership, Pre-sales etc.

No so concrete
Spring, JSF, Javascripts, CSS, HTML, SQL/PL-SQL, Installations, Debugging,
network, protocols, User experience etc.

This kind of analysis puts you to pritorize your free time towards reading.

08 December, 2010

Does architecture care about implementation?

Does really architecture care about implementation details ie. design realization and subsequent code development?

In my opinion, hands-on experience atleast to ensure reference architecture will provide great value-add to entire architecture. Otherwise it will be the quiet abstract activity which may not be well recieved by development community.

The reference architecture might contain:
1) The implementaion view of the core components
2) All application specific cross cutting concerns
3) Vertical slice of the one use case to demonstrate the architecture realization; kind of Reference implementation for the specification
4) Do's/Dont stuff on target technology stack; chosen one
5) Application build
6) Development best practices/process overview
7) Unit test strategy (atleast development front)
8) Major component/module interface specifications (if possible; generate
javadocs)
9) Usage of static analysers with in the build environment; it would be great if your tooling support best practices customization

It is very easy to slip from abstraction to implementation

During architecture development, sometimes we feel that it is very easy to slip from conceptual/pure architectural thinking to our faviroute technology specific/implementation specific thoughts. In my opinion this is very natural process; but care must be taken to ensure that architecture purity should not influenced by our pet technical jargons.

One new learning / day - however small it is

Read a blog / or article Watch TED talk  Read a small self-help book (many free eBooks available with less than 100 pages/can be completed i...