As Andrew pointed out, there are quite a few methodologies out there, none being ‘one-size-fits all.’ So before you start thinking about what methodology to implement, I would suggest
you answer a few questions such as:
- Technical competency of the client’s *IS/ICT* team
- Resources at client-end for effective project management for them to
be able to validate changes, plan and track on deliverables etc.,
- Capabilities to integrate change into an analysis stage of a project,
or say capabilities to analyse a project requirements to begin with
- Knowledge and expertise in GUI prototyping for their requirments. This
includes HCI expertise and Graphic design competencies at some stage as
well
- Agreed-upon communication policies and platform (Forums/Bug-trackers
etc.,) between yourself and your client.
There could be more questions for you to answer, but the clearer picture
you have, the better situation you are in to advice/consult your client
on the
best methodology to follow. From my experience till date, having a methodology
in
place is not just up-to you alone, but depends a lot on the relationship
and understanding you have with your client and people (maybe consultants/developers)
you work with, as it is also about working-style and personalities. These
are
the often ignored, softer issues I would say.
In general, you could be
dealing with clients with well established IS departments and people on one
hand, and the ones without, who usually
expect the developer
(in this case you, to have all answers to their problems). Some clients
have in-house competence on OpenACS to interact with a contractor (for
example Greenpeace has in-house competence),
while
some do not (there could be many examples of this).
There are people who pretty
much know what they want, and would
have done most of their thinking before reaching out to a contractor
(you in this case). Some things you could clarify is if your role is
merely
that
of an
hourly worker, or if you are required (usually implicit, but could
be an explicit job-role) to consult for your client on matters that relate
to
process and re-engineering.
‘
E-commerce’ as such is a very dynamic process that needs constant innovation
as it works out (unless your client just wants a shopping cart, and that
is it). In such cases, a flexibile methodology or process to execute your client’s
plans could help. If I were you, I would ask if, as a contractor you
are expected to have a more inclusive role, advising the client on things
they
could do.
Your role here, in this case could range from educating your client,
leadership to
project planning, implementation of tools and techniques that range from
working on process mapping to User Interface protyping, and so on.
In
my opinion, these are issues that if thought well, could help you find the
right methodology to apply on your project. I remember once
Lars advising
me
to read up Joel Spolsky's guide to functional specifications, which he
said was good. Maybe you could look at that as well. I would suggest
you look up some Agile methods like FDD, ASD and Extreme, they seem pretty
funky.
Check out http://www.nebulon.com/fdd/ for Feature
Driven Methodology
and more on Agile Methods like Extreme Programming, Adaptive Software
Development and all those jazzy things etc., on http://www.agilealliance.org/home
In the end, assuming that you are working on a small project, all by
yourself, and need a lot of flexibility, you need to tailor your approach
to your
style, your client and map them down together with the people you work
with.
Hope this helps…