[consulting] Drupal Certification and Requirements

Victor Kane victorkane at gmail.com
Sat Dec 22 11:25:15 UTC 2007

I think this is a very interesting and very revealing exchange.

On Dec 21, 2007 9:57 PM, <paola.dimaio at gmail.com> wrote:

> HI Liam
> I think the skills validation idea may be serious, following whatever
> approach suggested below is also an option (whatever works for you).
> If someone could help me determine whether a developer has the best
> possible skill to do the job, would save me money and time
> because someone who knows their stuff can solve a problem real quickly,

I do feel that this should be possible in some way.

> >
> >   1. Is this roughly the process you use for finding job candidates?
> Nope- my IT skills are 'high level' (means I do not get anywhere near
> implementation)
> so I roughly outline the user functionality and coarse artchitectural
> layout, then ask
> around who could do it within my budget could they make of it - then
> leave the rest to the devs

This is, essentially, the waterfall approach... the approach to software
development that the US Department of Defense blamed for an 80% failure rate
in software projects: get all the requirements up front and have at it.

The reason this fails is that the objectives are of a minimum complexity
such that at least 40% of the requirements will change before the project

This has led to the ever widening adoption of iterative and incremental
approaches, and more recently centering on agile approaches to software
development: divide the project up into recognizable milestones, build
frequently, and most importantly, major client involvement in test driven
development so that the client is responsible for tests which can prove the
required functionality is present in bite sized chunks, which is different
"than doing coarse architectural layout and leaving the rest to the devs"

> Being drupal developers on average a creative and adventurous bunch, I
> have gone through an entire range of experiences

With this method, you will fail every time, even with Einstein

> >From well wishers, students, would be coders, geeks from all walks of
> life,  experienced programmers who want to charge me 60 dollars per
> hour but cant tell me for sure how long its going to take them to do
> the job,

They are one hundred per cent right: they are being asked to work with a
method that is imprecise. And there is no proper feasibility study, vision
document, function point analysis, or even their equivalent on a coffee bar
paper napkin. There is no clear presentation of the requirements, nor any
attempt to do so, nor is there any clear statement of the criteria according
to which the work is done (test driven development).

It is not that you do an occasional project. You evidently do many projects
frequently. So you are refusing to make the necessary investment in either a
functional analyst who can speak to the "devs" (shades of Brave New World)
or else in an interactive, pro-active participation in the project yourself
(even though you do suggest such below).

> to people who give me unreasonable time estimates
> and very few, only very few were capable of delivering the optimal
> configuration within a time/money constraint: say, do the job within
> 2-3 days, which is what I calculate based on a rough function point
> analysis type of estimate

A function point analysis gives just that: points. You have to consider
human communication (shoved down some kind of formalization funnel) as well
as the team productivity (high level of confidence and trust based on past
experience) to get the to 2-3 days.

> I had to wait for 3 years to find someone who could migrate
> content-wire,com and even then I took a leap.

Right, as I have been suspecting, it is not that you have the occasional
"brochure" site, your needs have a certain level of complexity. As well as
the obvious question of whether or not the objectives are socially useful.

> Really good consultants
> were busy and only considered jobs r 3k up -

That would be because really good consultants understand the complexity of
what they are being asked to do.

So, if the objectives are socially useful, you should be able to raise the
funds to get the job done, if it is worth doing.

> I had guys quoting me up to 22 thousand euros for the migration
> (krreeeeeeiiiiks)
> Friends who offered to do it for free but that could not work within
> my time frame requirements

> all sorts.

Yeah, diversity is a bummer.

>  I am lucky to have found a consultant who did the job well enough,
> but I still have no way of knowing if we have the optimal
> configuration and if everything is installed properly, just that they
> did their best, the site is up and good enough, and have been always
> prompt and professional in their work.

That is because you take it upon yourself to know this, yet have not written
a single black box acceptance test which was handed to the consultant
previous to starting work on iterations.

If you can do function point analysis (for those that don't know, it can be
roughly defined as a very useful, implementation transparent method of
estimating complexity and hence time and costs upon flows of data and the
complexity of that data into and out of the system) then you can bloody well
write black box acceptance tests!!! Including load tests. Then you would
know. Of course, testing is expensive (either in yours or someone's time or
else in money), isn't it. Do you figure that in when you come up with your
2-3 days estimates?

> Note: I am not talking much new development! Just roll out a decent
> drupal website with minimal customization and ad hoc config, which
> should be doable within 6-8 hours of work at the most.

If it were that simple you wouldn't be doing function point analysis. Also,
there is no one-to-one relationship in any framework between requirements
and implementation. Given a functional requirement, or feature, there is no
way of knowing what architectural impact and risk is involved unless a
(shudder) "dev" tells you first. For free, of course, I suppose.

(anti flame atmosphere note: Paola, I hope you do not take any of these
critiques personally; it is just sooooo fascinating to see all the "failure"
signs so clearly spread out, and it does affect the day to day lives of

> >   2. Does it work well?
> Well - its very time consuming and risky, but I think a more standard
> process can be evolved from that - maybe as a combination of the
> proposed approaches

Well, there you are. But not for "certification". Actually, for
certification of the client! Because, what is going on with this social
software stuff, is that the client must, must, must participate in the
development. In order to get a job really done, the one-way vertical
hierarchical "here's your job, do it" master-slave relationship has to be
broken, not only because it is unjust, but because it cannot get the job
done. And for success to be broken, there must be complicity to break down
the master-slave relationship, even within the limitations of the capitalist
system. Of course, people do not have to agree with my politics at all, and
that is a "different subject". But projects fail the more vertical they are,
and corporations know that. It is just that most of them are powerless (or
else too powerful: too many people with privileges) to change that, most of
them spend 22 billion dollars on a proprietary operating system (Vista) only
for the Financial Times to suggest that no-one install it.

> >   3. Would it really help if someone did it for you?
> Yes! If you provide me a drupal geek validation service, I ll pay you a
> fee
> to help me select the right geek for the job

You will fail even with Einstein. You, the client must geek it up to get the
job done. Or else have a friend on your side you can do it for you. Or else
find the right geek who can get someone to proxy for you.

> Note: the right geek for the job for me is one that can work with me
> on messenger,

Now here is a glimpse at a possible solution... but it must have method.

> charges me a honest fee (say, not more than what I earn
> per hour/day working as a lecturer)

well, now it is you saying that without socialism we cannot have efficiency,
without socialism we cannot have anything but anarchy of production and war.
you may be right. The thing is, part of this whole problem is the way added
value is "calculated" within the confines of the current crisis of
capitalism, the huge waves of speculation, the bubbles growing, then
bursting (geeks washing dishes in San Francisco to pay their mortgages
'cause they can't move) ... this objective of yours, for a world in which
people are qualified to do what they do and in which everyone receives
decent wages, no-one earns that much more than others.... I agree with you.

But the real problem is, and this is why I even bother posting here at all
(politics I can discuss in the actual struggle itself) is that we must get a
method to work involving client geek complicity breaking all the vertical
wall rules in order to get the job done (see
http://www.ibm.com/developerworks/java/library/j-beck/ Working smarter, not
harder, where there is the great quote "The project had serious problems --
everything from the contractual arrangement, to exhausted people, to lowered
voices."). And to get that job done within the confines of the crisis and
anarchy of capitalist "production" (waves of hysterical speculation, by
which Web 2.0 is partially fueled).

> and that can set up a website in
> the fastes possible way, abides to good coding and development
> practices, and that does not get annoyed when I ask for tweaks and
> improvements before writing off the task, etc -

certification of the client is the only way to get this done. I always
invest a huge amount in attempting (and not always succeeding) in training
my clients as part of the work. Takes longer, but the objective you are
putting forward there (and it is a laudable one) requires a social method.

> Catching cheats (if the tasks were standard) would mostly consist of a
> Google search, agreed that this wouldn't catch all of them though.

We are all cheats if there is no method.

funny enough, I dont care about cheats at all - I have come across
> guys who said they were cheating by scraping the code from somewhere
> else. so what? as long as they acnowledge it, isnt this what os is
> about? 'reuse'?
> but still they need to be able to personalise whatever they scrape
> elsewhere - and to bend it to fit the spec/requirement

so it is you who are talking about method as the chief means to success;

> I have come across very good geeks who did not have the faintest idea
> about how to work
> following even the remotest software engineering practice, and got all
> upset when I asked them to  make well sure they tested their work
> themselves  before getting me to check it out

on the basis of tests you refuse to write

here you are confusing black box integration tests with the unit tests the
programmers should be doing. but even with the most super duper automated
unit tests in the world with every bit of programming, if you don't write
black box, detailed acceptance tests based on what you really want to happen
(including non-functional constraints like response time, etc) then you will
fail even with Einstein.

> I had to to find all the obvious bugs myself very often, cause the
> devs felt that their job was to roll out the code, not to test it
> (whoa)

What we have here is a breakdown in communication

> > Perhaps the best route is somewhere in-between standard tasks and
> > contributions; some selection on the bug form to include it as a
> > 'certification task', and a list of Drupal concepts involved in
> > completing it. Then a View where examinees can select tasks to pick-up
> > and complete.

again, Liam (I think it is) is unconsciously giving a PERFECT description of
the agile approach to software development: take a user story, pick it up,
complete it, run the tests all together...

Liam says I am changing the subject, but the whole sweeping the dust under
the carpet trying to funnel the stated problem into a certification program
(which already exists and is working fine, in terms of transparent community
participation, as Greg explains) is an exercise  in futility. You are
stating aims, which are reasonable aims, and then you are saying you will be
helped by certification. I am saying that the method of development you are
using is destined to guarantee a high failure rate. So I find it a
fascinating discussion, which affects our daily lives as consultants, and
which affects companies hoping to get it done with Drupal.

I am working on a solution though, as people know, so I will advertise it
here when I have time to release it.

> whatever - it would be nice to be left in the cold when we need to
> find a developer
> and/or not to have to committ to a full time job or a get a bank loan
> to set up a drupal website
> next best thing would be learn it myself, but that would be even more
> risky in my case
> :-)

you don't have to learn how to program; you do have to adopt a viable method

Thanks a lot for listening,

Victor Kane

> what about some basic drupal  development training for non geeks? I ll
> take that course
> >
> --
> Paola Di Maio
> School of IT
> www.mfu.ac.th
> *********************************************
> _______________________________________________
> consulting mailing list
> consulting at drupal.org
> http://lists.drupal.org/mailman/listinfo/consulting
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/consulting/attachments/20071222/1899ecc7/attachment-0001.htm 

More information about the consulting mailing list