Let there be light. That was beautiful.
J. Chris Leslie Web Programmer Analyst Information Services & Communications West Virginia Dept. of Administration Email: [EMAIL PROTECTED] >>> "Palyne Gaenir" <[EMAIL PROTECTED]> 01/23/02 12:28PM >>> Re: recent discussion on design specs and hiring -- What interests me is the difference between "perfect world" and "real world" when it comes to both assessing skill and developing projects. Perhaps I'm coming from a slightly different perspective, since although technically I am a CF coder, in reality I do more project management, but that includes hiring. DEVELOPMENT In my world, a potential client tells me what they'd like to do. I talk with them (and their managers who'll be using the app[s]) to nail down what it really is they want -- which only occasionally is exactly what they asked for. I develop an outline-type technical spec for them, so they have it. I am perfectly open to their taking this to someone else, and I do it free anyway. Nearly all my clients are word of mouth reference (I've never advertised), and a good-faith relationship is something I consider important for me to establish up front. I've never yet had a client go through the process of me doing this for them and not end up hiring me to manage the project. Then I develop a design outline to match the tech outline, which is the last step in what allows me to do general pricing for them. I am a huge believer in as much flat-rate pricing as possible, but there are usually a dozen caveats about the client's participation, provision of materials or review, etc. that affect this, and some areas that must by their nature be hourly -- I usually quote a flat rate based on my estimate, and if I'm wrong, I eat the money -- I figure it's my responsibility to know what I'm doing, so if I'm wrong, that's my problem, not the client's. Since I work from home as do all my contractors, most hourly fees are out of the question but a few. Those are rare until I know the client and they know I am trustworthy and affordable in this regard. My design specs are a pay-if-you-agree scenario, since I consider it a proposal; if they agree to the outline and like the design specs, then I add a small (not full price, but some compensation) price to their first invoice for the time it took me to do it; if they don't agree, we are not doing business, and there is no charge. If they agree on the outline specs I do more tech-related detail on my end then start handing out pieces to various contractors, or looking for some if it's a tech I rarely use. My tech detail only goes into 'great' detail on the things we're working on and the next step.... I develop the nitty-gritty as I go. I've never worked a project that I didn't learn a great deal from, which means I have always ended up going back to early devel stuff and upgrading it to fit new ideas or plug in new options I decided to add later, so the end product was something better. But that's the on-paper scenario. In my real world all of this happens sometimes in a chaotic sequence of flying pieces. It would be nice if all clients were big corps who move so slow, and have so much fun having meetings planning out specs by committee, that they'd be happy to pay a lot of money for a proper, linear, by-the-book sequence of development. Then I could the do everything "properly" and boy would my life be easier, my money be better, and I'd have a lot more time to get work done. The fact usually is it's a client with a project-on-fire, politics breathing down their neck, lack of time/money for their own inhouse staff and related chaos for what we need, and a hoped-for delivery timeline that would be impossible even if I were Santa Claus. But that may be the difference between working mostly for start-ups and entrpreneurial firms instead of established corporations -- and the difference between working with people who have been referenced to you from clients, as opposed to firms from out of the blue. In the entrepreneurial world, everything is due yesterday, for half the budget, with half the staff, and is an emergency the entire business future depends on. Most such firms have employees who wear at least 27 hats, work an insane amount of hours and accomplish miracles in both time and space. They can't begin to afford the "typical, perfect world" design scenarios - not in time and not in money either (and frankly, not in attitude either). They need developer/s like they are -- jack of many trades, capable of finding the resources or info/self-training if they don't have them or know something, capable of taking what seems a nearly impossible combinatio n of needs and problems and rendering it into something cohesive that works anyway. As far as demos go, I am too busy to be doing elaborate demo sites unfortunately, and my client sites represent first THEIR design taste (which is often hideous) not mine, and most my early work is behind a firewall. When possible I get a client's agreement that I can bring another customer into their backend just to look around (which we do on the phone, with a login for them that only works for that time, and I make a gateway just for that so I can exclude any confidential info being avail); I always allow pend/review entries in systems, so they can actually try things without affecting the system, and I can show them a few real apps from that perspective. HIRING When I hire contractors -- none of mine are full time and nearly all are hired via the internet, most have their own sole proprietor web development business -- it is usually based as much or more on their ability to think independently and resourcefully as any specific testable skill. I am more interested in someone who knows how to find info, train themselves, and work it out with concern for quality, specs and timeline -- than I am in whether the person already knows everything about all the stuff I might need them to do. If a contractor misses a deadline it had better be either because someone in their immediate family died, they are personally ill to near death, or it happened in spite of the fact that they worked every waking minute on it for days to get done in time. I actually feel that if a person already knows everything I need them to do, as probably done it all already etc., they should probably be moving on to a different, more challenging job. Since we work from home, contractor fees are flat rate -- I expect quotes as such, personal responsibility for that is VERY strong -- and as a result I believe self-training on the job is perfectly acceptable. If it takes them 24 hours of poring over books and online references and testing to figure out how to do it right, vs. 3 hours of coding it off the top of their head, I don't even consider that my business, assuming the timeline for that piece allowed it -- if they give me the work I ask for, done properly, when I require it, I am happy. And now they know how to do it -- I gained a contractor who is grateful for my giving them opportunity to learn, grateful for piece work, and I now have an even-more qualified person usually working for somewhat below market rate (in exchange for the advantage of working from home and getting to learn new stuff). I've learned just about everything I've EVER learned from actually having to develop it, have usually worked three times my billable hours to do so. It was harder on me, but it didn't cost the client. How could I be biased about other developers doing the same thing? I did 12 years in business management and troubleshooting prior to webwork. I hired throughout that period from minor executive level to entry-level employees, and did a lot of redesign of flow systems, departments and such. It's been my experience that whether you're hiring a laborer, a programmer, or a supervisor, the three most important qualifications are 'adaptive' intelligence, personal responsibility, and positive attitude. Obviously if it's a skill-based job, skill and experience are important -- but in my opinion the 'detail' of that skill (and especially experience) are far less relevent than the first three items. 'TESTING' of programmers I've heard of some of the processes some recruiters use for programmer testing/questioning. Most are question/code based and in some cases close to trivia -- important trivia, but still trivia. Usually, resumes and such can be narrowed down to a few likely candidates to start with. If I ask about X and the person only does Y, if they say, "Well you know X and Y are pretty much the same thing, it doesn't matter," I don't hire them - they are underestim ating something they know little about -- if they say, "I do Y which is very similar, and I'm sure I can figure out the details that are different," that's an attitude indicator more than a skill indicator (one is trying to bullshit me into thinking he knows everything; the other is openly admitting a need - but a willingness - to train himself). Hiring personnel putting code/detail qualifications in front of the adaptive intelligence/personal responsibility/attitude of employees is only at their own risk.... in my experience. Not just in webwork, but in ANY kind of hiring. (Well. Must've felt like writing this morning.) PJ www.sciencehorizon.com ______________________________________________________________________ This list and all House of Fusion resources hosted by CFHosting.com. The place for dependable ColdFusion Hosting. ------------------------------------------------------------------------------ To Unsubscribe visit http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/cf_jobs or send a message to [EMAIL PROTECTED] with 'unsubscribe' in the body.
