Just today had a chance to attend Martin Fowler’s talk about Software design and Architecture in 21st century here at Pune, organized by Thoughtworks. In this post, I am iterating through some of his thoughts from today’s talk plus links to some of his very good articles and videos.
Martin Fowler’s talk was preceded by a talk from Mr. Vivek Singh about Architecture, Architects and Agile – A journeyman’s perspective. He talked mostly about architect’s (i.e. senior most person in agile team) role in team. In some interesting observations form him was how a manager’s timetable Vs maker’s time table works. Manager’s generally schedule there day in terms of hours, where they set out for different meetings and hourly completable tasks, while a maker’s time table i.e. developers time table is scheduled in two parts of day – before lunch and after lunch. A maker needs time to dig into his things and come up with some creative things. So, for architects, as being team leader it is better suited to schedule there time alternatively in these two paradigms.
After that, Mr. Fowler as he said, rather than giving a single long boring talk, divided his talk in three small boring talks(though there wasn’t any). First topic was about continuous integration. In first
few slides, he covered how continuous integration can help from version control point of view. Rather than few developers working together and merging the feature branches after many days to find out that both groups made some basic architecture changes and come back to original fork point to solve conflicts, it’s good with continuous integration to discover these things earlier and correct them. With graph of pain Vs deployment time deply he justified that rather than having all pain in the end because of late deployment, have a chunks of pains with continuous deployment.
More about continuous deployement from Martin Fowler – http://www.martinfowler.com/articles/continuousIntegration.html
Second topic was about Utility vs Strategic dichotomy. He reminded one of the incidents from past where one of salesman had to listen from prospect that “software is like sewage pipes, I want it to work reliably but I don’t want to know about the details and what goes through it”. Most of the software development comes under utility sector, while it’s very less as strategic. Strategic softwares are characterised by speed, innovation need for business to do it better.
He revealed his secret of taking good photographs – take many. As you take many photograph, chances are at least some will be good i.e. to having one innovation means having many failures. Same applies for software. But here with agile you have advantage of failing fast, and so you may get leisure to fail more. 😉
About Utility Vs Dichotomy – http://martinfowler.com/bliki/UtilityVsStrategicDichotomy.html
One more video talk – here
Third talk was about Domain Specific Languages. Some links from his blogs – http://www.martinfowler.com/bliki/DomainSpecificLanguage.html
So, this solved many of questions about agile, architecture but also created new and many questions, building more interest towards it.