Eric Armstrong
eric.armstrong@eng.sun.com


Memorandum

Date: Wed, 14 Jun 2000 14:43:35 -0700

From:   Eric Armstrong
eric.armstrong@eng.sun.com>
Reply-To: unrev-II@egroups.com

To:     unrev-II@egroups.com

Subject:   Views for Software Development

It's times like this that I wish we were using an IBIS- constrained system.

One of the wonderful constraints of that system (which I typically avoid myself, because our system doesn't support it) is to always put forth a proposition as an answer to a question -- thereby opening up the fundamental assumptions for debate, and allowing for alternatives.

IBIS suggests that asking "yes/no" questions is not a good idea, because it precludes alternatives. So the best question I can think of is:

To the options presented in the current requirements doc, we could therefore add:

Support Software.

However, stepping back a level, I think we need to ask,

"What are we doing?"

Are we:

I think it would be a very good idea to clarify our goal, because I suspect that our discussions and suggestions are stemming from radically different perspectives on this subject.

My own personal bias (which I must state in order to leave myself open to be argued out of it) is:

  1. Software-support is a highly desirable aspect of the system that will help it evolve.

  2. However, by the same token, it introduces a number of complexities that are unique to software support.

  3. The set of software-designers is a subset of the people who could use a good online discussion tool.

  4. For many software folk, you will only pry emacs (vi, or what-have-you) "from their cold, dead fingers". So they are going to be less than excited about some new way to edit their software. (But making sure that software goes both ways between plain text and the system _without_ _losing_information_ is what creates most of the complexity.)

  5. The combination of #2, #3, and #4 suggests that the project increases significantly in scope in order to appeal to a fractional additional percentage of the population -- a population that is likely to be less attracted to the system initially, as a result.

  6. As a result, I have felt that it is in the best interests of the project to focus on a *design* tool, rather than a software-management system. (I thank Christine Peterson for focusing my thoughts on this direction.) My suspicion is that developers who will not easily be persuaded to adopted a new source management tool will leap at a replacement for email -- and that, while they are getting used to that interface the software support can be tacked on to the system. (Once they are comfortable with the system as a discussion tool, I expect the objections to using it as a software mangaement tool to dwindle.)

The requirements document I put together was focused entirely on a better interactive discussion tool. It avoided software management completely.

However, I feel we are embarking on an mandate to include software support from day one. My feeling is that doing so is both a strategic and a tactical mistake. Tactically, it adds complexity. Strategically, it lengthens development times and may tend to put off the very early adopters we wish to attract.

Now, having said all that, there is room for counter-argument. Arguments that make sense to me include:

  1. We are only designing to make sure the data structures are appropriate, but we don't plan to implement any of this.

  2. Open Source developers and organizations we know have told us they want this.

Maybe there are other arguments I haven't thought of, but those are the only ones that make sense to me at the moment.

Sincerely,


Eric Armstrong
eric.armstrong@eng.sun.com