a journeyman's perspective
agile, architecture and architects
architect == experienced technical people
agile changed our attitude towards design
upfront design
upfront design
continuous design
refactoring continuous integration
automated functional tests agile database techniques
unit tests
supported by
not everything is cheap to change
even with tests
concurrency
performance scalability
decoupled applications
race conditions
system partitiondistributed
computing………
transactionssharding
but not everyone faced this problem
craftsmanship is not a substitute for experience
you need both
also architects didn’t transform themselves
whats our craft?
a journeyman's perspective
role of architect
...be a technical coach
..take delivery ownership
....be a coach who plays
....pair and deliver few stories
...but also stay outside
.....understand more than application architecture
functional tests
mocking framework
continuous integration
builddatabase
development
performance testing
branching strategysource
controls
...manage technical debt
documentation & UML
customer care about software
code is documentation
people are the documentation
process of design is important its output is not
documentation was also time to think about design
documentation depreciates, while the software becomes complex
metrics
cannot thrust quality using metrics
metrics == to do list
of all things important only 3% can be measured
Deming
development process &
team organization
developer huddle show cases
Conway's law
organizations which design systems are constrained to produce designs which are copies of the their communication
structures
Few things I have learnt
design individually review together
design individually review together
design together review individually
maker's schedule
manager's schedule
http://paulgraham.com/makersschedule.html
build relationships
customer, developers, project manager, testers, business analysts, operations
they are all your customers
questions
twitter, blogspot, linkedin, google-sites
@