I think this is a very interesting and very revealing exchange.<br><br><div class="gmail_quote">On Dec 21, 2007 9:57 PM,  &lt;<a href="mailto:paola.dimaio@gmail.com">paola.dimaio@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
HI Liam<br><br>I think the skills validation idea may be serious, following whatever<br>approach suggested below is also an option (whatever works for you).<br>If someone could help me determine whether a developer has the best
<br>possible skill to do the job, would save me money and time<br>because someone who knows their stuff can solve a problem real quickly,<br><div class="Ih2E3d"></div></blockquote><div><br>I do feel that this should be possible in some way.
<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d"><br>&gt;<br>&gt; &nbsp; 1. Is this roughly the process you use for finding job candidates?
<br><br></div>Nope- my IT skills are &#39;high level&#39; (means I do not get anywhere near<br>implementation)<br>so I roughly outline the user functionality and coarse artchitectural<br>layout, then ask<br>around who could do it within my budget could they make of it - then
<br>leave the rest to the devs</blockquote><div><br>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.
<br><br>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 ends.<br><br>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 &quot;than doing coarse architectural layout and leaving the rest to the devs&quot;&nbsp;
<br></div><div>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Being drupal developers on average a creative and adventurous bunch, I
<br>have gone through an entire range of experiences<br></blockquote><div><br>With this method, you will fail every time, even with Einstein<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>&gt;From well wishers, students, would be coders, geeks from all walks of<br>life, &nbsp;experienced programmers who want to charge me 60 dollars per<br>hour but cant tell me for sure how long its going to take them to do<br>
the job,</blockquote><div><br>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).
<br><br>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 &quot;devs&quot; (shades of Brave New World) or else in an interactive, pro-active participation in the project yourself (even though you do suggest such below).
<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> to people who give me unreasonable time estimates<br>and very few, only very few were capable of delivering the optimal
<br>configuration within a time/money constraint: say, do the job within<br>2-3 days, which is what I calculate based on a rough function point<br>analysis type of estimate</blockquote><div><br>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.
<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br><br>I had to wait for 3 years to find someone who could migrate<br>content-wire,com and even then I took a leap.
</blockquote><div><br>Right, as I have been suspecting, it is not that you have the occasional &quot;brochure&quot; site, your needs have a certain level of complexity. As well as the obvious question of whether or not the objectives are socially useful.
<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> Really good consultants<br>were busy and only considered jobs r 3k up -</blockquote>
<div><br>That would be because really good consultants understand the complexity of what they are being asked to do.<br><br>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.
<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>I had guys quoting me up to 22 thousand euros for the migration<br>(krreeeeeeiiiiks)
<br>Friends who offered to do it for free but that could not work within<br>my time frame requirements</blockquote><div><br><br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>all sorts.<br></blockquote><div><br>Yeah, diversity is a bummer.<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>&nbsp;I am lucky to have found a consultant who did the job well enough,
<br>but I still have no way of knowing if we have the optimal<br>configuration and if everything is installed properly, just that they<br>did their best, the site is up and good enough, and have been always<br>prompt and professional in their work.
</blockquote><div><br>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.<br><br>If you can do function point analysis (for those that don&#39;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&#39;s time or else in money), isn&#39;t it. Do you figure that in when you come up with your 2-3 days estimates?
<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br><br>Note: I am not talking much new development! Just roll out a decent<br>drupal website with minimal customization and ad hoc config, which
<br>should be doable within 6-8 hours of work at the most.</blockquote><div><br>If it were that simple you wouldn&#39;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) &quot;dev&quot; tells you first. For free, of course, I suppose.
<br><br>(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 &quot;failure&quot; signs so clearly spread out, and it does affect the day to day lives of consultants)
<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br><div class="Ih2E3d"><br>&gt; &nbsp; 2. Does it work well?<br></div>Well - its very time consuming and risky, but I think a more standard
<br>process can be evolved from that - maybe as a combination of the<br>proposed approaches<br><div class="Ih2E3d"></div></blockquote><div><br>Well, there you are. But not for &quot;certification&quot;. 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 &quot;here&#39;s your job, do it&quot; 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 &quot;different subject&quot;. 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.
<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d"><br><br>&gt; &nbsp; 3. Would it really help if someone did it for you?
<br></div>Yes! If you provide me a drupal geek validation service, I ll pay you a fee<br>to help me select the right geek for the job</blockquote><div><br>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.
<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>Note: the right geek for the job for me is one that can work with me<br>on messenger, 
</blockquote><div>&nbsp;<br>Now here is a glimpse at a possible solution... but it must have method.<br><br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
charges me a honest fee (say, not more than what I earn<br>per hour/day working as a lecturer)</blockquote><div><br>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 &quot;calculated&quot; 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 &#39;cause they can&#39;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. 
<br><br>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 
<a href="http://www.ibm.com/developerworks/java/library/j-beck/">http://www.ibm.com/developerworks/java/library/j-beck/</a> Working smarter, not harder, where there is the great quote &quot;The project had serious problems -- everything from the contractual arrangement, to exhausted people, to lowered voices.&quot;). And to get that job done within the confines of the crisis and anarchy of capitalist &quot;production&quot; (waves of hysterical speculation, by which Web 
2.0 is partially fueled).<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> and that can set up a website in<br>the fastes possible way, abides to good coding and development
<br>practices, and that does not get annoyed when I ask for tweaks and<br>improvements before writing off the task, etc -<br><div class="Ih2E3d"></div></blockquote><div class="Ih2E3d"><br>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. 
<br><br>&gt; Catching cheats (if the tasks were standard) would mostly consist of a<br>&gt; Google search, agreed that this wouldn&#39;t catch all of them though.<br><br>We are all cheats if there is no method.<br><br></div>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">funny enough, I dont care about cheats at all - I have come across<br>guys who said they were cheating by scraping the code from somewhere
<br>else. so what? as long as they acnowledge it, isnt this what os is<br>about? &#39;reuse&#39;?<br>but still they need to be able to personalise whatever they scrape<br>elsewhere - and to bend it to fit the spec/requirement
</blockquote><div><br>so it is you who are talking about method as the chief means to success;<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I have come across very good geeks who did not have the faintest idea<br>about how to work<br>following even the remotest software engineering practice, and got all<br>upset when I asked them to &nbsp;make well sure they tested their work
<br>themselves &nbsp;before getting me to check it out</blockquote><div><br>on the basis of tests you refuse to write<br><br>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&#39;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.
<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br><br>I had to to find all the obvious bugs myself very often, cause the<br>devs felt that their job was to roll out the code, not to test it
<br>(whoa)</blockquote><div><br>What we have here is a breakdown in communication<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><div class="Ih2E3d"><br><br>&gt; Perhaps the best route is somewhere in-between standard tasks and<br>&gt; contributions; some selection on the bug form to include it as a<br>&gt; &#39;certification task&#39;, and a list of Drupal concepts involved in
<br>&gt; completing it. Then a View where examinees can select tasks to pick-up<br>&gt; and complete.<br></div></blockquote><div><br>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...
<br><br>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&nbsp; 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.
<br><br>I am working on a solution though, as people know, so I will advertise it here when I have time to release it.<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d"><br></div>whatever - it would be nice to be left in the cold when we need to<br>find a developer<br>and/or not to have to committ to a full time job or a get a bank loan<br>to set up a drupal website<br>
<br>next best thing would be learn it myself, but that would be even more<br>risky in my case<br>:-)<br></blockquote><div><br>you don&#39;t have to learn how to program; you do have to adopt a viable method<br>&nbsp;<br>Thanks a lot for listening,
<br><br>Victor Kane<br><a href="http://awebfactory.com.ar">http://awebfactory.com.ar</a><br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>what about some basic drupal &nbsp;development training for non geeks? I ll<br>take that course<br><div class="Ih2E3d">&gt;<br><br><br>--<br>Paola Di Maio<br>School of IT<br><a href="http://www.mfu.ac.th" target="_blank">www.mfu.ac.th
</a><br>*********************************************<br>_______________________________________________<br></div><div><div></div><div class="Wj3C7c">consulting mailing list<br><a href="mailto:consulting@drupal.org">consulting@drupal.org
</a><br><a href="http://lists.drupal.org/mailman/listinfo/consulting" target="_blank">http://lists.drupal.org/mailman/listinfo/consulting</a><br></div></div></blockquote></div><br>