Re: arch 2.0 survey followup

Thomas Lord <[email protected]>
Newsgroups gmane.comp.version-control.arch.user
Message-ID <[email protected]>
Talli,

Thanks.  You helped lead me to a couple of .... dare I say it .... 
decisions.

   1. One of the products of an Arch 2.0 project should be a detailed 
marketing analysis.
       Completing that analysis is not a prerequisite for starting 
design and hacking.  Rather,
       the marketing analysis is part of the product documentation and 
should, like the code,
       be developed and maintained in an iterative, short-cycle process.

   2. Yes, Windows support is critical.

   3. Yes, a GUI is critical.  Committing to Ruby on Rails in a deep way 
would be a
        mistake but it would also be a mistake to not use Ruby on Rails 
for a first GUI
        which should, in parallel with the rest of the code, be 
developed in an iterative
        process.

-t

p.s.: here's how I got there...

Talli Somekh wrote:
> * Asking which market is ideal may be inappropriate given the skills 
> in the community. There are no MBAs around here and while some may 
> think that is a net positive there is a skill set that shouldn't be 
> ignored.
>
Agreed.

> But if there is interest in doing a market analysis, I recommend first 
> doing a complete competitive profile to understand who the competitors 
> are and what are their strengths and weaknesses. Then perform a review 
> of what users seek from a RCS. From there, a gap analysis can be 
> created that defines a set of features that can provide a target for a 
> differentiated application.
>
I only partly agree with that recommendation.   The main thing that I 
disagree with is the use of the words "first", "then", and "from 
there".   To a lesser extent, I disagree with "from a RCS".

In some kinds of product categories, what you're saying is obviously 
spot on.   Let's say, for example, that we're going to design a new 
microwavable lunch in an attempt to grab an extra 1% of refrigerator 
shelf space at 7-11.   Well, we better be able to sell better and make 
more money than whoever currently occupies that shelf space.    We take 
as a given that we've got the best food scientists and maybe we even 
have a few trade secrets or patents that will allow us to do something 
seemingly miraculous (e.g., deliver fried goods that come out of the 
microwave nicely crisped).    Now, we have a design problem and don't 
have an a priori understanding of the constraints that design that 
problem.   We need to understand existing consumer habits.   We need to 
understand why consumers currently make the choices they do.   We need 
to figure out what drives consumers are satisfying and how existing 
products only partially meet those needs.   We need to find the gap in 
current offerings that we can fill to achieve differentiation.   It'll 
be swell if we can use our "crispy fried foods" tech for this but in 
doing the marketing analysis, we should be prepared to reach some 
conclusion like: "the best bet is to make a package that is dramatically 
easier to open without burning yourself".   In any event it's important 
to do all of this research up-front because once we have a product 
design, there's then a huge and relatively inflexible investment to get 
from there into production, distribution, and advertising.

So that's a kind of waterfall method of product design.   It's really 
appropriate where, like microwavable lunches, it's pretty easy to study 
the market and, additionally, the production and selling pipelines are 
so expensive to set up and so inflexible in design that you are forced 
to place one big bet.  It's not obviously /necessary/ but it sure helps 
a waterfall approach if you have things like trade secret and patent 
protection on your side so that, during the relatively slow process of 
bringing a product to market, you aren't so easily scooped.

/Some/ kinds of software projects are different and a waterfall approach 
doesn't make as much sense for those projects.   This is why I object to 
"first", "then", and "from there" in your suggestion.   An iterative 
process seems to me to make more sense: continuously developing the 
requirements and the product in parallel, with feedback between the 
two.   I don't have XP or Agile _religion_ but I do think Kent Beck and 
friends are basically right.

I strongly agree that the kind of analysis you suggest is important and 
valuable, though.   I'm beginning to think that, in very literal terms, 
the source tree for Arch 2.0 ought to have a directory set aside for 
this kind of analysis.   Maintaining and improving it should be part of 
the project.   The initial contents can be quite crude but over time, it 
should be tuned up.   It's part of the project's documentation.


> * The current set of "markets" are so disparate as to make "targeting" 
> them almost satire.
>
> An alternative exercise that IMO may be more effective for the 
> community's planning for 2.0 is to develop a set of scenarios. Each 
> scenario describes the relationship between various classes of users 
> and their application of a feature set. For instance:
>
We have the humble beginnings of that, especially in the comments from 
Matteo and Aldrik.   Check it out -- they wrote some really good thoughts!

I think the example you go on to give (which I encourage people to go 
back and read) does a good job of pointing out the level of specificity 
and the focus of attention that is ultimately desirable.    I'm not sure 
that, at this junction, I want to hold up things to insist on perfecting 
our scenario analysis.   It's something to iterate over, just like the 
code.   Crawl. Walk. Run.

> * Windows is critical. 
I think that's really clear.

To an extent, it can only help the quality of the code to be portable in 
that way.   It takes nothing away from the GNU mission, only helps, to 
make sure Windows is well supported.

> * A GUI is critical. A thought that Tom and I discussed previously was 
> to build a GUI using a web framework like Ruby on Rails that has very 
> good ajax functionality so that a rich GUI can be built that is cross 
> platform and can be run either in a client server enviro or as a 
> desktop app. Designing the system with thoughts about a GUI now using 
> a light framework atop of the system would be a big win, particularly 
> when one of the potential users is a manager (see scenario above).
>
I very strongly agree about a web-based GUI using AJAX.

I think Ruby on Rails *might* be a good choice and is *certainly* a good 
resource.   So, why the hesitation?  

Part of what makes RoR so hackilicious is ActiveRecord foo -- the 
automagical mapping of an SQL database into an object system with 
precious little need to drop SQL fragments into your code.   It's 
certainly not a *bad* thing to have convenient SQL hooks in the 
framework for an Arch GUI but it isn't a central concern by any means -- 
so one big win of Ruby has only slight applicability here.  Or maybe it 
is a central concern, depending on where use scenarios lead us.   I just 
don't know yet.

Another part of what makes RoR so hackilicious is that it, in fact, 
seems to have a nice core AJAX library that, like ActiveRecord:SQL/RDBMS 
means that AJAX hooks are nicely mapped into the language.   But the 
make-or-take-or-borrow decision is a little unclear to me at this 
point.   It *might* be the case that snarfing and munging the javascript 
library from the RoR framework and mapping it into some other 
programming environment is an equally good or better choice.

All that said, I don't think there is any better choice than to (a) 
build /*a*/ GUI in parallel with the
core functionality; and (b) build that first GUI using RoR.

Building a GUI in parallel avoids a waterfall approach to making sure a 
GUI is possible.   It also ensures that (since we are talking about 
supporting users who are sure to prefer a GUI) the core functionality 
design evolves with real feedback about how it looks from a GUI perspective.

Building a first GUI with RoR is appropriate because it's so freakin' 
easy compared to alternatives;  because revolutionizing web-gui 
frameworks is not (yet? :-) central to the Arch project;  because lots 
of people will know from day one how to hack it; and because I think we 
are safe in assuming that RoR will just keep getting better and better 
in the short and medium term.  I'm sure there are other reasons, too.


-t
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.