Again, my comments in blue On 11/30/06, Shawn Abigail <[EMAIL PROTECTED]> wrote:
I like the Cycle 1 to 4 approach Carlos suggests. I will let you know when Claus and Gil respond, or preferably they can simply respond to the dev-list themselves with their suggestions and preferences. It would probably be dangerous to let me code on this project 8-), so I will leave the definition of the development environment and tools to others. My only suggestion is that whatever language is chosen, we find an open source tool which can do static code analysis and insist on clean runs before we check code in. I was involved in the analysis of a major code base 15 years after development started, and I think it would be a really good idea to use some of these scanning tools right from the start.
My main background is Java, but I have also worked on projects where C++ was the main tool, one thing I'd like to hear about the other guys in the list, is what their ideas are as far as development tools go for projects of OOo. To be honest I have never seen a line of code for OOo, I believe it is coded in C++ but I've also read on the site that Java can be used with it, so if somebody could clarify this for me I'd be very thankful. In any case I think we could use Eclipse for IDE (we can use the CDP plug-in if we decide to go for C++), Ant for building, JUnit (or a C++ equivalent)... I did review most of the wish list suggestions before coming up with my
suggestions for R0.1 functionality. The R0.1 functionality I suggested provides a foundation that we could build additional wish list function on. Perhaps I can elaborate on some of my suggestions for R0.1. Internal Data Structures Defined: Just about every user operation is going to use an internal data structure which holds all project information. Saving the project will involve writing this information out, and loading a project will involve reading this information into the data structure. Creating a new project will mean initializing the data structure. If we allow several projects to be open at the same time, we'll need to have a way of jockeying several of these data structures together. We will probably want standard routines to handle reading, writing and searching the data structure. So this is something we will need to get correct right from the start. No, this is not a user visible feature, and we'll have to be careful about blurring the distinction between requirements and implementation details. But it is something we will need to plan for in R0.1.
I think that if we format the project (OOPM file) as XML we could kill two birds with one shot, because the XML DOM would serve as our main data structure and we could output it to a file for persistence. File Format Defined:
Saving the project to a file and reading a project in from a file is fairly basic functionality. This needs to be in R0.1. I/O Module Defined: All loading and saving of the project should be handled through an I/O module (or a set of library routines). At some point in the future we may want to replace the flat file format with a database. By having all loading and saving functionality work through an I/O module, we could move to a different file format or move to database storage of the project without much difficulty. Basically this is the implementation of the save and load functionality, so it needs to be in R0.1.
I agree on this, we should make is as extensible as possible, just in case the user wants to use a DB as storage. 2 Layer Architecture Defined:
This one is going to require some explaining, because I think there are a number of significant advantages, but it is going to require a lot of extra work in R0.1. I'd like to suggest a thin user interface which communicates with a thick core that contains most of brains of the application. This would obviously require extra work, but there are two significant advantages. First, I'd really like to design this software with automated testing in mind. Provided a scripting language can do the same calls the interface would generate, it should be possible to develop an extensive automated regression suite. Second, at some point we may want to have this run as a client/server application with multiple users running the interface and a single core back end processing all the project inputs (and the back end running on a different computer, in a different geographical location, possibly behind a firewall). I know, I'm asking for a lot! But if we do it this way it opens up a lot of really great possibilities for the future; possibilities which would differentiate our application from MS-Project. If we don't put this in the very first release (R0.1) we will never get around to doing it this way in the future.
I also agree on this, I have worked on N Layer projects (mostly for Web) and they can be very flexible, although this can be dangerous because we could end up with a lot of small intermediate layers that will slow down the app, we need to put some thinking on this so we can come up with a solution that is both flexible and performs well. WBS on Interface:
Everything I've mentioned so far is design and architecture. None of it is user visible, and none of it has anything to do with the user's projects. So R0.1 needs to have a way of entering information for the Work Breakdown Structure for each task. This will be entered through the interface, and stored in the internal data structure. This isn't much by way of user functionality, but the foundational work we do in this first release will put us in good shape for the next release.
I think this is very important because we need so show something to the user (and the community) so they can believe we are working :D Again, all this is open for comment. I have lots of ideas, but I'm no prima
donna trying to force my vision on others.
Same on my part, this are just my 2 cents, I just want to see the project rolling... Regards,
Shawn
Regards, Carlos ----- Original Message -----
From: "Carlos Luis Zúñiga Sibaja" <[EMAIL PROTECTED]> To: <dev@oopm.openoffice.org> Sent: Thursday, November 30, 2006 10:27 PM Subject: Re: [oopm-dev] Potential Roadmap for OOPM (was Activity Level...) See my comments below in blue On 11/30/06, Shawn Abigail <[EMAIL PROTECTED]> wrote: > > This could end up as the first software project in history where there are > more people interested in writing requirements than in coding. 8-) > > > I sent an email to the two project coordinators today (Claus and Gil) to > ask > them what their level of interest is in this project, and whether some > work > behind the scenes has been proceeding. I'd like to avoid stepping on > peoples > toes if they are still interested in driving this project. If they are > interested, they can speak up. Otherwise I'd suggest we proceed. Please let us know what Claus and Gil responded... As has been mentioned, this is complex software, and so I'd like to propose > a roadmap that involves walking before running. If there is general > agreement on the roadmap, we can then prepare the requirements > specification > for Release 0.1, sign up a development team, produce a schedule, etc. The > roadmap I'd like to propose (and this is definitely an Request For > Comment) > is as follows: I think before establishing a stable roadmap we should examine the wish list and see which requirement/wish corresponds to each release. On the other hand, I'm 100% behind you on the walk-before-run approach, and I'd like refine Release 0.1 a little bit more: Release 0.1 - internal data structures defined, file format defined, 2 layer > architecture defined, I/O module defined, WBS on interface + Cycle 1 - Define project tree structure - Define dev environment and tools (these should be recommendations not hard constraints) + Cycle 2 - Define architecture - Define data structures + Cycle 3 - Define I/O module - Create Task, Resource and Calendar maintenance interface + Cycle 4 - Create WBS interface Release 0.2 - GANTT chart display, basic MS-Project file conversion, > automated test hooks > > Release 0.3 - GANTT chart drag and drop, Critical path, baseline, printing > > Release 0.4 - Resource view, resource graph, resource leveling, assigning > resources to tasks, vacation calendar, stat holidays calendar > > Release 0.5 - PERT chart, tracking GANTT > > > > So realistically, following a walk before you run approach, what should > the > roadmap include for the first couple of development releases? Is my > proposal > for some definitions and architecture in R0.1 realistic, with the only > interface visible component being the ability to enter, save and load a > WBS? As Shawn says, my comments are open for discussion and I'd love to hear other ideas :D Let me know what you think. And again I apologize if I'm stepping on > anyone's toes. I'd just really like to see this project moving along! I'm very glad to see the activity building up, I hope we keep it up! Regards, > Shawn Abigail > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Carlos Luis Zúñiga Sibaja __________________________ [EMAIL PROTECTED] divide et impera...