Ir al contenido principal

Ralsina.Me — El sitio web de Roberto Alsina

¿Tenemos tan poca idea de lo que cuesta el software?

Real­men­te, Ma­ra­ve es co­mo mu­cho un mes de pro­gra­mar par­t-­ti­me. Có­mo pue­de eso hu­ma­na­men­te ser U$S71355 o "1 año per­so­na"?

¿Es­ta ba­su­ra es lo me­jor que te­ne­mos pa­ra es­ti­mar cos­to­s? Si es así, la pr­óxi­ma vez que vean al­go co­mo "El pro­gra­ma X lle­va­ría Y años y cos­ta­ría Z dó­la­res", re­cór­ten­lo por un fac­tor de 10 o má­s.

És­to es lo que cos­tó de­sa­rro­llar Ma­ra­ve:

  • Na­­da

Bue­no, és­to es lo que hu­bie­ra cos­ta­do si lo co­bra­ra:

Es­toy su­po­nien­do unas 100 ho­ras de mi tiem­po. A mi pre­cio de "o­ja­lá me lo pa­guen", U$S 40/ho­ra, son U$S 4000, que quie­re de­cir que Oh­loh le pi­fia por un 1600%.

Por otro la­do, por tan­to tra­ba­jo free­lan­ce no te voy a co­brar pre­cio com­ple­to, lo más se­gu­ro es que te co­bra al­go co­mo U$S 20/ho­ra lo que quie­re de­cir que Oh­loh es­tá un 3000% arri­ba.

En con­clu­sió­n: si te gus­ta mi có­di­go (y lo po­dés ver por vos mis­mo), con­tra­ta­me, soy o in­creí­ble­men­te ba­ra­to o in­creí­ble­men­te rá­pi­do.

fisadev / 2010-02-22 04:33:

Debe ser que te está tomando como tuyo código que no es tuyo, pero que está en el repositorio (liberías de terceros).
OHLOH debería tener alguna manera de indicar esas cosas para no incluirlas en el cálculo, jeje.

Roberto Alsina / 2010-02-22 10:07:

No, lo que está en el repositorio es todo mío. Claro, hay 866 líneas de python que se autogeneran, pero eso es el 15% más o menos.
No creo que este contando los SVG como XML! O sí?

redbo / 2010-02-22 06:06:

No, we have much more complicated ways of being wrong now.

Roger / 2010-02-22 06:48:

Note that it doesn't ask about country. If I recall you are not US based so costs are considerably lower. You also need to take into account time for support, project administration etc. Also remember you did this as open source - if done as a non-open source project there would be additional licensing costs. The numbers are based on average programmers. (Half of all programmers are below average!) You have demonstrated not being average by actually shipping a complete working version of the project. You also were smart enough to pick Python - consider where you would be if doing this in an "enterprise" Java fashion!

A better way of looking at the costs is not what would it cost if you had nothing else to do, but rather if you were working on something else, how much would someone have to pay you to stop working on the other thing and do this instead.

Taking all these factors into account, the numbers are not unreasonable. They just have a large margin of error, especially dependent on who does the work!

Roberto Alsina / 2010-02-22 10:10:

"A better way of looking at the costs is not what would it cost if you had nothing else to do, but rather if you were working on something else, how much would someone have to pay you to stop working on the other thing and do this instead."

That would be the second number I posted. That's what I actually would charge :-)

toyg / 2010-02-22 11:11:

Indeed, it's very hard to give a "worldwide estimate" -- development in London or NYC is one thing, but as you move away from big cities and "rich nations", costs fall dramatically.
Plus, depending on customers, you might have to cover things like insurance, meeting expenses etc etc etc, which obviously you didn't need here -- or did you fly out to random Silicon Valley locations to meet with... yourself? :)

You should be happy, all considered this means you *are* selling yourself cheap and could probably earn significantly more by targeting the right market. I think this is how Ohloh can be useful, most developers (including me) tend to significantly undersell themselves :)

Roberto Alsina / 2010-02-22 11:17:

That doesn't quite explain how I wrote a year's worth of code between Jan 28 (revision 1) and Feb 22 (r382) , though ;-)

Roberto Alsina / 2010-02-22 11:58:

Also, those U$S 55K a year amount to about U$S 27/hour or so, so it's not like that's the problem. The problem is ohloh seems to think a programmer can do about 4700 SLOC a year, which means less than 20 SLOC a day...

Roger / 2010-02-22 17:30:

Have you read The Mythical Man Month? They were seeing 10 lines of debugged tested finally shipping lines of code per day. In many other studies this has been the general ballpark, independent of programming language. You also have no communication overhead as your team is one person (again see TMMM) and you prune features to what you want to implement and you don't do exhaustive testing (which consumes time but doesn't generate any code).

The most productive developers are 100 times more productive than the least. Yes, you are above average.

Virgil Dupras / 2010-02-22 07:14:

... Or you have too many SLOC.
... Or Ohloh's metric count test unit lines as "real" lines, but count costs based on non-unit-tested software.
... Or you might have some big data file in your project that Ohloh counts as code.

Roberto Alsina / 2010-02-22 10:08:

There's no unit tests there.
My code is reasonably compact (I think ;-)

Even counting every SVG icon and autogenerated file, that's roughly 2000 SLOC, so at worst a 30% overcount.

bdgraue / 2010-02-22 07:45:

don't forgett the time, people spend testing the application ;)

Roberto Alsina / 2010-02-22 10:09:

jajaja good one yes, that's worth money but Ohloh can't see it :-)

Thomas / 2010-02-22 21:32:

I think you are being a bit harsh, first of all your per-hour rate can't be compared to what a company would pay for a developer-seat. Thats already 10 times as much as your expected salary.

Next is debugging. I don't know how many users you have and how many bugs they reported, but maintaining code is factored in. So come back in a year, add no features and count the total time spent of writing *and* debugging / maintaining the code.

Third; you use Qt. Need I explain this one?

Roberto Alsina / 2010-02-22 21:44:

Actually, at $55K a year, that's about $30/hour (counting 45 weeks of 40 hours, so it's actually lower), so it's quite comparable.

Honestly, I can't even imagine a full year of effort spent debugging and bug fixing a program without adding features, that would mean the codebase is completely *rotten* :-D

Fabián / 2010-02-24 02:50:

Aha! El problema que yo veo es cómo cobrar :)

Y creo que puede estar un poco sobre-valuado (aunque no sé cual es la métrica aplicada), pero no tanto si se tiene en cuenta:

* Tu productividad como programador (no sé realmente cuántos años llevas programando en Python pero creo que tu Seniority sería algo así como "Grandpa").
* La productividad que provee Python.
* La productividad que provee QT.
* Reutilizaste código de otro proyecto.
* La productividad derivada de reutilización de código y bibliotecas que permite el software libre (de otro modo me parece que aún estarías programando el sistema de plugins).
* Otros factores que se mencionaron en algunos comentarios.

¿Cuanto tiempo le llevaría a un programador C con 2 o 3 años de experiencia (contando tiempos de compilación, debbuging, etc +=2)?

¿Cuánto tiempo te hubiera llevado hacerlo hace 10 años (lo que lleva a considerar tu experiencia y la productividad de las herramientas actuales que usas)?

Saludos cordiales.

Roberto Alsina / 2010-02-25 00:27:

Respuesta que debería tener un ";-)" después de cada punto:

* Sí, soy viejo. Se supone que eso me hace lento
* La productividad de Python y Qt es algo a favor. Deberían pagar más por hora por usar herramientas productivas que improductivas, dado que producen más!
* Sólo utilicé bibliotecas LGPL (excepto PyQt, si quisiera podría haber usado PySide), que cualquier programador propietario puede usar...
* El sistema de plugins son ... 92 líneas.
* Cuánto hubiera tardado hace 10 años? la mitad!

Siempre fuí rápido. Antes era más rápido ;-)

Fabian Flores Vadell / 2010-02-25 01:16:

* Sí, soy viejo. Se supone que eso me hace lento

Hnmm, me parece que ese es el verso de los gerentes de IT para pagar magros salarios o justificar la alta rotación de personal.

* Sólo utilicé bibliotecas LGPL (excepto PyQt, si quisiera podría haber usado PySide), que cualquier programador propietario puede usar...


* Cuánto hubiera tardado hace 10 años? la mitad!

Eso quiere decir que hace 10 años tenías la experiencia de un abuelo! Así que, o empezaste a programar a los 10 o sos más viejo de lo que imaginé ;-)

A propósito, qué libros o manuales recomendarías a programadores o estudiantes que quieren aprender Python/PyQT?

Roberto Alsina / 2010-02-25 01:43:

Voy para 39 así que hace 10 años tenía 28.

Para aprender PyQt? Probablemente "Rapid GUI Programming with Python and Qt" de Summerfield.

Contents © 2000-2020 Roberto Alsina