Next in thread → Next in month →

RE: HumanML_Write.ProjectPlan: Initial Proposal

From
Manos Batsis <>
Date
2001-09-24T08:03:40+00:00
ID
Thread
RE: HumanML_Write.ProjectPlan: Initial Proposal
I already have designed a web based app
for XML editing (based on ASP). The important thing about it is the front end
interface. I can help you anytime, my problem always
was the server configuration of the HumanMarkup.org website. To make it work I
need MSXML3 and modify read/write access in the server settings :-(

 

-----Original Message-----

From: Kurt Cagle
[mailto:] 

Sent: Friday, September 21, 2001
9:07 PM

To: Joseph Norris

Cc:
; 

Subject: Re:
HumanML_Write.ProjectPlan: Initial Proposal

 

Joseph,

 

I work for a consultancy that
specializes in Design Patterns and XP, so I find your discussion below amusing
<grin/>. Could you send a URL to the source code for HumanML_Write? I'd
like to put together an ASP/Web version, but don't have a handy copy of VB6 (my
eight year old a few years back decided to use the disks as VERY expensive
frisbees one day). 

 

-- Kurt

----- Original Message ----- 

From: Joseph Norris 

To: OASIS TC MAIN 

Sent: Friday,
September 21, 2001 10:29 AM

Subject:
HumanML_Write.ProjectPlan: Initial Proposal

 

HumanML_Write Project Plan Proposal

-----------------------------------

 

HumanML_Write, as it stands, is a
program designed to create XML documents that conform to the several prototype schemas
produced during Phase 0 of the project. It was written in Visual Basic Version
6.

 

In the near future, I will create a
Java version of HumanML_Write, and this will form the basis of all our future
development efforts.

 

With the support of Ranjeeth, Kurt,
and others we can make HumanML_Write a platform that will be a showcase for
HumanMarkup technologies. Of course, the purposes of HM TC are not to develop
software, but there is no doubt that a few sample applications or development
tools will allow others to experience HumanMarkup in a more real and tangible
way.

 

Why Extreme Programming?

------------------------

 

Extreme Programming takes OOP
principals and applies them to the complete programming process. These
methodlogies, adopted by many cutting edge software developers, seeks to
streamline the software developing process. Note the following methodolgy was
adapated from the rules and systems developed by http://www.extremeprogramming.org.

 

Extreme Programming Methodologies

---------------------------------

 

I) Planning

 

 A) Obtain "user
stories"

 

 - Specific use case examples
developed by potential users

 - Details desired needs to HumanML_Write cosumers and developers

 

 B) Release Plan Meeting

 

 - Discuss collected user
stories and develop release plan for whole project

 

 C) Iterative Development 

 

 - Divide and conquer method

 - Create development schedule into about a dozen iterations of 1 to 3
weeks in length. 

 

II) Designing

 

 A) Focus on code simplicity

 

 B) Focus on consistent system
metaphor

 

 - Team must name classes and
methods consistently

 

 C) Class, Responsibilities,
and Collaboration Cards (CRC)

 

 - Allows for greater team
collabortation and input

 - Moves focus away from procedure to an object focus

 

 D) Periodic "Spike
Solutions"

 

 - Create spike solutions to
figure out answers to tough technical or design problems. 

 - A spike solution is a very simple program to explore potential
solutions. 

 

 - When a technical difficulty
threatens to hold up the system's development put a pair of developers on the
problem for a week or two and reduce the potential risk. 

 

 E) Refactoring

 

 - When we remove redundancy,
eliminate unused functionality, and rejuvenate obsolete designs we are
refactoring.

 

III) Coding

 

 A) Focus on potential audience
of users

 

 - All coding and design focus
should stem from user stories, requirments, and needs of potential users

 

 B) All coding must be done
according to agreed standards

 

 - HumanML_Write shall be
written in Java for maximum cross platform compatabilty

 

 C) Code the Unit Test First 

 

 - Create a test for program's
success prior to intial coding

 - Allows for outcome produced coding pratices

 

 D) Pair Programming 

 

 - Each task should be done by
two programmers simultaneously

 - Not sure how this can be done under this particular context

 - Perhaps each coding section should be passed around between partners

 

 E) Code Intergration

 

 - Continuous integration often
avoids diverging or fragmented development efforts

 

 F) Collective Code Ownership 

 

 - No one person controls or
owns any single part of the project

 - Collective Code Ownership encourages everyone to contribute new ideas
to all segments of the project

 - Any developer can change any line of code to add functionality, fix
bugs, or refactor 

 -No one person becomes a bottle neck for changes.

 

IV)Testing

 

 A) Unit Tests 

 

 - Extensive testing to every class in the system prior to release

 - Code without proper tests may not be released

 

 B) Dealing with bugs

 

 - Must create an
"acceptance test" first

 - This helps programmers to concisely define the problem

 

 C) Acceptance Tests

 

 - Acceptance tests are black
box system tests

 - Each acceptance test represents some expected result from the system

 - Whan all acceptance tests are passed then, and only then, can the code
be published.

 

 

 

------------------------- 

Joe Norris

HumanML_Write Facilitator

Next in thread → Next in month →