It's looking very possible that I might be able to use Lisp on my new
web project.
We are importing data into mysql and generating pdf reports including
graphs. It's not a high-traffic site, so the guts will be an ajax web
app that sets up the queries to produce the reports.
I started with php, and can continue that way if I have to. But I
finally got Lisp working with CLSQL, and would most definitely prefer
that route. Since the libraries I need are pretty simple (just xml,
ajax, pdf) php doesn't offer much. Except maintainability by someone
other than me.
The big question here is how to bid on a Lisp project. I have no idea
how to tell how many hours it will take and how much to charge.
Actually, I could gestimate the hours, but I'm not sure how accurate it
would be, and how much I should charge per hour.
Any thoughts?
"Jonathon McKitrick" <···········@bigfoot.com> writes:
> It's looking very possible that I might be able to use Lisp on my new
> web project.
>
> We are importing data into mysql and generating pdf reports including
> graphs. It's not a high-traffic site, so the guts will be an ajax web
> app that sets up the queries to produce the reports.
>
> I started with php, and can continue that way if I have to. But I
> finally got Lisp working with CLSQL, and would most definitely prefer
> that route. Since the libraries I need are pretty simple (just xml,
> ajax, pdf) php doesn't offer much. Except maintainability by someone
> other than me.
>
> The big question here is how to bid on a Lisp project. I have no idea
> how to tell how many hours it will take and how much to charge.
> Actually, I could gestimate the hours, but I'm not sure how accurate it
> would be, and how much I should charge per hour.
>
> Any thoughts?
Bid the same as any other project, and cash the profit! :-)
--
__Pascal Bourguignon__ http://www.informatimago.com/
"Logiciels libres : nourris au code source sans farine animale."
Pascal Bourguignon wrote:
> Bid the same as any other project, and cash the profit! :-)
Okay, then, let me clarify:
This is my first-ever freelance project. I've never bid on *any* kind
of a software project before. The closest I've gotten is my old boss
and I meeting for 2 hours in the conference room, drawing all over the
dry erase board, and ending with 'so how long before we can have
something working?'
Do I just do the same thing, multiply by my desired hourly rate, and
submit that figure? Could it really be *that* easy? ;-)
From: Peder O. Klingenberg
Subject: Re: How to bid on Lisp project (again, and for real this time)
Date:
Message-ID: <ks4q4dr200.fsf@beto.netfonds.no>
"Jonathon McKitrick" <···········@bigfoot.com> writes:
> Do I just do the same thing, multiply by my desired hourly rate, and
> submit that figure? Could it really be *that* easy? ;-)
You need to multiply by pi^n to account for changing requirements,
delays and unforseen problems. N depends on how well you know the
client and how confident you are in your time estimate. Then you need
to multilpby by a kiss-up factor < 1 depending on how badly you want
to win the bid.
Getting the values of N and the kiss-up factor right is what separates
good salespeople from bad.
...Peder...
--
I wish a new life awaited _me_ in some off-world colony.
Peder O. Klingenberg wrote:
> "Jonathon McKitrick" <···········@bigfoot.com> writes:
>
> > Do I just do the same thing, multiply by my desired hourly rate, and
> > submit that figure? Could it really be *that* easy? ;-)
>
> You need to multiply by pi^n to account for changing requirements,
> delays and unforseen problems. N depends on how well you know the
> client and how confident you are in your time estimate. Then you need
> to multilpby by a kiss-up factor < 1 depending on how badly you want
> to win the bid.
The good news is the project is broken up into smaller deliverables
rather than a huge finished product that would take months to complete
and would introduce many more unpredictabilities. Also, the kiss-up
factor = 1, since I already have the job. I'm just pricing the next
stage.
> Getting the values of N and the kiss-up factor right is what separates
> good salespeople from bad.
What are valid ranges for N?
From: Peder O. Klingenberg
Subject: Re: How to bid on Lisp project (again, and for real this time)
Date:
Message-ID: <ksr77hpkwi.fsf@beto.netfonds.no>
"Jonathon McKitrick" <···········@bigfoot.com> writes:
> What are valid ranges for N?
I would use at least >= 1, but I'm not a good salesperson :)
...Peder...
--
Sl�v uten dop.
"Jonathon McKitrick" <···········@bigfoot.com> writes:
> Peder O. Klingenberg wrote:
>> "Jonathon McKitrick" <···········@bigfoot.com> writes:
>>
>> > Do I just do the same thing, multiply by my desired hourly rate, and
>> > submit that figure? Could it really be *that* easy? ;-)
>>
>> You need to multiply by pi^n to account for changing requirements,
>> delays and unforseen problems. N depends on how well you know the
>> client and how confident you are in your time estimate. Then you need
>> to multilpby by a kiss-up factor < 1 depending on how badly you want
>> to win the bid.
>
> The good news is the project is broken up into smaller deliverables
> rather than a huge finished product that would take months to complete
> and would introduce many more unpredictabilities. Also, the kiss-up
> factor = 1, since I already have the job. I'm just pricing the next
> stage.
>
>> Getting the values of N and the kiss-up factor right is what separates
>> good salespeople from bad.
>
> What are valid ranges for N?
If you will be programming in object-oriented style, you could apply
this formula which was published in JOOP between 1990 and 1996, IIRC.
#+emacs
(defun ooestimate (project-name
key-class-count ;; 1+
reusable-domain-objects ;; 0+
user-interface-complexity ;; 1,2,3
person-count ;; 1+
experience-ratio ;; [0.0 .. 1.0]
)
(interactive "sProject name:
nKey Class Count:
nReusable Domain Objects:
nUser Interface Complexity (1 2 3):
nPerson Count:
nExperience Ratio [0.0,1.0]: ")
(let* ((person-day-per-class (+ 15 (* 2.5 (- 1.0 experience-ratio))))
(total-class-count (* key-class-count
(+ 1.0 user-interface-complexity)))
(total-person-days (* total-class-count person-day-per-class))
(total-months (/ total-person-days 20.0 person-count)))
(insert
(concatenate 'string
(format "OOEstimate for Project %s:\n\n" project-name)
(format " key class count: %6d\n" key-class-count)
(format " reusable domain objects: %6d\n" reusable-domain-objects)
(format " user interface complexity: %s\n"
(cdr (assoc user-interface-complexity
'((1 . "simple") (2 . "medium") (3 . "complex")))))
(format " person count: %6d\n" person-count)
(format " experience ratio: %6.1f\n" experience-ratio)
(format "\n")
(format " total class count: %6d\n" total-class-count)
(format " person day per class %6.1f\n" person-day-per-class)
(format " total person days: %6d\n" total-person-days)
(format " total months: %6d\n" total-months) ))))
But I must say that when I tried it on a client he didn't like the prediction...
--
__Pascal Bourguignon__ http://www.informatimago.com/
Kitty like plastic.
Confuses for litter box.
Don't leave tarp around.