View Michael Scherotter's profile on LinkedIn

MindManager for Software Development: Part 2 - Requirements Gathering

Published 07 November 06 02:38 PM | Michael S. Scherotter 

Part 1 - Help Authoring

Part 2 - Requirements Gathering

One of the unintended consequences of using MindManager throughout Mindjet's internal software development lifecycle is that the product has turned out to be a great requirements gathering solution.  At Mindjet, we use MindManager for developing marketing requirements, organizing product planning, writing software specifications, and orchestrating an extreme programming methodology.  Though it was never designed to be a software requirements gathering solution, we have, as well as many of our customers, seen it to be a fantastic one. We even won Jolt and Codie awards competing against software development applications.  I would like to walk you through a scenario of how you might use MindManager to do this.

Check Preparations:

I am a firm believer in creating tools and templates to automate repetitive tasks and insure consistency across projects, but I also believe in iteratively refining those tools and templates from project to project.  Before you start a new type of project in MindManager, you should always create the templates and map parts that you will be using.  I believe that the exercise of thinking about a project in a general fashion and coming up with the tools first is a great first step to tackling a complex project.  What I've done is to create a map template and a map part to start the process off right:

With that, I have created a "kit of parts" and a "set of rules" that I can use to start building out my requirements maps.  The rules are defined in the layout and structure of the map template and the parts are the map parts and topics that I will use to start constructing my project maps.

I then add the map template to my template organizer and to my New Map Dialog (File...New...From Styles and Templates...Map Template Tab...Add Map Template) and I have added the map part to my map part library.  In addition to this, I have made these templates available to other product development teams in my company, and now, since it's on the Mindjet Labs, the whole MindManager community.  Software development companies will see real benefit from standardizing on map templates in this way.

Magnifying Glass The Gathering Begins:

Either in a group meeting session with MindManager projected on a large screen or at my desk, I start to fill out the template, tackling the low-hanging fruit first.  I add requirement topics to the map in areas that are already on my mind.  Getting them off my mind and into my requiements map lets me apply my GTD techniques of having a place to hang information in an easily findable place.  I have some rules for the requirements gathering:

  1. Each requirement is totally self-contained within a topic.
  2. The topic text is the requirement title.
  3. The notes contain all details about the requirement.

Through this process, the map is filled out and becomes a "living document" that evolves throughout the software development lifecycle.

Meeting Sharing the Requirements Maps:

Once the requirements are developed they need to be shared.  Since all great software teams have MindManager at each desk Wink, the requirements maps can be put in a shared location like Microsoft SharePoint for everyone to see.  In addition the requirements maps can be repurposed using a variety of ways using MindManager, Partner Solutions, or Mindjet Labs solutions. One such solution on the Mindjet Labs uses Microsoft's new Visual Studio Team Foundation Server to track Work Items that were defined as requirements in MindManager:  Mindjet Requirements Manager.  You can watch a screencast of that solution here.

Question Mark What system(s) do you use for Requirements Management?

  • Microsoft Team Foundation Server
  • IBM Rational
  • Telelogic Doors
  • Borland StarTeam
  • ______________________________

Comments

# Synergist : MindManager for Software Development: Part 1 - Help Authoring said on November 7, 2006 4:26 PM:

PingBack from http://mindjetlabs.com/cs/blogs/synergist/archive/2006/10/07/MindManager-for-Software-Development_3A00_-Part-1-_2D00_-Help-Authoring.aspx

# dethomas said on November 12, 2006 11:43 AM:

This technique seems valuable for qualitative requirements, those pervasive (and elusive) characteristics such as security, performance, or usability.  Things of this nature speak to the entire user/owner experience of an application or system, and thus have a footprint in the artifacts (use cases, user interface, deployment, testing, etc.) shown in the map template.

This is not to say that quantitative, functional requirements could not be dealt with in this manner.  However, it would seem that each requirement would perforce be somewhat large in scope.  

When dealing with requirements capture, we are dealing with the specification of desired behavior.  I'd argue for moving the use case to the center of the map, and selectively derive other artifacts (requirements, deployment plans, test plans, etc.) from the use case.  Treat the set of use cases as a black box description of the application, cast  in terms of interaction between the application and entities/actors/services in the environment.

In a recent project, a client-server distributed system, I eventually created 10 major maps -  seven  use case maps, one system requirements map, one user presentation map, and a main "umbrella" map that linked to each of the nine sub-maps.  Using these ten maps, I generate and reuse the map content in three ways -

a) 22 meg of static web content (with some customization of MindManager Multi-Map Web Export to include links back to the main map and some navigation enhancements)

b) generate 10+ Word documents from the map content in a format prescribed by the existing development process (using XSL and a two step transformation process to maintain hyperlinks and images), and

c) drive selected requirements, derived from the use case content, into Rational Requisite Pro (using a custom MindManager Add-In and the Requisite Pro Extensibility API)

This approach has resulted in over 1000 requirements in a Requisite Pro database (without using the Requisite Pro client, which I find awkward), arranged in the same hierarchy seen in the MindManager maps.  

The MindManager maps, the web content, the Word docs and the Requisite Pro requirements all share the same content, organized by the map structure.  Developers read web pages and selected Word docs, testers use requirements in Requisite Pro to trace and justify test cases/plans, architects and dev leaders rationalize  physical/logical/interaction/implementation choices in the context of a use cases and system requirements, while marketing/requirements analysts maintain and extend a fairly complete system description as we plan new product features.

This experience has confirmed what my intuition had told me in the past - that content, and connections among content, are the critical things to get right, and the structure of the content should be justified in terms of how it helps the creation of good, useful content.  

Just as form follows function (or as form evolves to compensate for function failure, if you like) so structure follows content in the information domain.  The good thing about MindManager is that it allows me to organize the content, say a use case, under a loose supportive structure, modify the stucture to support my goals, and then repurpose the content carried by the resulting maps in a variety of ways.  

I have a laundry list of “it would be nice if…” issues (like maintaining map-to-map links in a Multi-map Web Export, not copying the .mmap file to a LinkedDocuments folder) but as a tool for capturing and manipulating content, particularly requirements contnent, MindManager has been very useful.

# Stefan Scheib said on November 16, 2006 11:18 AM:

Hello Michael,

good idea. What I am looking for for quite a while is a simple tool capture requirements (could be MindManager) AND showing traceability (difficult resp. impossible with MM so far). Right now I am using Requisite Pro for that.

I have other uses than for software development as well. E.g. traceability from laws to company guidelines to department specific SOPs (Quality Management).

Basically the fundamental function in MM are available (hyperlinks). But what is missing are different views from different levels. Also would it be necessary to have more than one hyperlink from one topic going to several other topics (hyperlinks should be organizable with a tool like the attachment manager).

Is there anything under development in your lab? If you like I could explain in more detail what I would like to see offline.

Regards

Stefan

# mmarfise said on November 30, 2006 10:22 AM:

Hi Michael,

We are avid users of Accept 360 and could see some real benefit from integrating a product such as this with our current deployment

Anonymous comments are disabled

About Michael S. Scherotter

Educated as an architect, Michael has made his career in software development about combining technology in interesting ways.

After getting his Bachelor's of Architecture from the University of Arizona, Michael received a Master's of Architecture from UCLA specializing in Design Tool Development.

From there, he joined Tartus, Inc., a sofware consulting firm specializing in building architectural sofware. At Tartus, Michael rose to the role of lead software architect for BC Framer, a custom CAD solution for Boise Cascade Corporation. In this role he designed and lead development of the software through six successful release cycles.

At Mindjet, Michael started by managing the software development teams for the first tablet-pc enabled version of MindManager and MindManager X5.

From 2003 to 2007, Michael was in business development and marketing roles as a Business Solution Architect and as the Solution Platform Product Manager for MindManger. Michael designed and built the first enterprise integration for MindManager, the Accelerator for Salesforce.com which served as a reference implementation for future enterprise integrations. In this role, he created, directed, and maintained the Mindjet Labs and became the evangelist for the MindManager Solution Platform.

Now Michael is a Developer Evangelist for Microsoft Corporation.

View Michael Scherotter's profile on LinkedIn

Search

Go

This Blog

Tags

Archives

Links

Syndication