[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: future of LedgerSMB



--- Chris Travers wrote:
> If we rewrite the entire application at once, I am quite afraid it
> will never be completed simply because it is such a big task.

I agree with this, a rewrite with redesign [1] would take way too long for any
new or SL user to remain interested in SMB.

> Rewriting in Perl gives us the ability to have a useful application
> while we are working on it.

What about starting by retrofitting tests on the existing application, and
getting the community involved at the same time? 

If perl has something like doctests, and given a thin API around the URL
passing syntax, you might be able to attract new users to help:

- Find out what works, prevent regressions
- Tests help design the API you eventually want SMB to expose
- Document edge cases where SL's data integrity can be corrupted
- Get non-programming accounting users involved; show how to convert a visible
URL to a function call syntax, run and write up as doctest.[2]

A well-documented procedure for submitting doctest-like test cases would make
for a good Trac ticket type. Each test case, if accepted and merged, would have
a name (ticket number) that could follow through subsequent revisions of SMB.
Submitting users may take on a sense of ownership about their pet test cases.

If a test suite can be brought to critical mass to drive the
rewrite/refactoring process:

- Fix or replace broken modules first
- Define an API deprecation process (e.g. two timed releases)
- Update tests' pass-fail assertions for deprecation, breaking or API changes
- Test migration of schema changes


[1] Just to put in my last two cents on the rewrite issue, a rapid translation
specifically avoiding redesign (warts and all) to another language in which the
available programming talent feels they would be significantly more productive
should be on the table. I think some bugs may become obvious in CGI python, and
the restraint exercised in creating Trac tickets to be fixed only after the
translation is complete would be a good thing, IMO.

[2] If everything in (SMB) is passed by URL query string, I suppose recorded
Selenium tests would capture complete test-case information, right? A script
(for developers, if not end-users) to convert recorded Selenium tests to
API-style calls would really jump-start the process and base of available testing-users.


 
____________________________________________________________________________________
Get your own web address.  
Have a HUGE year through Yahoo! Small Business.
http://smallbusiness.yahoo.com/domains/?p=BESTDEAL