I’ve been fortunate to work with clients whose business requires a large amount of scientific research. One client is so committed to Scrum that they brought their researchers to my Scrum Developer Certification training and for the first time I seriously looked at how to use the practices of Scrum and XP to do scientific research.
Many of the scientists I have trained also write code as part of their research. Just like us developers, their code needs to be understandable, maintainable, and extensible. They immediately saw the value of the Agile practices for writing quality software.
Some of the scientists I trained don’t write code at all but find value in the curriculum none-the-less. They say it helps them hone their critical thinking and abstraction skills. It also helps give them a framework for doing their research. Some areas where these people find value are:
- Design Patterns to communicate core concepts and discover elegant solutions
- Test first development as a way of designing and defining a system
- Using iterations to stay focused and get frequent feedback
- Refactoring complex implementations into simpler ones
- Swarming, spiking, and pairing for collaboration
- Defining done with acceptance tests
Many of the researchers I’ve trained have become huge advocates of Scrum and XP because they find it so valuable to their research. Like us, they’ve had to figure out a lot on their own much of the time and build things that have never been built before.
Come to think of it, software developers share a great deal in common with research scientists. Perhaps this is why building software can be so challenging at time. Building software is not like building a building, it is more like research and discover!