Agile methods have some really good points: rapid feedback to customers who are considered part of the team, incremental building from a small, simple stable base, short time-boxed plan-do-show cycles, and continuous testing to prevent surprises. It is also interesting to talk about how agile methods approach designing systems. There seems to be a backlash against architecture, in the form of criticizing ‘BUFD’ – big up front design (thinking you can design for every eventuality before you really understand the requirements), and in the mantra ‘YAGNI’ – You aint gonna need it (never designing for the future, only putting the absolutely necessary things into your design as you need them). There has been quite some debate around these aspects, e.g. Are these valid criticisms of architecture? Do we need architecture in agile projects? Is there a way we can get the best of both worlds?
This talk is titled ‘Design in Agile Methods’, and looks at:
– design as art or science,
– engineering versus software design,
– the challenges of software design – urgency, complexity and uncertainty,
– two contrasting approaches to deal with these challenges (predict and control vs embrace change and learn),
– types of simplicity,
– cost of change, and
– how agile methods approach these issues in a specific way.
Wednesday, 15 February 2012, 18h15
125 Buitengracht Street,
125 Buitengracht Street,
18:15 Welcoming and Introduction
18:20 Design in Agile Methods
19:20 Closing and Thanks
19:25 Networking & Discussion
I’ve been in industry and academia for some time – from the late 80’s. I have a PhD in Computer Science from the University of Pretoria (in the area of using an expert system to supervise evolving software designs), and am currently studying towards a second PhD in Information Systems at Leiden University in Holland (in the area of trying to improve software architecture decisions). I am part of a research group called Espresso, based at the University of Pretoria, and consisting of people who are interested in software engineering research. I supervise postgrad students at UP too. I have worked in large corporates (Altech Group, Momentum, Absa) and small companies (GeoSystems, SystemicLogic, Alacrity) over the years, primarily doing software development and solution/application architecture. I’m currently serving as CTO for Alacrity, a small(ish) software development and services company. My current areas of interest are how to design good large systems and how to get people to work together to achieve things that are too large for one person.