How does the Gradle core team develop the build domain model?

Are you using any modeling tools whatsoever to assist you when you are extending or refactoring the domain model? Or do you do model it directly in the code? Opposed to filling wiki pages (or somer other tool) with specifications, and then dissecting them again. Am I correct in assuming that the roadmap, the issue tracker and the forum discussions are what mainly drives the project forward, and executable tests and code are more or less the direct result of this process? I hope this is not a generic question to ask, but the Gradle way of how to make sense of things seems to be very successful. I also added a praise in exchange for an answer :wink:

Good question. Yes we focus on the code. But there is an extensive set of ‘design specs’ in the codebase, at https://github.com/gradle/gradle/tree/master/design-docs.

Developing those specs is a team effort, and happens via discussions on the Gradle developer list (http://www.gradle.org/development) as well as some internal Gradleware discussions. We try our best to make this an open process, but as you can imagine, a lot of design happens in informal Skype sessions and occasional meetups.