On Wed, 24 Nov 2004 20:14:03 +0100, Jaromir Subcik wrote:
>
>----- Paul Curtis wrote -----
>>Why should I offer such a thing?
>
>Paul, I understand you, but one case I try to point to you: imagine
>small firm needed only for one product line some programing control
>with a small alphanumeric display. This firm ask someone to make this
>SW and expect, that it can change texts in "printf" (language
>mutations) by oneself. If this SW is small enought, they appreciate
>limited version of IDE and in this specific case IAR is the winner.
>Certainly it is not valid for larger systems, but if this firm starts
>with IAR.....
I have faced this same type of scenario before with certain clients.
There is no way I want my clients recompiling code to update message
tables -- this is a massive train wreck waiting to happen! What happens
if they use a different version of the compiler you used? What happens
if they flip a few compile options differently than you did? What
happens if they inadvertantly (or not) change something else in the
source code? I wouldn't want to be respoinsible for supporting that
mess...
Instead, I would design a system that has user downloadable message
tables as part of the application. That way the end user/client can
change messages to their heart's content and never mess with your
compiled application. You could even write a neat PC front-end that
makes their job easy and stores different sets of messages on the PC.
Much safer and a whole lot easier to support.
Matt Pobursky
Maximum Performance Systems
MSP430 C compilers
Started by ●November 22, 2004
Reply by ●November 24, 20042004-11-24
Reply by ●November 24, 20042004-11-24
On Wed, 24 Nov 2004 16:41:42 -0600, Matt wrote:
>Instead, I would design a system that has user
downloadable message
>tables as part of the application. That way the end user/client can
>change messages to their heart's content and never mess with your
>compiled application. You could even write a neat PC front-end that
>makes their job easy and stores different sets of messages on the PC.
>Much safer and a whole lot easier to support.
Will they pay for the effort for all these extras? Remember, the point was
about a "small firm needed only for one product line some programming
control
with a small alphanumeric display..." To get a simple display project, are
they
going to want all the extra software, serial port interface, command protocols,
and all the extra testing to verify it, and the cost along many dimensions, just
to get a display up and running?
I can tell you what would happen in a meeting in my small business place if I
took a "display project" and started suggesting these kinds of
additions to it,
without a clearly demonstrable value to the immediate purpose at hand.
Jon
Reply by ●November 25, 20042004-11-25
On Wed, 24 Nov 2004 15:52:01 -0800, Jonathan Kirwan wrote: > >On Wed, 24 Nov 2004 16:41:42 -0600, Matt wrote: > >>Instead, I would design a system that has user downloadable message >>tables as part of the application. That way the end user/client can >>change messages to their heart's content and never mess with your >>compiled application. You could even write a neat PC front-end that >>makes their job easy and stores different sets of messages on the PC. >>Much safer and a whole lot easier to support. > >Will they pay for the effort for all these extras? Will they pay you when they screw up the process and ask you to fix it? Will you have time to drop whatever you're doing in the future to fix their screwup (even if they DO pay you)? You know they'll want it done pronto since it most certainly "will be holding us up from shipping units!" I wonder how many consultants have heard this one before? :-) I guess this goes to what your business philosophy is and how you look at solving potential future problems before they happen. Cutting loose a client with an IDE/Compiler and expecting them to be able to successfully recompile with new messages is doomed to failure, in my experience. If they can handle that task successfully, then they most likely can handle writing the code themselves in the first place. I'd prefer to make sure there's not much chance of them screwing up by design. To me that's just good engineering and part of solving the problem. >Remember, the point was about a "small firm needed only for one >product line some programming control with a small alphanumeric >display..." To get a simple display project, are they going to want >all the extra software, serial port interface, command protocols, and >all the extra testing to verify it, and the cost along many >dimensions, just to get a display up and running? Frankly, I don't see it as that huge an addition to the project as long as it's planned for up-front. I'd actually rather spend the time up- front engineering an elegant solution -- even if I have to contribute some of the cost -- than fixing a problem that's almost sure to come up later at a most inconvenient (for me) time. That's just been my experience over the years. I also don't see it having to be all that complicated an addition to the basic project. I have at least half the software in my "toolkit" to add these capabilities to the project already. It certainly wouldn't be any harder or more time consuming than having to provide the client with a complete FET/IDE setup, installing and testing it for them, documenting the process and teaching them how to do it. And in the long term it will still be riskier than having a dedicated method that was designed to store custom messages. Maybe this is one of those things you and I would disagree philosophically on, but I see something like this as an essential part of the project that probably wasn't considered up-front rather than an "add-on" frill. I believe most clients (especially non-technical ones) tend to underestimate project complexity. Show a salesman or manager the tiny little battery powered widget you spent the last several hundred hours designing and he'll yawn... "Is THAT all there is to it? What took you so long!?" To quote a friend of mine... "The roadside is littered with the bones of consultants who took on projects that were 'simple'". Another aspect of this situation is that if they really are a small firm and "can't afford to do the job right the first time" then they are the kind of client that throws up a huge red flag for me. They're likely to be slow payers, question every part of every charge you bill them for, make several major changes to the project after it is well under way and expect you to accommodate them at no charge and in general try to get everything for free they can. At that point I question whether I really want them as clients or not. Again, that's been my experience over the years. >I can tell you what would happen in a meeting in my small business place if I >took a "display project" and started suggesting these kinds of additions to it, >without a clearly demonstrable value to the immediate purpose at hand. But you see -- it's MORE than a simple display project! It's really a simple display with a user programmable/customizable message base. The client defined it as a "simple" project, but it's really not as simple as they think or present it to be. I dunno, maybe I'm just more of a salesman than you are but I'd certainly try to sell them on the positive aspects of going this route. In fact, I wouldn't even bring up the option of them diddling with the compiler themselves mostly because I think it's a bad idea. I think there's a largely demonstrable benefit to the client and that's self reliance and reliability of the process. They don't want to have to come back to me later and pay me more money because the process just works. If it came down to it and I really wanted their business, I'd recommend the route I suggested earlier. If they refused, then I'd make perfectly clear that if things got screwed up I'd have to charge them my normal rate for any additional work I'd do and that I might not be available right when they needed me. I wouldn't feel comfortable giving a warranty or supporting software I'm not in control of. It's interesting that most of my clients in the past that went the "cheap and dirty" route have almost always have come back and asked me to do it right after the fact. From that point on they usually trust me and don't question my motives on new projects. Most of my clients bring repeat business to me and I get very good word-of-mouth recommendations, I think in part because I'm a straight shooter and tell it like I see it. At least that's what many of them have told me. I'd like to think I give them the best value for their money I can and that's my goal. Sometimes spending more up-front is a much better investment. Sometimes the clients don't like what I have to say but they generally trust me because I'm usually right. Hmmm... I didn't mean for that to sound arrogant, I meant I normally won't stake out a position unless I have a high confidence level in it. ;-) OK then, enough from me. I do find this area of the consulting business very interesting. Dealing with clients is kind of a mixture of art and science. I'm always interested in how others see things and how they handle all the little challenges that inevitably come up. Matt Pobursky Maximum Performance Systems
Reply by ●November 25, 20042004-11-25
On Wed, 24 Nov 2004 21:31:15 -0000, Paul Curtis wrote:
>
>John,
>
>>My suggestion on a "limited" version of the compiler is
maybe
>>release a version with a code limit and no "official"
support
>>for a reduced price (in the $250 USD range??).
>>
>>I think there are a lot of hobbyists/students who would like
>>to use your tool, but probably can't pony up $600+ for
>>something they don't use for professional purposes.
>>
>>I realize there is msp430-gcc, but tools like yours really do
>>save time and frustration.
>>
>>I might add, support on this list is EXCELLENT, it's really
>>nice to see people actually answering questions and trying to
>>be helpful!
>
>We already offer students and educational establishments our software at
>just 99 ($150 or maybe a tad more now) which is, err, dirt cheap.
>We've sold a number of 10-seat licenses to unis on this basis, and
>they're happy.
>
>I reckon the "hobbyist" license is the death knell for a
company--it's
>what Introl did before their boar sank. But I'm always open to
>proposals for new licensing schemes...
Although I sort of took this thread off the beaten path...
I certainly understand where you're coming from Paul. As much of a
niche market as microcontroller development tool software is I am
always amazed that you guys can make a living at it.
I've developed some products of my own and early on I came to the
conclusion that the hobbyist market is no place to make a living
-- unless of course the hobbyist market is huge -- and in the case of
my products that wasn't the case. I decided that even though my
products have some appeal to hobbyists, I'd live with the few sales I
got from hobbyists that appreciated the value and bought regardless of
price rather than try to sell a zillion of something (unlikely) at low
margins. It also keeps the margins up for the commercial customers to
which the product actually has a good price/value ratio.
I commend you guys for holding your line with price. It's a quality
toolset and it's priced where even the average small business can
afford it.
Matt Pobursky
Maximum Performance Systems
Reply by ●November 25, 20042004-11-25
This is wisdom, Matt !!
You basicly have all the traps identified.
There are in any kind of projects 4 serious threats, that you learn to
circumvent as
you become old in the business. If ever.
BUFFET PROJECTS
The goal is well defined in the clients mind. "We want something that
works".
The consultant thinks "This will work" and estimates the hours.
Unfortunately there is no cork in the hole. "Natural additions" come
in for free. Clearly
we can't use it if it does not have this and that. And oops do you need
more than
300mAH battery ? We clearly don't have that. And "You should know the
industry
standard is this and that. All our competition has this and that."
And the budget cap prevails. After all, when are you really going outside the
box?
RESPONSIBILITY DEFERRAL
Now, you are making A and OtherCompany Inc. is making B. A and B has to work
together. OtherCompany makes a quick B, delivers and signs out. Unfortunately A
and B do not want to work together because of something OtherCompany did not
anticipate. They feel they stuck to the specs, and they can verify the
functionality with
a scope or whatever. (Maybe because the scope ground is optically isolated or
something.) Othercompany is furthermore rather incompetent or chooses to be so.
Since YOU are goal oriented, competent and more readily available - you adjust A
to
compensate for the shortcomings of B.
The technical details are of course beyond the client and all he sees is the
broken
Gantt card. This annoys him, but luckily everybody were working for a fixed
price.
COMMUNICATION STALL
Basicly you have to pound all feedback out of the client. Three days before
chaos
they will tell you about what does not work. Or not at all. They will try to
plug it in and
basicly decide it does not work. Fortunately for the client, there are no time
limits for
his testing of the system, so he stalls payment until he sees fit to test the
deliverable.
DO-IT-YOURSELF
Scraped budget. We have people IN-house who can take certain parts of the
project.
We don't want to pay consultant fees.
Net result: In-house speed, in-house quality and consultant frustration.
You make nice hardware and drivers for a board. The local "expert"
programs 40
kByte source code with hard left adjusted margin and no comments.
And now your crappy board is unreliable and has blown an xray tube. Fix it !
Now try proving it was their fault WITHOUT fixing it first.
My best advice after having spent upwards of 20 years doing it wrong again and
again. SELECT your clients. It's scary as hell, and every time one walks
away from
the table and says no thanks, you will think YOU were being weighed and found
too
light. If you are in doubt of them, scare them. Let them show you the money.
If they don't want to pay for doing it right, YOU will end up doing it.
After all, they
purchased a solution, did they not ?? How many here has worked for free for 4
months in a row and seen the bank account go to -50 grand ?
Another good scare if you suspect disorganizedness: Ask them to compile a Final
Assembly Test (FAT) which goes like
...
14) Press the green button. Assert the system shows the go menu.
15) Press go. Assert the system starts up.
...
Let them have time to do it. If they are too disorganized for that, they go hire
somebody who is still learning and who still uses their own credit rating to
finish
projects.. IF your system can do all the steps in the FAT, it works and you get
paid. If
the FAT has to be changed, the budget changes too.
Meanwhile you sit down and make a list of ASSUMPTIONS - what information,
ressources and tools that have to be present and how fast. Now you can talk
price.
And you can go higher than you think. Because now you are a pro. And that costs.
If the project is "real research" there is always a possibility of
breaking the budget in
a bad way for both parties. In this case, build in "Go Options" along
the way. At
certain milestones, best at completion of Work Packages (defined by FATs) both
parties have a Go-Option. To continue or document and leave it where it is.
This prevents real back-breakers where one of the parties are forced to fulfill
a
contract that is really not worth it.
Finally: A great team takes a lot of luck to find. You have to kiss lots of
frogs first.
If you make a team with inhouse people, make sure they ARE a team at all.
The client is most likely interested in getting the IP purchased secured in the
company, so they are not held hostage later by the consultant.
So build in teaching of the inhouse people. Sometimes you will find marvellous
friends and learn yourself. If it does not work, speak up to the teamleader. If
it does
work, praise. Select your tools, processors, platforms etc. WITH the company to
suit
their needs. Teach while learning. Spend time with them.
That's also what gets you your next project.
Open Source Consultancy is very rewarding for all involved parties, when done
right.
And bordered by the two lines of the FAT and the ASSUMPTIONS everybody knows
what the goal is.
Kent
who dunnit wrong lots
>
> On Wed, 24 Nov 2004 15:52:01 -0800, Jonathan Kirwan wrote:
> >
> >On Wed, 24 Nov 2004 16:41:42 -0600, Matt wrote:
> >
> >>Instead, I would design a system that has user downloadable
message
> >>tables as part of the application. That way the end user/client
can
> >>change messages to their heart's content and never mess with
your
> >>compiled application. You could even write a neat PC front-end
that
> >>makes their job easy and stores different sets of messages on the
PC.
> >>Much safer and a whole lot easier to support.
> >
> >Will they pay for the effort for all these extras?
>
> Will they pay you when they screw up the process and ask you to fix it?
> Will you have time to drop whatever you're doing in the future to fix
> their screwup (even if they DO pay you)? You know they'll want it done
> pronto since it most certainly "will be holding us up from shipping
> units!" I wonder how many consultants have heard this one before? :-)
>
> I guess this goes to what your business philosophy is and how you look
> at solving potential future problems before they happen. Cutting loose
> a client with an IDE/Compiler and expecting them to be able to
> successfully recompile with new messages is doomed to failure, in my
> experience. If they can handle that task successfully, then they most
> likely can handle writing the code themselves in the first place. I'd
> prefer to make sure there's not much chance of them screwing up by
> design. To me that's just good engineering and part of solving the
> problem.
>
> >Remember, the point was about a "small firm needed only for one
> >product line some programming control with a small alphanumeric
> >display..." To get a simple display project, are they going to
want
> >all the extra software, serial port interface, command protocols, and
> >all the extra testing to verify it, and the cost along many
> >dimensions, just to get a display up and running?
>
> Frankly, I don't see it as that huge an addition to the project as
long
> as it's planned for up-front. I'd actually rather spend the time
up-
> front engineering an elegant solution -- even if I have to contribute
> some of the cost -- than fixing a problem that's almost sure to come
up
> later at a most inconvenient (for me) time. That's just been my
> experience over the years.
>
> I also don't see it having to be all that complicated an addition to
> the basic project. I have at least half the software in my
"toolkit" to
> add these capabilities to the project already. It certainly wouldn't
be
> any harder or more time consuming than having to provide the client
> with a complete FET/IDE setup, installing and testing it for them,
> documenting the process and teaching them how to do it. And in the long
> term it will still be riskier than having a dedicated method that was
> designed to store custom messages. Maybe this is one of those things
> you and I would disagree philosophically on, but I see something like
> this as an essential part of the project that probably wasn't
> considered up-front rather than an "add-on" frill.
>
> I believe most clients (especially non-technical ones) tend to
> underestimate project complexity. Show a salesman or manager the tiny
> little battery powered widget you spent the last several hundred hours
> designing and he'll yawn... "Is THAT all there is to it? What
took you
> so long!?" To quote a friend of mine... "The roadside is littered
with
> the bones of consultants who took on projects that were
'simple'".
>
> Another aspect of this situation is that if they really are a small
> firm and "can't afford to do the job right the first time"
then they
> are the kind of client that throws up a huge red flag for me. They're
> likely to be slow payers, question every part of every charge you bill
> them for, make several major changes to the project after it is well
> under way and expect you to accommodate them at no charge and in
> general try to get everything for free they can. At that point I
> question whether I really want them as clients or not. Again, that's
> been my experience over the years.
>
> >I can tell you what would happen in a meeting in my small business
place if I
> >took a "display project" and started suggesting these kinds
of additions to it,
> >without a clearly demonstrable value to the immediate purpose at hand.
>
> But you see -- it's MORE than a simple display project! It's
really a
> simple display with a user programmable/customizable message base. The
> client defined it as a "simple" project, but it's really not
as simple
> as they think or present it to be.
>
> I dunno, maybe I'm just more of a salesman than you are but I'd
> certainly try to sell them on the positive aspects of going this route.
> In fact, I wouldn't even bring up the option of them diddling with the
> compiler themselves mostly because I think it's a bad idea. I think
> there's a largely demonstrable benefit to the client and that's
self
> reliance and reliability of the process. They don't want to have to
> come back to me later and pay me more money because the process just
> works.
>
> If it came down to it and I really wanted their business, I'd
recommend
> the route I suggested earlier. If they refused, then I'd make
perfectly
> clear that if things got screwed up I'd have to charge them my normal
> rate for any additional work I'd do and that I might not be available
> right when they needed me. I wouldn't feel comfortable giving a
> warranty or supporting software I'm not in control of.
>
> It's interesting that most of my clients in the past that went the
> "cheap and dirty" route have almost always have come back and
asked me
> to do it right after the fact. From that point on they usually trust me
> and don't question my motives on new projects. Most of my clients
bring
> repeat business to me and I get very good word-of-mouth
> recommendations, I think in part because I'm a straight shooter and
> tell it like I see it. At least that's what many of them have told me.
> I'd like to think I give them the best value for their money I can and
> that's my goal. Sometimes spending more up-front is a much better
> investment. Sometimes the clients don't like what I have to say but
> they generally trust me because I'm usually right. Hmmm... I
didn't
> mean for that to sound arrogant, I meant I normally won't stake out a
> position unless I have a high confidence level in it. ;-)
>
> OK then, enough from me. I do find this area of the consulting business
> very interesting. Dealing with clients is kind of a mixture of art and
> science. I'm always interested in how others see things and how they
> handle all the little challenges that inevitably come up.
>
> Matt Pobursky
> Maximum Performance Systems
>
>
>
>
> .
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
Reply by ●November 25, 20042004-11-25
On Wed, 24 Nov 2004 21:23:04 -0600, Matt wrote: >On Wed, 24 Nov 2004 15:52:01 -0800, Jonathan Kirwan wrote: >> >>On Wed, 24 Nov 2004 16:41:42 -0600, Matt wrote: >> >>>Instead, I would design a system that has user downloadable message >>>tables as part of the application. That way the end user/client can >>>change messages to their heart's content and never mess with your >>>compiled application. You could even write a neat PC front-end that >>>makes their job easy and stores different sets of messages on the PC. >>>Much safer and a whole lot easier to support. >> >>Will they pay for the effort for all these extras? > >Will they pay you when they screw up the process and ask you to fix it? I guess I'd try and get the design done appropriately. If they need those extras, then it's part of the design. But if I'm just adding it at my own behest and, as I wrote, without "a clearly demonstrable value to the immediate purpose at hand," and produced a more expensive and more complex product -- then I don't see why I'd be doing the client any favors. >Will you have time to drop whatever you're doing in the future to fix >their screwup (even if they DO pay you)? You know they'll want it done >pronto since it most certainly "will be holding us up from shipping >units!" I wonder how many consultants have heard this one before? :-) You are simply bringing up a strawman, Matt. If it is appropriate to the design, a necessary ingredient based on appropriate specifications for what is required, then do it. I didn't say otherwise. If downloadable messages is an essential part of the design to meet the requirements, do it. I was just saying that one shouldn't introduce these things without a clear value for the purpose at hand. If it is clearly required, then do it. No argument from me, in that case. I was addressing myself to the idea of simply coming up with imaginative ideas to download messages that wasn't a necessary part of what the customer is looking for. I've seen many a project get feature laden by creative programmers without much sense for the extra costs from after-sale support, documentation, manufacturing, testing, parts, board size, power consumption, etc. only to have actually done the customer poorer, in the end. If that doesn't fit the case, then it doesn't fit the case. But the point remains. >I guess this goes to what your business philosophy is and how you look >at solving potential future problems before they happen. Cutting loose >a client with an IDE/Compiler and expecting them to be able to >successfully recompile with new messages is doomed to failure, in my >experience. If they can handle that task successfully, then they most >likely can handle writing the code themselves in the first place. I'd >prefer to make sure there's not much chance of them screwing up by >design. To me that's just good engineering and part of solving the >problem. It's a tight line to walk, Matt. You make it sound so simple, by talking from an extreme edge of the situation. But the reality isn't easy to manage. If you add a feature, there are costs. You may not see them, up front, but they are there. They are always there. On the other hand, if you don't take advance notice of potential problems and anticipate them, there are costs there, once again. Treading this well takes experience. But it's never as simple as your words above seem to make it sound, in trying to make yourself sound obviously plausible. My advice is to be careful and not cavalier when considering new features -- and especially ones that may add an unnecessary serial port, power requirements, connectors, various software parts such as low and high level drivers, parsers, flash programming features (which, on the MSP430 and on some other controllers, limits the voltage range and adds peak current requirements to the existing power system), etc., all for the idea of "Hey, let's add the ability to download customer messages!" If it's needed, fine. If that need is evidenced by the short and long term requirements, fine. But when considering something like this, it's good to carefully examine various alternatives -- many of which may have nothing to do with hardware or software, but with documentation or detailed dialog with the customer to negotiate changes in their procedures, etc. But I wasn't making any sweeping statements about the whole idea. If it's essential, then do it. >>Remember, the point was about a "small firm needed only for one >>product line some programming control with a small alphanumeric >>display..." To get a simple display project, are they going to want >>all the extra software, serial port interface, command protocols, and >>all the extra testing to verify it, and the cost along many >>dimensions, just to get a display up and running? > >Frankly, I don't see it as that huge an addition to the project as long >as it's planned for up-front. I'd actually rather spend the time up- >front engineering an elegant solution -- even if I have to contribute >some of the cost -- than fixing a problem that's almost sure to come up >later at a most inconvenient (for me) time. That's just been my >experience over the years. I've been doing this stuff, as a sole proprietor for ... well, for 1099MISC income, for 25 years now. Programming as a profession for 34 years. >I also don't see it having to be all that complicated an addition to >the basic project. I have at least half the software in my "toolkit" to >add these capabilities to the project already. It certainly wouldn't be >any harder or more time consuming than having to provide the client >with a complete FET/IDE setup, installing and testing it for them, >documenting the process and teaching them how to do it. And in the long >term it will still be riskier than having a dedicated method that was >designed to store custom messages. Maybe this is one of those things >you and I would disagree philosophically on, but I see something like >this as an essential part of the project that probably wasn't >considered up-front rather than an "add-on" frill. These comments just seem to make my point, all the more, Matt. But I won't belabor it. If you see why, fine. If not, some others will see why. I'm happy to leave it at that, since I now suspect from the above that it would take far more time than I want to right now to explain sufficiently for you to follow. For now... either you see why I'm concerned with the above paragraph, or you don't. >I believe most clients (especially non-technical ones) tend to >underestimate project complexity. Some even think they understand what's better for them when they really don't. I've had cases where I had to tell them I was doing exactly what they said they wanted (after I tried to convince them why it was likely to fail) and then turn around and do exactly what they told me NOT to do, make them pay for it, and then smile as they believed they got what they asked for when they see it work. In one case, I made one department of a large corporation (Tektronix) pay for work I did for another department who would be responsible for feeding the necessary data, despite a refusal to help out the other organization when I first brought up the need. In the end, they were extremely happy because the system worked, as the other group supporting them were able to function in their necessary role. Did I admit to them that they were billed for work they had told me not to do? No. And everyone was happy. Yes, I agree with the thrust of your comment. I'd add that I also tend to be more positive, as well, than I sometimes should be. But I live with it and compensate where I can. >Show a salesman or manager the tiny >little battery powered widget you spent the last several hundred hours >designing and he'll yawn... "Is THAT all there is to it? What took you >so long!?" To quote a friend of mine... "The roadside is littered with >the bones of consultants who took on projects that were 'simple'". Hehe. Yes. That applies to anything to do with projects that have new elements. I am working on a kitchen for my daughter. Almost at every turn, I find something else to delay me and make me learn something new. The corner angle where I'm placing a counter isn't 90-degrees, but instead moves out fully 7/8" from the counter corner to the front edge. So I have to cut the counter along a gradual slant. Unanticipated time is spent. Then, the floor isn't as level as it should be. More time. Then, the sink that I bought (standard size) will correctly fit into the countertop, but... it just misses things for the standard cabinet I also bought and already mounted. So I have to use a router to avoid cutting into the cabinet and set the rail of the sink into a routed trough on that side. And, since the countertop has a back splash, it turns out that the back side cut is too close for my jig saw to fit (too wide of a body) so now I need to go buy another tool that can cut close, like that. Etc. You get the idea. Reality impinges. >Another aspect of this situation is that if they really are a small >firm and "can't afford to do the job right the first time" then they >are the kind of client that throws up a huge red flag for me. They're >likely to be slow payers, question every part of every charge you bill >them for, make several major changes to the project after it is well >under way and expect you to accommodate them at no charge and in >general try to get everything for free they can. At that point I >question whether I really want them as clients or not. Again, that's >been my experience over the years. Well, this is a different issue, Matt. Really, if you are just inflating the project so as to be sure that the client isn't stingy and difficult to deal with, that's the wrong reason to be doing it. It should be exactly because it is what they need. In other words, doing a small, appropriately low-cost project isn't inherently, in and of itself, a bad thing. Of course, if the customer is trying to force you to do what you KNOW will come back to bite you and your other dealings with them contribute also to the idea that they are going to shift all the burdens onto you and try and take from you without giving back, then yes. I've long ago learned how to spot these. What I look for is long term relationships -- everything in business, really, boils down to "relationship." If they aren't people I'd like to be married to, I gracefully bow out as soon as I can. But I can usually spot that pretty fast. >>I can tell you what would happen in a meeting in my small business place if I >>took a "display project" and started suggesting these kinds of additions to it, >>without a clearly demonstrable value to the immediate purpose at hand. > >But you see -- it's MORE than a simple display project! It's really a >simple display with a user programmable/customizable message base. The >client defined it as a "simple" project, but it's really not as simple >as they think or present it to be. Maybe. You haven't convinced me. >I dunno, maybe I'm just more of a salesman than you are but I'd >certainly try to sell them on the positive aspects of going this route. ><snip> And fail to mention where it may hurt them? >OK then, enough from me. I do find this area of the consulting business >very interesting. Dealing with clients is kind of a mixture of art and >science. I'm always interested in how others see things and how they >handle all the little challenges that inevitably come up. I love the work, too, Matt. I really do. It consumes my every waking hour and it does so, pleasantly and without any self-abnegation. Jon
Reply by ●November 25, 20042004-11-25
Hi Kent, interesting! Very jaded outlook for one so young ;@}, and you
missed what, to me anyway, has been my greatest source of income.
The BUDGETS BLOWN PROJECT. This usually occurs where one of the below
scenarios has unfolded to its obvious conclusion. A mess. The potential
client hired company A because they wanted a 'reputable firm' or
because
so and so who works in the typing pool has a brother who knows the uncle
of the company owners wife. Anyway, they've been charged big bucks, the
project is way over time, and way over budget. The original contractor
has been fired, or has disappeared from view. The client wants it fixed,
it's 'almost working', so shouldn't take too much. He
doesn't trust
anybody in our crooked industry anymore, and they have littel or no
budget available.
Fortunately I'm cheap. I only have me to employ. I examine the job. 90%
of the time the hardware is absolute crap, and the software looks like
the chimps tea party was given type writers to play with.However they've
heard 'it just needs a new PCB design' too many times, or you're
the
fifth attempt at fixing it, and "everybody else claimed the software
needed re-writing, and they stuffed it too'.
I make them one offer only, take it or leave it. I will patch the
existing system for $n. It will have absolutely the least level of
functionality that makes it useful. Here is the list of tests it will
pass. If it passes these tests for a lump sum of $m payable 25% with
order, 25% on PCB delivery, 25% on completion of programming and 25% on
passing final tsting, or for $p each week, for a maximum number of x
weeks I will deliver the product they oredered plus a list of
improvements, and here is the testign schedule it will pass.
Normally these situations arise because the client has no idea what is
possible, and the 'designer' has not taken the time to adequately
study
the target industry, filter out what is desirable, and what isn't, then
educate the client on what they really want.
Kent Johansen wrote:
> This is wisdom, Matt !!
> You basicly have all the traps identified.
> There are in any kind of projects 4 serious threats, that you learn to
circumvent as
> you become old in the business. If ever.
>
> BUFFET PROJECTS
> The goal is well defined in the clients mind. "We want something that
works".
> The consultant thinks "This will work" and estimates the hours.
> Unfortunately there is no cork in the hole. "Natural additions"
come in for free. Clearly
> we can't use it if it does not have this and that. And oops do you
need more than
> 300mAH battery ? We clearly don't have that. And "You should know
the industry
> standard is this and that. All our competition has this and that."
> And the budget cap prevails. After all, when are you really going outside
the box?
>
> RESPONSIBILITY DEFERRAL
> Now, you are making A and OtherCompany Inc. is making B. A and B has to
work
> together. OtherCompany makes a quick B, delivers and signs out.
Unfortunately A
> and B do not want to work together because of something OtherCompany did
not
> anticipate. They feel they stuck to the specs, and they can verify the
functionality with
> a scope or whatever. (Maybe because the scope ground is optically isolated
or
> something.) Othercompany is furthermore rather incompetent or chooses to be
so.
> Since YOU are goal oriented, competent and more readily available - you
adjust A to
> compensate for the shortcomings of B.
> The technical details are of course beyond the client and all he sees is
the broken
> Gantt card. This annoys him, but luckily everybody were working for a fixed
price.
>
> COMMUNICATION STALL
> Basicly you have to pound all feedback out of the client. Three days before
chaos
> they will tell you about what does not work. Or not at all. They will try
to plug it in and
> basicly decide it does not work. Fortunately for the client, there are no
time limits for
> his testing of the system, so he stalls payment until he sees fit to test
the deliverable.
>
> DO-IT-YOURSELF
> Scraped budget. We have people IN-house who can take certain parts of the
project.
> We don't want to pay consultant fees.
> Net result: In-house speed, in-house quality and consultant frustration.
> You make nice hardware and drivers for a board. The local
"expert" programs 40
> kByte source code with hard left adjusted margin and no comments.
> And now your crappy board is unreliable and has blown an xray tube. Fix it
!
> Now try proving it was their fault WITHOUT fixing it first.
>
>
> My best advice after having spent upwards of 20 years doing it wrong again
and
> again. SELECT your clients. It's scary as hell, and every time one
walks away from
> the table and says no thanks, you will think YOU were being weighed and
found too
> light. If you are in doubt of them, scare them. Let them show you the
money.
> If they don't want to pay for doing it right, YOU will end up doing
it. After all, they
> purchased a solution, did they not ?? How many here has worked for free for
4
> months in a row and seen the bank account go to -50 grand ?
>
> Another good scare if you suspect disorganizedness: Ask them to compile a
Final
> Assembly Test (FAT) which goes like
> ...
> 14) Press the green button. Assert the system shows the go menu.
> 15) Press go. Assert the system starts up.
> ...
> Let them have time to do it. If they are too disorganized for that, they go
hire
> somebody who is still learning and who still uses their own credit rating
to finish
> projects.. IF your system can do all the steps in the FAT, it works and
you get paid. If
> the FAT has to be changed, the budget changes too.
> Meanwhile you sit down and make a list of ASSUMPTIONS - what information,
> ressources and tools that have to be present and how fast. Now you can talk
price.
> And you can go higher than you think. Because now you are a pro. And that
costs.
>
> If the project is "real research" there is always a possibility
of breaking the budget in
> a bad way for both parties. In this case, build in "Go Options"
along the way. At
> certain milestones, best at completion of Work Packages (defined by FATs)
both
> parties have a Go-Option. To continue or document and leave it where it is.
> This prevents real back-breakers where one of the parties are forced to
fulfill a
> contract that is really not worth it.
>
> Finally: A great team takes a lot of luck to find. You have to kiss lots of
frogs first.
> If you make a team with inhouse people, make sure they ARE a team at all.
> The client is most likely interested in getting the IP purchased secured in
the
> company, so they are not held hostage later by the consultant.
> So build in teaching of the inhouse people. Sometimes you will find
marvellous
> friends and learn yourself. If it does not work, speak up to the
teamleader. If it does
> work, praise. Select your tools, processors, platforms etc. WITH the
company to suit
> their needs. Teach while learning. Spend time with them.
> That's also what gets you your next project.
> Open Source Consultancy is very rewarding for all involved parties, when
done right.
>
> And bordered by the two lines of the FAT and the ASSUMPTIONS everybody
knows
> what the goal is.
>
> Kent
> who dunnit wrong lots
>
>
>>On Wed, 24 Nov 2004 15:52:01 -0800, Jonathan Kirwan wrote:
>>
>>>
>>> On Wed, 24 Nov 2004 16:41:42 -0600, Matt wrote:
>>>
>>> >Instead, I would design a system that has user downloadable
message
>>> >tables as part of the application. That way the end user/client
can
>>> >change messages to their heart's content and never mess
with your
>>> >compiled application. You could even write a neat PC front-end
that
>>> >makes their job easy and stores different sets of messages on
the PC.
>>> >Much safer and a whole lot easier to support.
>>>
>>> Will they pay for the effort for all these extras?
>>
>>Will they pay you when they screw up the process and ask you to fix it?
>>Will you have time to drop whatever you're doing in the future to
fix
>>their screwup (even if they DO pay you)? You know they'll want it
done
>>pronto since it most certainly "will be holding us up from shipping
>>units!" I wonder how many consultants have heard this one before?
:-)
>>
>>I guess this goes to what your business philosophy is and how you look
>>at solving potential future problems before they happen. Cutting loose
>>a client with an IDE/Compiler and expecting them to be able to
>>successfully recompile with new messages is doomed to failure, in my
>>experience. If they can handle that task successfully, then they most
>>likely can handle writing the code themselves in the first place.
I'd
>>prefer to make sure there's not much chance of them screwing up by
>>design. To me that's just good engineering and part of solving the
>>problem.
>>
>>
>>> Remember, the point was about a "small firm needed only for
one
>>> product line some programming control with a small alphanumeric
>>> display..." To get a simple display project, are they going
to want
>>> all the extra software, serial port interface, command protocols,
and
>>> all the extra testing to verify it, and the cost along many
>>> dimensions, just to get a display up and running?
>>
>>Frankly, I don't see it as that huge an addition to the project as
long
>>as it's planned for up-front. I'd actually rather spend the
time up-
>>front engineering an elegant solution -- even if I have to contribute
>>some of the cost -- than fixing a problem that's almost sure to
come up
>>later at a most inconvenient (for me) time. That's just been my
>>experience over the years.
>>
>>I also don't see it having to be all that complicated an addition
to
>>the basic project. I have at least half the software in my
"toolkit" to
>>add these capabilities to the project already. It certainly
wouldn't be
>>any harder or more time consuming than having to provide the client
>>with a complete FET/IDE setup, installing and testing it for them,
>>documenting the process and teaching them how to do it. And in the long
>>term it will still be riskier than having a dedicated method that was
>>designed to store custom messages. Maybe this is one of those things
>>you and I would disagree philosophically on, but I see something like
>>this as an essential part of the project that probably wasn't
>>considered up-front rather than an "add-on" frill.
>>
>>I believe most clients (especially non-technical ones) tend to
>>underestimate project complexity. Show a salesman or manager the tiny
>>little battery powered widget you spent the last several hundred hours
>>designing and he'll yawn... "Is THAT all there is to it? What
took you
>>so long!?" To quote a friend of mine... "The roadside is
littered with
>>the bones of consultants who took on projects that were
'simple'".
>>
>>Another aspect of this situation is that if they really are a small
>>firm and "can't afford to do the job right the first
time" then they
>>are the kind of client that throws up a huge red flag for me.
They're
>>likely to be slow payers, question every part of every charge you bill
>>them for, make several major changes to the project after it is well
>>under way and expect you to accommodate them at no charge and in
>>general try to get everything for free they can. At that point I
>>question whether I really want them as clients or not. Again,
that's
>>been my experience over the years.
>>
>>
>>> I can tell you what would happen in a meeting in my small business
place if I
>>> took a "display project" and started suggesting these
kinds of additions to it,
>>> without a clearly demonstrable value to the immediate purpose at
hand.
>>
>>But you see -- it's MORE than a simple display project! It's
really a
>>simple display with a user programmable/customizable message base. The
>>client defined it as a "simple" project, but it's really
not as simple
>>as they think or present it to be.
>>
>>I dunno, maybe I'm just more of a salesman than you are but
I'd
>>certainly try to sell them on the positive aspects of going this route.
>>In fact, I wouldn't even bring up the option of them diddling with
the
>>compiler themselves mostly because I think it's a bad idea. I think
>>there's a largely demonstrable benefit to the client and
that's self
>>reliance and reliability of the process. They don't want to have to
>>come back to me later and pay me more money because the process just
>>works.
>>
>>If it came down to it and I really wanted their business, I'd
recommend
>>the route I suggested earlier. If they refused, then I'd make
perfectly
>>clear that if things got screwed up I'd have to charge them my
normal
>>rate for any additional work I'd do and that I might not be
available
>>right when they needed me. I wouldn't feel comfortable giving a
>>warranty or supporting software I'm not in control of.
>>
>>It's interesting that most of my clients in the past that went the
>>"cheap and dirty" route have almost always have come back and
asked me
>>to do it right after the fact. From that point on they usually trust me
>>and don't question my motives on new projects. Most of my clients
bring
>>repeat business to me and I get very good word-of-mouth
>>recommendations, I think in part because I'm a straight shooter and
>>tell it like I see it. At least that's what many of them have told
me.
>>I'd like to think I give them the best value for their money I can
and
>>that's my goal. Sometimes spending more up-front is a much better
>>investment. Sometimes the clients don't like what I have to say but
>>they generally trust me because I'm usually right. Hmmm... I
didn't
>>mean for that to sound arrogant, I meant I normally won't stake out
a
>>position unless I have a high confidence level in it. ;-)
>>
>>OK then, enough from me. I do find this area of the consulting business
>>very interesting. Dealing with clients is kind of a mixture of art and
>>science. I'm always interested in how others see things and how
they
>>handle all the little challenges that inevitably come up.
>>
>>Matt Pobursky
>>Maximum Performance Systems
>>
>>
>>
>>
>>.
>>
>>
>>Yahoo! Groups Links
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
>
>
> .
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
>
Reply by ●November 25, 20042004-11-25
Al, > Hi Kent, interesting! Very jaded outlook for one so young > ;@}, and you missed what, to me anyway, has been my greatest > source of income. > > The BUDGETS BLOWN PROJECT. This usually occurs where one of > the below scenarios has unfolded to its obvious conclusion. A > mess. The potential client hired company A because they > wanted a 'reputable firm' or because so and so who works in > the typing pool has a brother who knows the uncle of the > company owners wife. Anyway, they've been charged big bucks, > the project is way over time, and way over budget. This is the "THE GRANDIOSE TAX-SAVING GOVERNMENT PROJECT" scenario, also known as the "EDS BOTTOM LINE SUPPORT PROJECT" as it typically fails, costs the taxpayer a shedload, EDS or Siemens don't need to deliver anything working, and they get of scot free, get paid, and are anxious for the gravytrain to continue! We've had our fair share of them: Child Support Agency (EDS): http://news.independent.co.uk/low_res/story.jsp?storyX4793&host=3&dir= 62 Passports & "anybody can have a UK passport if you can write your name and promise you're not a terrorist" fiasco (Siemens): http://www.findarticles.com/p/articles/mi_m0CGN/is_1999_July_6/ai_550716 79 NATS New En-route Centre (IBM/Loral): http://www.computerweekly.com/Article109436.htm It even happens that we don't even know what it costs to build a place where Members of the Scottish Parliament can all gather and chat--incredible! http://www.gallowaygazette.com/servlet/ContentServer?pagename=Newspaper/ Article&pid45579536650&cid67414664684 Nose to the grindstone everyone--we need to support EDS and Siemens with our taxes! -- Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk CrossWorks for MSP430, ARM, and (soon) Atmel AVR processors
Reply by ●November 25, 20042004-11-25
To be fair to everybody ... I remember a mutual agreement to mark OT posts of this kind. I do indulge myself in OT posts, no problem about that, but I just happen to have opened this one in the belief to find a non-OT post. Regards A_M " At 16.06 25/11/2004, PAUL CURTIS wrote: This is the "THE GRANDIOSE TAX-SAVING GOVERNMENT PROJECT" scenario, also known as the "EDS BOTTOM LINE SUPPORT PROJECT" as it typically fails, costs the taxpayer a shedload, EDS or Siemens don't need to deliver anything working, and they get of scot free, get paid, and are anxious for the gravytrain to continue! We've had our fair share of them: omissis... "
Reply by ●November 25, 20042004-11-25
Hah!! You are describing exactly a project that I have intimate knowledge of. Except - I find that you have to walk a mile in the old consultants shoes before you criticize him. At least you will be a mile away and have his shoes - which is in 90% of the cases the best you will ever be able to get out of the project. That's when you need to ask 3 serious questions: 1) Did the project fail because of consultant incompetence in technology or in the clients management, communication and business skills. Sometimes the failure is still employed. 2) Are they willing to spend the money it takes to regroup and redesign? Again. Scare them initially. I once met for 2 days with a potential Budget Break Client, whose favorite subjects were "How DO they price those hamburgers? Clearly that one is more worth than the cheaper one here.". "How CAN they sell gas on that corner 4 cents over the price of the ones just over there??" While negotiating projects with him, he hired 3 students to identify RS485 drivers for him. For a week. On the last day I told him on the phone what result they would arrive at, if they were good. I was right. Then he spent 3 weeks, incommunicado, poking around in a set of freeware DVDs worth of sourcecode he purchased, hoping to find his application there. Then he told me I was a wannabe and not a pro because I had unrealistic salary demands. Man, did that hurt my feelings!! 3) The third is the one I always forget and which comes to bite me. Kent --- In msp430@msp4..., onestone <onestone@b...> wrote: > Hi Kent, interesting! Very jaded outlook for one so young ;@}, and you > missed what, to me anyway, has been my greatest source of income. > > The BUDGETS BLOWN PROJECT. This usually occurs where one of the below > scenarios has unfolded to its obvious conclusion. A mess. The potential > client hired company A because they wanted a 'reputable firm' or because > so and so who works in the typing pool has a brother who knows the uncle > of the company owners wife. Anyway, they've been charged big bucks, the > project is way over time, and way over budget. The original contractor > has been fired, or has disappeared from view. The client wants it fixed, > it's 'almost working', so shouldn't take too much. He doesn't trust > anybody in our crooked industry anymore, and they have littel or no > budget available. > > Fortunately I'm cheap. I only have me to employ. I examine the job. 90% > of the time the hardware is absolute crap, and the software looks like > the chimps tea party was given type writers to play with.However they've > heard 'it just needs a new PCB design' too many times, or you're the > fifth attempt at fixing it, and "everybody else claimed the software > needed re-writing, and they stuffed it too'. > > I make them one offer only, take it or leave it. I will patch the > existing system for $n. It will have absolutely the least level of > functionality that makes it useful. Here is the list of tests it will > pass. If it passes these tests for a lump sum of $m payable 25% with > order, 25% on PCB delivery, 25% on completion of programming and 25% on > passing final tsting, or for $p each week, for a maximum number of x > weeks I will deliver the product they oredered plus a list of > improvements, and here is the testign schedule it will pass. > > Normally these situations arise because the client has no idea what is > possible, and the 'designer' has not taken the time to adequately study > the target industry, filter out what is desirable, and what isn't, then > educate the client on what they really want. > > Kent Johansen wrote: > > > This is wisdom, Matt !! > > You basicly have all the traps identified. > > There are in any kind of projects 4 serious threats, that you learn to circumvent as > > you become old in the business. If ever. > > > > BUFFET PROJECTS > > The goal is well defined in the clients mind. "We want something that works". > > The consultant thinks "This will work" and estimates the hours. > > Unfortunately there is no cork in the hole. "Natural additions" come in for free. Clearly > > we can't use it if it does not have this and that. And oops do you need more than > > 300mAH battery ? We clearly don't have that. And "You should know the industry > > standard is this and that. All our competition has this and that." > > And the budget cap prevails. After all, when are you really going outside the box? > > > > RESPONSIBILITY DEFERRAL > > Now, you are making A and OtherCompany Inc. is making B. A and B has to work > > together. OtherCompany makes a quick B, delivers and signs out. Unfortunately A > > and B do not want to work together because of something OtherCompany did not > > anticipate. They feel they stuck to the specs, and they can verify the functionality with > > a scope or whatever. (Maybe because the scope ground is optically isolated or > > something.) Othercompany is furthermore rather incompetent or chooses to be so. > > Since YOU are goal oriented, competent and more readily available - you adjust A to > > compensate for the shortcomings of B. > > The technical details are of course beyond the client and all he sees is the broken > > Gantt card. This annoys him, but luckily everybody were working for a fixed price. > > > > COMMUNICATION STALL > > Basicly you have to pound all feedback out of the client. Three days before chaos > > they will tell you about what does not work. Or not at all. They will try to plug it in and > > basicly decide it does not work. Fortunately for the client, there are no time limits for > > his testing of the system, so he stalls payment until he sees fit to test the deliverable. > > > > DO-IT-YOURSELF > > Scraped budget. We have people IN-house who can take certain parts of the project. > > We don't want to pay consultant fees. > > Net result: In-house speed, in-house quality and consultant frustration. > > You make nice hardware and drivers for a board. The local "expert" programs 40 > > kByte source code with hard left adjusted margin and no comments. > > And now your crappy board is unreliable and has blown an xray tube. Fix it ! > > Now try proving it was their fault WITHOUT fixing it first. > > > > > > My best advice after having spent upwards of 20 years doing it wrong again and > > again. SELECT your clients. It's scary as hell, and every time one walks away from > > the table and says no thanks, you will think YOU were being weighed and found too > > light. If you are in doubt of them, scare them. Let them show you the money. > > If they don't want to pay for doing it right, YOU will end up doing it. After all, they > > purchased a solution, did they not ?? How many here has worked for free for 4 > > months in a row and seen the bank account go to -50 grand ? > > > > Another good scare if you suspect disorganizedness: Ask them to compile a Final > > Assembly Test (FAT) which goes like > > ... > > 14) Press the green button. Assert the system shows the go menu. > > 15) Press go. Assert the system starts up. > > ... > > Let them have time to do it. If they are too disorganized for that, they go hire > > somebody who is still learning and who still uses their own credit rating to finish > > projects.. IF your system can do all the steps in the FAT, it works and you get paid. If > > the FAT has to be changed, the budget changes too. > > Meanwhile you sit down and make a list of ASSUMPTIONS - what information, > > ressources and tools that have to be present and how fast. Now you can talk price. > > And you can go higher than you think. Because now you are a pro. And that costs. > > > > If the project is "real research" there is always a possibility of breaking the budget in > > a bad way for both parties. In this case, build in "Go Options" along the way. At > > certain milestones, best at completion of Work Packages (defined by FATs) both > > parties have a Go-Option. To continue or document and leave it where it is. > > This prevents real back-breakers where one of the parties are forced to fulfill a > > contract that is really not worth it. > > > > Finally: A great team takes a lot of luck to find. You have to kiss lots of frogs first. > > If you make a team with inhouse people, make sure they ARE a team at all. > > The client is most likely interested in getting the IP purchased secured in the > > company, so they are not held hostage later by the consultant. > > So build in teaching of the inhouse people. Sometimes you will find marvellous > > friends and learn yourself. If it does not work, speak up to the teamleader. If it does > > work, praise. Select your tools, processors, platforms etc. WITH the company to suit > > their needs. Teach while learning. Spend time with them. > > That's also what gets you your next project. > > Open Source Consultancy is very rewarding for all involved parties, when done right. > > > > And bordered by the two lines of the FAT and the ASSUMPTIONS everybody knows > > what the goal is. > > > > Kent > > who dunnit wrong lots > > > > > >>On Wed, 24 Nov 2004 15:52:01 -0800, Jonathan Kirwan wrote: > >> > >>> > >>> On Wed, 24 Nov 2004 16:41:42 -0600, Matt wrote: > >>> > >>> >Instead, I would design a system that has user downloadable message > >>> >tables as part of the application. That way the end user/client can > >>> >change messages to their heart's content and never mess with your > >>> >compiled application. You could even write a neat PC front- end that > >>> >makes their job easy and stores different sets of messages on the PC. > >>> >Much safer and a whole lot easier to support. > >>> > >>> Will they pay for the effort for all these extras? > >> > >>Will they pay you when they screw up the process and ask you to fix it? > >>Will you have time to drop whatever you're doing in the future to fix > >>their screwup (even if they DO pay you)? You know they'll want it done > >>pronto since it most certainly "will be holding us up from shipping > >>units!" I wonder how many consultants have heard this one before? :-) > >> > >>I guess this goes to what your business philosophy is and how you look > >>at solving potential future problems before they happen. Cutting loose > >>a client with an IDE/Compiler and expecting them to be able to > >>successfully recompile with new messages is doomed to failure, in my > >>experience. If they can handle that task successfully, then they most > >>likely can handle writing the code themselves in the first place. I'd > >>prefer to make sure there's not much chance of them screwing up by > >>design. To me that's just good engineering and part of solving the > >>problem. > >> > >> > >>> Remember, the point was about a "small firm needed only for one > >>> product line some programming control with a small alphanumeric > >>> display..." To get a simple display project, are they going to want > >>> all the extra software, serial port interface, command protocols, and > >>> all the extra testing to verify it, and the cost along many > >>> dimensions, just to get a display up and running? > >> > >>Frankly, I don't see it as that huge an addition to the project as long > >>as it's planned for up-front. I'd actually rather spend the time up- > >>front engineering an elegant solution -- even if I have to contribute > >>some of the cost -- than fixing a problem that's almost sure to come up > >>later at a most inconvenient (for me) time. That's just been my > >>experience over the years. > >> > >>I also don't see it having to be all that complicated an addition to > >>the basic project. I have at least half the software in my "toolkit" to > >>add these capabilities to the project already. It certainly wouldn't be > >>any harder or more time consuming than having to provide the client > >>with a complete FET/IDE setup, installing and testing it for them, > >>documenting the process and teaching them how to do it. And in the long > >>term it will still be riskier than having a dedicated method that was > >>designed to store custom messages. Maybe this is one of those things > >>you and I would disagree philosophically on, but I see something like > >>this as an essential part of the project that probably wasn't > >>considered up-front rather than an "add-on" frill. > >> > >>I believe most clients (especially non-technical ones) tend to > >>underestimate project complexity. Show a salesman or manager the tiny > >>little battery powered widget you spent the last several hundred hours > >>designing and he'll yawn... "Is THAT all there is to it? What took you > >>so long!?" To quote a friend of mine... "The roadside is littered with > >>the bones of consultants who took on projects that were 'simple'". > >> > >>Another aspect of this situation is that if they really are a small > >>firm and "can't afford to do the job right the first time" then they > >>are the kind of client that throws up a huge red flag for me. They're > >>likely to be slow payers, question every part of every charge you bill > >>them for, make several major changes to the project after it is well > >>under way and expect you to accommodate them at no charge and in > >>general try to get everything for free they can. At that point I > >>question whether I really want them as clients or not. Again, that's > >>been my experience over the years. > >> > >> > >>> I can tell you what would happen in a meeting in my small business place if I > >>> took a "display project" and started suggesting these kinds of additions to it, > >>> without a clearly demonstrable value to the immediate purpose at hand. > >> > >>But you see -- it's MORE than a simple display project! It's really a > >>simple display with a user programmable/customizable message base. The > >>client defined it as a "simple" project, but it's really not as simple > >>as they think or present it to be. > >> > >>I dunno, maybe I'm just more of a salesman than you are but I'd > >>certainly try to sell them on the positive aspects of going this route. > >>In fact, I wouldn't even bring up the option of them diddling with the > >>compiler themselves mostly because I think it's a bad idea. I think > >>there's a largely demonstrable benefit to the client and that's self > >>reliance and reliability of the process. They don't want to have to > >>come back to me later and pay me more money because the process just > >>works. > >> > >>If it came down to it and I really wanted their business, I'd recommend > >>the route I suggested earlier. If they refused, then I'd make perfectly > >>clear that if things got screwed up I'd have to charge them my normal > >>rate for any additional work I'd do and that I might not be available > >>right when they needed me. I wouldn't feel comfortable giving a > >>warranty or supporting software I'm not in control of. > >> > >>It's interesting that most of my clients in the past that went the > >>"cheap and dirty" route have almost always have come back and asked me > >>to do it right after the fact. From that point on they usually trust me > >>and don't question my motives on new projects. Most of my clients bring > >>repeat business to me and I get very good word-of-mouth > >>recommendations, I think in part because I'm a straight shooter and > >>tell it like I see it. At least that's what many of them have told me. > >>I'd like to think I give them the best value for their money I can and > >>that's my goal. Sometimes spending more up-front is a much better > >>investment. Sometimes the clients don't like what I have to say but > >>they generally trust me because I'm usually right. Hmmm... I didn't > >>mean for that to sound arrogant, I meant I normally won't stake out a > >>position unless I have a high confidence level in it. ;-) > >> > >>OK then, enough from me. I do find this area of the consulting business > >>very interesting. Dealing with clients is kind of a mixture of art and > >>science. I'm always interested in how others see things and how they > >>handle all the little challenges that inevitably come up. > >> > >>Matt Pobursky > >>Maximum Performance Systems > >> > >> > >> > >> > >>. > >> > >> > >>Yahoo! Groups Links > >> > >> > >> > >> > >> > >> > >> > > > > > > > > > > > > > > . > > > > > > Yahoo! Groups Links > > > > > > > > > > > > > > > >