[sword-devel] STEP modules - back from the dead

Troy A. Griffitts sword-devel@crosswire.org
Fri, 23 Feb 2001 12:58:28 -0700

	Here's my reply to your message it might be interesting to the rest of
the list also, anyway.  I've just posted it to the list since it seems
your getting main from there.  Maybe you could look  in the header and
see if I was mailing to an invalid address for you.


     Subject: Re: JSword: Current Leader
        Date: Wed, 21 Feb 2001 22:44:50 -0700
        From: "Troy A. Griffitts" <scribe@crosswire.org>
Organization: CrossWire Bible Society
          To: David Twyerould <dtwy@au1.ibm.com>

        My apology for taking so long in responding.

> Troy, I would like to help with JSword, but I don't know where to start.

:)  Me either! :)

Really, though, I started it to get enough functionality for our
download jsp (http://www.crosswire.org/download/ModDisp.jsp.txt and
without the .txt to see) pages on the website.  What's complete is
really only enough functionality to load the installed modules that are
on a system and examine their configuration information.  Others have
written some low level drivers for some of our data formats, and such. 
I will post a message on the dev list to see how many people have bits
and pieces we can pull together and put in the source tree.

> The JSword code I downloaded via CVS  does not appear to be complete so I
> can't even get the API primer examples to work.

Ultimately those examples should, in concept, work.  I've tried to keep
a class for class, method for method port of the API from C++ to Java. 
You'll even see the .cpp files in the tree copied from the C++ source
tree which I've been using as a starting place.  I would like to think a
developer experienced with the sword API in either Java or C++ could
switch to the other with minor adjustments.

Also the API has evolved rather poorly in some areas over the years, and
I was using the Java code as an opportunity to cleanup and standardize
some things where there might have been a _few_ ways to do those same
things in the C++ API.

> I have noticed that there is a version in Java posted by at
> http://www.eireneh.com/ and this can read Sword files, but does not seem to
> have the same architecture as the C/C++ api. Oh and by the way the eireneh
> web site is hosted by the Christadelphians, an offshoot of Jehovah's
> Witnesses (the Christadelphians deny Jesus is God)!

Thanks for the info.  They had submitted some classes that would read
our basic RawText driver datafiles.  I think I still have them

> So, what can I do to help?

If this is an area where you feel you would like to really be involved,
be my guest to jump in head-first.  I don't have any emotional
attachment to this code.  I really don't even remember how much I
finished.  I think I stopped at VerseKey.java (in the canon.h code and
the parsing of verse references)  I've been wanting to rewrite this C++
class for quite some time.  It's really ugly right now, but works and
I'm afraid to touch it until I have time to redo the entire parsing
logic.  I think I was going to wait until I had finished this before
porting the lame code to Java.  I've never gotten around to it. :)

In concept, I'd like to keep the API's similar.  And I was doing a line
by line port-- but I don't really care about what's behind the API

I've been working exclusively in the Java world at work for about 5
years (http://www.evergreen.com), but like going home and programming in
C++.  If you don't desire to 'own' the project for a while, then I'm
sure I could be coaxed into picking up where I left off a few years back
and try to give you some tasks.  Please pray about it and let me know
what level of involvement you would like to devote.

        Thanks for your interest and willingness to help!  It's such an

> God bless....
> David Twyerould
> "...and the truth shall set you free." (John 8:32)
> ---------------------- Forwarded by David Twyerould/Australia/IBM on
> 18/02/2001 09:48 PM ---------------------------
> "Jonathan Hughes" <jhughes@crosswire.org> on 18/02/2001 08:06:51 AM
> Please respond to "Jonathan Hughes" <jhughes@crosswire.org>
> To:   David Twyerould/Australia/IBM@IBMAU
> cc:
> Subject:  JSword: Current Leader
> David,
>     To be honest with you I love to hear your opinions, I have had no
> formal
> training or experience in project management so to get some tips and
> suggestions from someone that has is invaluable. If I don't want to hear
> people's full opinions I just don't ask for them! :)
>     About JSword, this is what I found out about it, Troy Griffitts
> (scribe@crosswire.org) has done all of the work on it so far, so he would
> be
> the person to get into contact with about the current code. No one right
> now
> is actively working on it or is the leader of the project. Others have said
> they might want to help out with JSword, one such person is Paul Gear
> (paulgear@bigfoot.com), so you may want to get into contact with him also
> to
> see what he can bring to the project.
>     Troy is responsible for a lot of the project, he really likes working
> on
> the Sword API but because I believe he is the one that started the Sword
> Project he has to worry about so many other things. But he would be the
> person to talk about the direction of the project and what needs to be done
> with JSword. Hope this at least starts you in the right direction. If you
> need anything else from me, please feel free to e-mail me personally!
> Thanks
> for your willingness to help.
> In Christ,
> Jonathan
> jhughes@crosswire.org
> ----- Original Message -----
> From: "David Twyerould" <dtwy@au1.ibm.com>
> To: "Jonathan Hughes" <jhughes@crosswire.org>
> Sent: Friday, February 16, 2001 2:57 AM
> Subject: Re: Your Thoughts: Volunteer Coordination
> >
> > Jonathan,
> >
> > > How is everything going with getting involved with JSword? Sense in
> your
> > > volunteer questionnaire you said that you have had experience with
> > project
> > > management would you mind looking at two proposals I have written up?
> One
> > is
> > > about general project management issues and the other is volunteer
> > > coordination:
> >
> > I have reviewed the links you sent me and they look like a great starting
> > place.
> >
> > As for JSword, I haven't done anything yet as I am not sure where to
> start!
> > I haven't been able to find any JSword documentation and being new to the
> > API I don't know enough about the C++ API to convert it to Java. The
> JSword
> > code on the CVS server is incomplete and I haven't found a task list. I
> > know that someone else has put together another Java version on their own
> > web site but I'm unsure of it's relationship with JSword itself. To be
> > honest I am really confused as to what to do next and would appreciate
> some
> > guidance - do you know if there is someone heading up the JSword
> > development?
> >
> > On the subject of project management, I am not that familiar with Open
> > Source projects and how they work, but from the outside it looks a little
> > chaotic! The key things that I am struggling with, most of which you've
> > covered in your proposals, are:
> >
> > (1). Requirements Definition. What is the functionality that sword/jsword
> > is trying to provide? Is there a requirements document or a list of
> desired
> > core functions somewhere?
> > (2). High level architecture/design. Documentation on what the high level
> > components are, what are the key design principals and key design points
> > for JSword. For example, the "module" approach to encapsulating source
> > texts seems like a good idea but doesn't seem to be documented anywhere.
> A
> > high level programmers guide would be brilliant!
> > (3). Binaries, installation instructions, source code,  and build
> > procedures.
> >
> > The above three points would give volunteers a good starting place: they
> > can hopefully get the vision for what JSword is about (requirements) so
> > that everyone is heading in the same direction (answers the question
> "what
> > are we trying to do/build?"), they can get and understanding of the
> > technologies and approach taken from the high level design (answers the
> > question "how are we going to do this?" - at least from a technical
> > viewpoint) and the actual binaries and code gives them a chance to play
> > with it and see where it's up to.
> >
> > The next three points concern actually getting volunteers engaged on the
> > project. In my experience you need to be very well prepared and well
> > organised to make effective use of volunteers.
> >
> > (4). Project Management and team leaders. This is critical. Volunteers
> need
> > to know who to turn to when they have questions and to coordinate their
> > activity. A lot of people will get quickly turned away if they don't feel
> > their time is being used effectively. A key issue here is that your
> Project
> > manager and/or team leaders are probably volunteers as well, so having
> > someone back them up to support them when they're overloaded or can't
> > respond would be good.
> > As an aside, I'm not sure how this works on sword or other open source
> > projects, but I think that the overall design/architecture needs to be
> > owned by one person who is responsible for ensuring that work progresses
> to
> > a plan. Otherwise the project will, over time, become fragmented and
> > unmaintainable. In our projects the two key people in the project are the
> > Project Manager and the Application Architect. One owns the people and
> the
> > process, the other owns the structural integrity of what is being built.
> > (5). Project plans, task lists and todo lists. The team leaders need to
> put
> > a project plan together for the area they are responsible for. This
> should
> > include understanding dependencies and skills/resource requirements. They
> > could then coordinate that with you(?) to help fill the needs in their
> area
> > and supply them with volunteers to get the job done. The team leader
> should
> > work with the volunteers to assign tasks that need to be done. This is a
> > two way street - it's no good assigning a task to someone if they don't
> > really want to do it - usually it doesn't get done! Personally I find the
> > best way is to present the potential list of tasks to the volunteers and
> > have them put in their preferences, then the team leader picks the best
> > person for the task based on those that have volunteered. The tasks that
> > get left (the difficult or unpleasant ones) could get broken down so that
> > the workload is spread around and no one person gets stuck with it.
> > (6). Reviews. In a proper commercial project, regular project reviews are
> > conducted to review what are the issues that are preventing the project
> > from moving forward - technical or non-technical. The project manager
> > should do this in conjunction with the team leaders. The team leaders
> > should also do this with their teams.
> >
> > By the way, another way to help volunteers is to have the sword-devel
> forum
> > archives online. That way people joining the group can find out what is
> > happening by scanning through the last appends - it also stops people
> from
> > asking the same questions over and over again (although FAQ's can stop
> this
> > too).
> >
> > In summary, my experience in project management has lead me to believe
> that
> > the critical success factors for application development projects are:
> > (1). Scope control. Everyone understanding what we are trying to do and
> > baselining this functionality.
> > (2). Consistent architecture. Everyone understanding how we're going to
> > build this thing
> > (3). Resource and skills management. Everyone working together toward the
> > common goals of (1) and (2) above. The right people on the right job at
> the
> > right time for the right reasons!
> >
> > Bet you're sorry you asked my opinion now ;-) ... I've probably made your
> > job even harder! But, please if I can continue to be of assistance in
> this
> > area let me know, and if you can point me to someone to talk to about
> > jsword so I can get started with doing something it would be very much
> > appreciated!
> >
> > May God bless you mightily in all that you're doing....
> > David Twyerould
> > "...and the truth shall set you free." (John 8:32)