Announcemnt: PLUG Devel Event Planner Project [was]Re: Event Planning Project

Trent Shipley plug-devel@lists.PLUG.phoenix.az.us
Wed Mar 9 19:57:02 2005


On Wednesday 2005-03-09 17:57, Joseph Sinclair wrote:


> I don't see this being a system that would be appropriate for LAMP (BTW,
> LAMP is implicitly 1-tier, not 2-tier.  Even with client side scripting,
> the architecture is topologically a single tier with ancillary antecedents)

OK.  I can see that.

1 tier:

Mainframe + dumb terminal.
Stand-alone workstation

2 tier:

Server + Networked Workstation.

3+ tier

Data server + Biz logic server + internet server + thin client.


Although I tend to think of my PC as a workstation, when I connect it to LAMP 
it becomes a thin client, that is, effectively a dumb terminal; so LAMP is 
back to the future.


> As far as virtual hosting, more and more hosting providers are offering
> J2EE (usually JBoss or JOnAS) as an option on their Linux-based hosts,
> so I don't see that as being a significant limitation.

I'm willing to accept that we will see more 3-tier virtual hosting options 
over the next few years.  LAMP is well entrenched, however, so I expect it to 
be both more available and cheaper than 3-tier virtual.

> The market for event planning is not a mass market in the business
> sense, so having a slightly more limited platform choice is acceptable
> so long as it improves coherency of design, hence the option to develop
> as a GNUe module.

Per lack of mass market:

Joseph, I still see this tool eventually having a wider market than just 
individuals who tell the labor department that they are "event planners".  I 
see it being used by funeral and wedding directors, administrative assistants 
at civic and convention centers and at arenas and stadia.  I see it being 
used by concert promoters and by high school student governments and church 
bake sales.

In any event, predicting the market for Fenix Event Planner (FEP?, we could 
get PEP, hmmm.  PEP it is, it sounds so very marketable.) amounts to setting 
requirements and setting them prematurely.  I think we have a lot of reason 
to expect that we will eventually want to make PEP a  GNUe module, but at 
this point we do not know that for certain.

More importantly, we DO know that eXP recommends that projects be built to 
size, no more, and no less.  For PLUG InstallFest automation GNUe is 
overkill.  If we are eXP purists then we want solid project architecture, but 
no overbuilding, and you want to deliver working tools to consumers rapidly 
and steadily.  Our current project is to help automate InstallFests, so the 
architecture should be oriented to efficiently solving the InstallFest 
automation problem, probably on our existing LAMP server.

If the problem domain outgrows the architecture THEN we see a weakness of 
agile methodologies.  We will probably need to go back to the drawing board, 
get a new architecture, do new engineering, and write new code.  But that is 
fair, in terms of agile methodologies we have a totally new problem.

That said, we already know that there is a high PROBABILITY that we will want 
to make the Phoenix Event Planner a GNUe module.  That does not mean that the 
solution to InstallFest automation will be a GNUe module.  

In practical terms, it does mean that we do not keep a nearsighted focus on 
the immediate problem.  We should use Python and do things like use GNUe 
standards for style and coding.  In no way should we forclose our option to 
migrate to GNUe later on.

> The current suggestion that uses Python (GNUe) does not improve the
> speed of development over J2EE, and it also does not offer the option of
> a later move to Java, as GNUe will never support it (AFAICT).

If we stay with eXP and solve the immediate problem at hand in a short amount 
of time, namely InstallFest automation, then using Python with minimal 
reference to GNUe should result in faster completion of the InstallFest 
automation project than using either GNUe or J2EE.

> The choice of language and platform is more dependent on architecture
> than speed of development, as the former has a lot more impact on the
> quality of the final result.

Plan to throw one away.

We can look at the InstallFest automation project as a trial run and proof of 
concept; not just of the event planning software but more importantly of the 
PEP software production process itself.  In that case, the first edition of 
InstallFest automation by the PEP development group will have many attributes 
of an advanced prototype, should be put together quickly (even at the cost of 
substantial quality), and we pretty much expect to radically revise the 
architecture anyway.

The idea is not just to shake out "requirements" with a working prototype.  By 
producing a solution fast we go through an entire development cycle fast.  
This will help shake down our tools, our team, and PEP's architecture for the 
next increment in overall project complexity or quality.

> I'm primarily expecting this to appeal to a combination of small groups
> (like PLUG) who would probably run it on a spare system somewhere, and
> large enterprises (who would likely set up a dedicated intranet
> system).  If we decide to expand the focus, then we need to be much more
> careful how we design to ensure the system is usable on a wider variety
> of platform options, not fewer.

Yes, but right now we have a vision for the future of PEP, not a project.  At 
this point Phoenix_Event_Planner=InstallFest_automation.  If we want to be 
exP-ish then we need to stay focused on Install Fest automation.

We will re-architect for quincenieras and Presidential inaugurations in due 
time.  For now, the Architect and Engineer should have coders code to 
patterns that are likely to be modular and reusable.  Also, they should avoid 
impeding likely paths, such as GNUe compatibility.

> IMNSHO agility actually puts a premium on clean architecture,
> discipline, clear design, and real results; certain decisions, platform
> in particular, are tightly tied to the architecture chosen if these
> goals are to be met.  This is one of the reason why ports of software
> from one platform (i.e. .Net) to another (i.e. LAMP) rarely do well.

OK, I'll agree to that.  Let's pick a platform **For This Phase**, design for 
that platform, and code with discipline.

Nevertheless, I am arguing that the problem at hand, namely InstallFest 
automation, should be designed over LAMP because eXP privileges what comes 
next over designing for the "grand vision".

God willing, we will be very successful and will need to re-architect and 
re-code for a 3+ tier architecture.  Hopefully, PEP will become a module in a 
larger FOSS enterprise resource planning and management project, like GNUe.


> ==Joseph++
>

<snip/>

> >If we REALLY want to be lightweight then we should design and prototype
> > FAST. The need for speed heavily favors Python.  This is even more true
> > if Python can be pre-byte compiled and called from a JVM.  If later we
> > WANT to redo core modules to Java we should be able to do the conversion
> > piecewise.  On the otherhand I am not certain we can do the reverse and
> > convert Java piecewise to Python.
> >
> >Agility implicitly puts a premium on keeping your options open.  It
> > follows that critical decisions should be delayed as long as practical.
> >_______________________________________________
> >PLUG-devel mailing list  -  PLUG-devel@lists.PLUG.phoenix.az.us
> >http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-devel