I'll be presenting at Agile2009 in Chicago on the Tools for Agility stage on Tuesday 25 August, 4:45pm-5:30pm.
Here is my session description from http://agile2009.org/node/2762
WANTED: Seeking Single Agile Knowledge Development Tool-set
Aren’t code, backlog-items, tests, designs & documents all just different forms of system knowledge at different levels of detail? Why can’t the same tools help refactor, browse, search, and provide build/test automation for non-code forms of knowledge without requiring a separate tool/repository for each format? This talk is intended as a challenge to tool vendors/developers to see how this simple treatment of all non-code items as part of a single, unified project knowledge-base can be at once both immensely powerful, and imminently practical, without requiring too much added complexity.
Approximately ~30 minutes of slides/presentation to “make the case” for why this approach is useful and desirable, followed by discussion of challenges (to and from tool developers/vendors, as well as the rest of the audience) as to its usefulness and benefits, and why their current tools can’t easily do so and why the should or should not be easy to enhancement them to do it.
Software development as knowledge development
- Source-Code as knowledge
- Requirements (Stories) and Tests as knowledge
- Other usable forms of project knowledge (e.g., build scripts & configuration, build/test result reports version control history/comments, online help & other supporting docs)
How would I do this?
- Refactoring Knowledge (thinking about the rest of the “knowledge” the way we think about the code, and its habitability, navigability, and structure/refactoring)
- Applying other agile-practices (like TDD, Continuous Integration, etc.) to non-code knowledge development
- Wiki-based skins, DSLs, and use-cases/design as domain-driven Wiki-word definitions
- Patterns (giving things names), Retrospectives results and lessons learned
- Viewing, searching EVERYTHING (even the code) via wiki?
- The “Wu-Wei” of Traceability (Tracing without Tracing)
- Versioning and operating on wiki-like entities, just like with code (e.g., making “working copies”, branches and tags)
DISCUSSION & CHALLENGE: Why can’t (or how can) YOUR tools do this!
Begin audience discussion/dialogue: Why can’t a tool like Eclipse or a Wiki-based CMS (such as Confluence) be used as a front-end to browsing/refactoring and navigating ALL the knowledge of the system? (not just code, but stories, tests, build/config data, CI reports, backlog, retrospective lessons).
What makes it easy/hard for these and other tools like any of the following to do this, or to be simple “skins” or plug-ins on top of only a handful of tools instead of a whole kitchen sink full of separate tools and repositories.
- Eclipse, Confluence, Twiki?
- FIT, Fitnesse, Contour
- Doxygen / Javadoc
- Trac / Agile-Trac?
- Jira / Remedy
See also a blog-entry of mine entitled Can I have just one repository please?
- Thinking about Agile development as knowledge management & creation
- Current barriers to using agile techniques and supporting tools for non-code artifacts
- What do refactoring, TDD, continuous integration, etc. mean for non-code artifacts (and why you should care)
- Use of wikis for organizing, structuring and refactoring ALL system knowledge
- Why manual traceability is unnecessary (and even comes for free) when using such an approach
- Tomas Tool-smith/Tool-vendor
(download PDF here)