This is an interesting subject (thanks),

>I had to confess to this customer that I had not seen much in the way
of >"best practice" in this area.

Neither have I. So whatever I say next is just a practice that I've been
testing its effectiveness. So it is extremely interesting for me to talk
about and share ideas about this.

I've been cross linking ideas from Feature Driven Development (Coad,
Lefebvre, De Luca, ISBN 0-13-067615-2) with the ones exposed by Boiko's
Content Management Bible (ISBN 0-7645-4862-X).

The idea is to correctly and explicitly define client valued features
cross linked with architectural constraints in order to establish
development plan that includes product (or products) selection. This, in
such way that boosts problem perception and diminishes the value of
common acronyms (XML, METADATA, HTML, WEBSERVICES, WORFLOWS, VISUAL
TEMPLATES etc). Furthermore the same documentation generated by these
definitions can be reused to guide implementation/configuration after
the product or products are selected.

Client valued features are "things" that represent what processes a
customer want to automate (web publishing plus whatever) and how each
feature needs to interact with each other according to business
engagement rules.

According to FDD (Feature-Driven Development) a software development
plan follows the following stages (my notes concern CM development plan,
an adaptation of the SDP proposed by Coad et. al.:

1. Problem Domain Modeling (Develop an overall Content Model): This is
where you gather information regarding content templates (a content
template describes content of identical structure) and their
relationships (Is there a relationship between a press release and
product description doc, service description doc, or any other business
doc?). Content Templates also define policies for content creation by
defining what data is required and what is optional for a specific type
of content ([Notification Letter]). You can also include here
site-structure etc, etc (but not required). It's a good time to describe
and review the XML Specs that the client wants to use.

2. Build a feature list (List of features grouped into sets and subject
areas). An example of a "feature set can be Publishing an [SOP -
Standard Operational Procedure] or [Book Section]" etc. Example of a
feature can be "creating a [Notification Letter] for a [Citizen]. A
subject set can be News-Management. Note that the information in
brackets is actually names referring to Content Templates or Site Map
Nodes as defined in step 1. Attached to each feature set or feature you
may specify a workflow (parallel or not).

This is probably a good moment to select your CMS.

3. Plan by Feature: You need to set who are the content owners and
feature set owners. This people are the ones that will be responsible
for managing the content. This people can tell you where data is stored
and they reach it. This is important to establish roles and find the
location of data. Location of data (database AS/400?, paper, etc) will
mandate the features needed (Driver?) by the CMS's to deal with content
integration. Collect information about what they need to insert data
(editor's) etc.

You really need to select the CMS now.

4. Design by Feature (add more content to your model). With your
selected CMS you need to start showing things.

5. Build/Configure by Feature (Completed client valued function).

This approach focuses on client valued functionality according to its
automation intent. Why? Because, quite often this is unlikely to change
much over time.

This approach and concerning docs needs to be complemented with more two
information sets (docs). 

* Architectural constraints - Databases to be used to store data,
Technology to be used (Java/J2EE, MS.NET, Security technical
constraints). The expected information throughput in and out
(scalability). Editors, Template designer's. Preferred publishing method
(Dynamic, Static both). Syndication interfaces (XML Schemas, etc etc).
.NET Passport authentication, Google search interface, etc, etc.

* Regulation driven constraints and other things - Multi-language
support, support for people with less physical abilities, electronic
signatures and policies for archiving, etc.

The language you used to describe any of this can be whatever you and
your client feels more comfortable with (UML, text, UML+text, etc). I
use UML+text now.

The phase 1, and phase 2 and sometimes 3 are the most important phases.
Do it not so well you will:

*) get less then what you need.
*) get more then you need.
*) not get what you need at all.

Either way means more cost then expected. 

There is much more to say about this, I suggest buying the books and
keep on sharing experiences.

Hope it helped,

Nuno Lopes
Independent Consultant.

PS: I agree with Tony Kisbey. Note, I'm not describing functions (that
is how the system needs to function) but client valued features
according to their intent. Functional documents quite often don't work
and they are let forgotten on some shelve. If the domain is too big,
compromises need to be (relaxing meta-data structure) done otherwise
one's risks the project not to find its end but end in end is a matter
of human resources and money available to invest. Nevertheless one needs
to focus on client valued functions encompassing the content supply
chain not technical functionality IMO. Experience with one CMS or
another is most needed to cross check the sales argumentation and
develop ones trust but is not mandatory. So one needs to check the sales
argumentation not against some technical functionality but with the
problem domain at hand and this can be usually shown in a demo or
prototype. Squeeze the "demoer" to exhaustion and compare with others.
The squeezers need to be someone(s) that knows what the problem domain
(what is the problem domain?) is and have some technical grasp. Quite
often in Portugal we find neither in the meeting with no disrespect to
clients. If one can't find anyone with both skills I advise the client
group to be mixed, but in this case please prepare the meeting before
meeting the sales person in order not to waste the time of the sales
neither yours (involving these people on phase on 1 to 3 is mandatory).



--
http://cms-list.org/
more signal, less noise.

Reply via email to