From: Armen Stein on
On 13 Feb 2010 22:41:40 GMT, "David W. Fenton"
<XXXusenet(a)dfenton.com.invalid> wrote:

>Good article, but I still think that there's a real issue with
>estimating.

When I do presentations on managing software projects, I like to say
that writing software is easy. Estimating how long it will take is
hard.

>I have always tried to build my projects with milestones such that
>there's the initial estimate, a re-estimate at a designated midpoint
>and then a final assessment at the end of the project. My main
>problem is that the midpoint often gets schedule too early in the
>project, and a 2nd "midpoint" needs to be added.

We estimate after we get a general idea of the requirements, which
might be after a free consultation or a 30-hour Phase 0 - it depends
on the scope of the project. This is a "top down" estimate with hours
for just the various stages (design, construction, conversion,
testing, etc.)

Then we estimate the whole thing again after we've designed the
database and sketched all the screens, reports, web pages, functions,
etc. This is the "roll up" estimate. It usually occurs about 1/3 of
the way through the budget (for Access projects). This is also where
we add a contingency, because it's much more likely that we've missed
something than counted it twice. :)

>My point is that it's completely reasonable for the client to want
>hard numbers -- it's the job of a fiscally responsible manager to
>control costs. So, I give my first estimate, and re-estimate as many
>times as necessary, but I still keep in mind that I've got a range
>for a realistic final cost that has been set up by the original
>estimate (you can't estimate $2,000 and then say oh, by the way,
>it's going to be $20,000).

True. Well, not many times and keep your business going, anyway.
That's why a reasonable accurate initial estimate is so important.

>It's also a constant struggle in that the managers are seldom
>involved in the actual development process so don't understand the
>evolution of the project. It's always good to have somebody on the
>client end who is deeply involved in the development process who can
>explain the issues to the finance department (or whoever has control
>of the budget).

Yes, this is our point person, or project "champion". They have true
ownership of the project design from the client's perspective. If we
don't have a champion, or if they leave part way through, the project
will be much more difficult to deliver.

>I'm lucky on my current active projects to be dealing with
>organizations of fewer than 5 people, so I have very little of this
>problem. I really prefer these type of clients to larger
>organizations because of the direct communication and lack of
>bureaucracy. They also pay quicker!

Definitely! Smaller clients & projects are really nice. But the
bigger ones keep more people on my team busier for a longer period of
time, so they are welcome as part of the mix.

>But, yes, it's a good article. I've bookmarked it and may use it
>with future potential clients.

Thanks David, I appreciate your comments.

Armen Stein
Microsoft Access MVP
www.JStreetTech.com

From: David W. Fenton on
Armen Stein <ArmenStein(a)removethisgmail.com> wrote in
news:p3nhn5hbavj404ulb2uj1fcott3um7tjag(a)4ax.com:

> On 13 Feb 2010 22:41:40 GMT, "David W. Fenton"
><XXXusenet(a)dfenton.com.invalid> wrote:
>
>>Good article, but I still think that there's a real issue with
>>estimating.
>
> When I do presentations on managing software projects, I like to
> say that writing software is easy. Estimating how long it will
> take is hard.

I have always said that the only time I can give an estimate that's
within 10% of accurate is 6 months after the project is
complete...and sometimes I'm not even sure about that!

>>I have always tried to build my projects with milestones such that
>>there's the initial estimate, a re-estimate at a designated
>>midpoint and then a final assessment at the end of the project. My
>>main problem is that the midpoint often gets schedule too early in
>>the project, and a 2nd "midpoint" needs to be added.
>
> We estimate after we get a general idea of the requirements, which
> might be after a free consultation or a 30-hour Phase 0 - it
> depends on the scope of the project. This is a "top down"
> estimate with hours for just the various stages (design,
> construction, conversion, testing, etc.)
>
> Then we estimate the whole thing again after we've designed the
> database and sketched all the screens, reports, web pages,
> functions, etc.

I haven't had a bottom-up app design in years. I'm usually brought
in to take over an old Access app that needs to be enhanced, fixed,
brought up to date and expanded. My newest project has data back to
1993, though I think it only started in Access with A97. My previous
big project (which lasted from May through Sept.) was an app that
was started in Access 2 in 1996, and upgraded along the way but
NEVER SIGNIFICANTLY ENHANCED over that whole time. There was a huge
backlog of needs, and the client had gotten estimates of $25k-30K to
rebuild the whole thing in some different platform (nobody wanted to
touch the Access app). I brought the project in at under $6K, and
exceeded the original conception of the project by the clients about
about 1/3 functionality and features.

It wasn't all that hard, either.

But it was one of those great projects where I was working with
really smart people who understood a lot already and had clear ideas
of what they needed and wanted, and were also allowed by their boss
to take the time necessary to work with me to get it right.

It was really a great project, and I look forward to returning to it
for a third round of smaller enhancements in the next few months (we
already did a second round in December).

So, these things are much harder to estimate, as you have to figure
out how to fix what's already there without breaking daily
functionality. I often tell clients that it's easier to build a new
house than to remodel an old one, but that doesn't mean we tear down
all the old houses and build new ones.

> This is the "roll up" estimate. It usually occurs about 1/3 of
> the way through the budget (for Access projects). This is also
> where we add a contingency, because it's much more likely that
> we've missed something than counted it twice. :)

I adjust as I go, breaking the project down into 10-20 blocks so
there's almost never any chance of any one part getting too far out
of hand. That is, there's an overall first estimate, a pilot project
to implement some new desired feature set, and then the experience
with that is used to reality-check the original high-level estimate.
It's also at that point that I have delved into the guts of the
existing app and have a pretty good idea of how rotten the plumbing
is! From then on, I find it pretty easy to accurately estimate each
of the 10-20 hour blocks, and it's only when I'm implementing
something new that I miss the mark (that happened only once in the
summer project, and I caught it early and the client decided to go
ahead and invest the extra time, because it was a high-value
feature).

It really does require incredible cooperation with the users/testers
for all of that to work, though. You know, the kind of people who
will laugh when I tell them "Attached find a zipped up database
update with an entirely new set of bugs for you to enjoy..." instead
of getting mad at me!

>>My point is that it's completely reasonable for the client to want
>>hard numbers -- it's the job of a fiscally responsible manager to
>>control costs. So, I give my first estimate, and re-estimate as
>>many times as necessary, but I still keep in mind that I've got a
>>range for a realistic final cost that has been set up by the
>>original estimate (you can't estimate $2,000 and then say oh, by
>>the way, it's going to be $20,000).
>
> True. Well, not many times and keep your business going, anyway.
> That's why a reasonable accurate initial estimate is so important.

I stress that early on, I don't have enough information to be very
accurate, so the error bars are much larger. As I learn more about
their apps and about the specifics of what they need and how their
organization works, I'm able to narrow those error bars. And I've
found the easiest way to keep things accurate is to break things
down into the smallest chunks possible. This often has the result
that you're giving a menu of modular choices that also help the
client budget (or feel like they have control over the budget), and
I've never had a client who didn't respond well to this once they
got into the swing of it.

>>It's also a constant struggle in that the managers are seldom
>>involved in the actual development process so don't understand the
>>evolution of the project. It's always good to have somebody on the
>>client end who is deeply involved in the development process who
>>can explain the issues to the finance department (or whoever has
>>control of the budget).
>
> Yes, this is our point person, or project "champion". They have
> true ownership of the project design from the client's
> perspective. If we don't have a champion, or if they leave part
> way through, the project will be much more difficult to deliver.

I had a terrible situation a few years about where a $15K project
was 2/3s paid for, and 90% complete when the project lead became
ill, went into the hospital, and never returned to work, retiring
instead. The project died with his departure, and I never got the
last payment (though my price structure was such on that project
that I didn't lose money).

I've also had a fairly large project where I'd hired outside help
and paid them out of my own pocket before getting paid, and then the
project gets killed after a management change. That was a bad time,
but at least I was making enough money that it didn't kill me. It
would definitely be a bad problem these days as I don't have that
kind of project load any longer (in the last 10 years there's been
huge downward pressure in the NYC area on hourly rates for what I
do, and I've barely managed to stay even in nominal $$, which means
I'm making less).

>>I'm lucky on my current active projects to be dealing with
>>organizations of fewer than 5 people, so I have very little of
>>this problem. I really prefer these type of clients to larger
>>organizations because of the direct communication and lack of
>>bureaucracy. They also pay quicker!
>
> Definitely! Smaller clients & projects are really nice. But the
> bigger ones keep more people on my team busier for a longer period
> of time, so they are welcome as part of the mix.

I'm a lone wolf and prefer it that way. Every time I've found
someone really stellar to work with, they've ended up getting a
full-time job and then couldn't work with me any longer! So I've
decided to only pursue projects that I can do on my own. This has
worked out pretty well, as it also means I've got nobody else
depending on me and no overhead. I would not have made it through
the last five years had I not decided to operate in that way.

--
David W. Fenton http://www.dfenton.com/
usenet at dfenton dot com http://www.dfenton.com/DFA/
From: a a r o n . k e m p f on
I think that it is immoral to charge for any work using Jet.

it's a worthless database format.

move to SQL Server / Access Data Projects if you really want to give
the best solution to your clients




On Feb 12, 4:29 am, Dan Dan the OTTR Man <maxwell....(a)gmail.com>
wrote:
> I may have an opportunity to do some freelance work on anAccessdb.
> Has anyone here done this before?  I'm wondering what I should charge
> for the service.  Do I charge by the hour or by theproject?  Any
> advice is appreciated.

From: Tony Toews [MVP] on
"a a r o n . k e m p f @ g m a i l . c o m" <aaron.kempf(a)gmail.com>
wrote:

>I think that it is immoral to charge for any work using Jet.
>
>it's a worthless database format.
>
>move to SQL Server / Access Data Projects if you really want to give
>the best solution to your clients

ADPs have their place as a solution. As does Jet.

Tony
--
Tony Toews, Microsoft Access MVP
Tony's Main MS Access pages - http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
For a convenient utility to keep your users FEs and other files
updated see http://www.autofeupdater.com/
Granite Fleet Manager http://www.granitefleet.com/
From: a a r o n . k e m p f on
Jet has no place anywhere.

Jet doesn't support _RAM_ it doesn't support _X64_ it doesn't support
multi-core processors.

-Aaron



On Feb 23, 12:25 pm, "Tony Toews [MVP]" <tto...(a)telusplanet.net>
wrote:
> "a a r o n . k e m p f @ g m a i l . c o m" <aaron.ke...(a)gmail.com>
> wrote:
>
> >I think that it is immoral to charge for any work using Jet.
>
> >it's a worthless database format.
>
> >move to SQL Server / Access Data Projects if you really want to give
> >the best solution to your clients
>
> ADPs have their place as a solution.  As does Jet.
>
> Tony
> --
> Tony Toews, Microsoft Access MVP
> Tony's Main MS Access pages -http://www.granite.ab.ca/accsmstr.htm
> Tony's Microsoft Access Blog -http://msmvps.com/blogs/access/
> For a convenient utility to keep your users FEs and other files
>   updated seehttp://www.autofeupdater.com/
> Granite Fleet Managerhttp://www.granitefleet.com/