Notes from the Software Architecture Fundamentals a video series on Safari books online - continued.

Architecture Soft Skills

Requires leadership. The 3Cs.

Communication

Effectively communicate ideas, concepts, issues and solutions with stake holders - developers, qa, devops, business

Explain on white board rather than writing documents

Explain complex technical topics to non technical people

Colloboration

Solicit ideas

Get feedback early and often

Clarity

Articulate architectural solution in clear concise terms as applicable to the stake holder

Translation skills business requirements to architecture are important

Techincal knowledge

Knowledge pyramid

  1. Top - The stuff you know. Need to maintain.

  2. Middle - The stuff you know, you don’t know.

  3. Bottom - The stuff you don’t know, you don’t know.

More of top leads to more depth

More of middle leads to more breadth.

Architect should aim to increase breadth, reduce bottom.

Multi-platform knowledge, otherwise Architect would have a narrow focus. Hammer analogy.

To increase breadth, read books, infoq, attend conferences, see videos.

Aim to increase business domain knowledge.

Know the trends and issues.

Gain trust by speaking the business language.

Use appropriate methodology and strategy

Understanding large codebases

Metrics

Cyclometric complexity

C&K

Source monitor

Heat maps (Cruise control)

panopticode

Code coverage

Size and complexity pyramid (inCode)

Toxicity chart

X-Ray : Eclipse plugin, a probe

Proximity alert

Codecity

Signal to noise

No ‘1 true metric’

metrics gathered and ignored

inaction/over action

Hawthorne effect

Initial assessment - More light leads to more productivity. Later finding proved that light had on affect, but the act of measuring productivity had increased productivity.

Essential vs accidental complexity

Probes vs Radiators