La Economía del Software
Por bmc - The Observation Deck
El software es como ninguna otra cosa antes en la historia del esfuerzo humano: [1] a diferencia de todo lo que hemos construido, el software no cuesta nada fabricar, y nunca se desgasta. Sin embargo, estas propiedades mágicas son discutiblemente eclipsadas por la fea verdad de que el software sigue siendo increíblemente costoso de construir. Esto da lugar a algunas propiedades económicas extrañas: los costes fijos del software son altos (muy altos - demasiado altos), pero sus costes variables son cero. Tan extrañas como son, estas propiedades económicas no son realmente únicas al software; También son verdaderas (en grado variable) de los productos que tradicionalmente hemos denominado "propiedad intelectual". Pero a diferencia de libros o pinturas o películas, el software es predominantemente un bien industrial - casi siempre se utiliza como un componente en un sistema más grande, de ingeniería. Al tomar estos juntos - el papel del software como un bien industrial, junto con sus altos costos fijos y cero los costos variables - se obtiene todo tipo de extraños fenómenos económicos. Por ejemplo, ¿no le parece extraño que su sistema operativo sea esencialmente gratuito, pero su base de datos todavía le cuesta cuarenta libras por CPU? ¿Es una base de datos infinitamente más difícil de escribir que un sistema operativo? (Respuesta: no.) Si no, ¿por qué la enorme discrepancia de precios?
Quiero en última instancia abordar la paradoja de la discrepancia de precios de software, pero primero una revisión rápida de las leyes de la oferta y la demanda en un mercado normal: a precios altos, los proveedores tienden a querer ofrecer más, mientras que los consumidores tienden a demandar menos; A precios bajos, los consumidores tienden a demandar más, mientras que los proveedores tienden a querer suministrar menos. Podemos mostrar precio versus cantidad demandada / ofrecida con las curvas clásicas de oferta y demanda:
El punto de intersección de las curvas es el precio de equilibrio y las leyes de oferta y demanda tienden a mantener el mercado en equilibrio: a medida que los precios suben ligeramente fuera de equilibrio, los proveedores suministrarán un poco más, los consumidores demandarán un poco menos, los inventarios Subirá un poco, y los precios caerán de nuevo en equilibrio. Del mismo modo, si los precios bajan ligeramente, los consumidores exigirán un poco más, los inventarios se agotarán y los precios volverán al equilibrio.
El grado en que los proveedores y los consumidores pueden reaccionar a los precios -la pendiente de su curva respectiva- se conoce como elasticidad-precio. En un mercado inelástico de precios, los proveedores o consumidores no pueden reaccionar rápidamente a los precios. Por ejemplo, los cigarrillos tienen una alta demanda inelástica canónica: si los precios aumentan, pocos fumadores dejarán de fumar. (Dicho esto, la demanda de una determinada marca de cigarrillos es más o menos normal: si Marlboros de repente costó diez dólares por paquete, las importaciones rusas a bajo precio podrían comenzar a parecer mucho más atractivas).
Así que ese es el mercado de los cigarrillos, pero ¿qué pasa con el software? Comencemos por ver el lado de la oferta, porque es bastante simple: el costo variable cero significa que los proveedores pueden suministrar una cantidad arbitraria a un precio determinado. Es decir, esta es la curva de oferta del software:
La altura de la "curva" será dictada por varios factores: entorno competitivo, costos fijos, etc .; Hablaremos de cómo la altura de esta curva se fija (y se desplaza) en un bit.
¿Y qué hay del lado de la demanda? La demanda de software es normal en la medida en que los consumidores tienen la libertad de elegir componentes de software. El problema es que para toda la retórica acerca de que el software se convierta en una "mercancía", la mayoría del software todavía no es una mercancía: un producto de software rara vez es completamente intercambiable con otro. La falta de intercambiabilidad no es tanto un problema para un proyecto que todavía se está especificando (se puede diseñar en torno a las complejidades específicas de una pieza específica de software), pero es mucho un problema después de un proyecto ha desplegado: los sistemas desplegados Son abundantes con dependencias implícitas entre los diferentes componentes de software. Estas dependencias - y por lo tanto el costo de reemplazar un componente de software dado - tienden a aumentar con el tiempo. Es decir, su demanda se vuelve más y más inelástica de precios a medida que pasa el tiempo, hasta llegar a un punto de inelasticidad de precio completo. Tal vez este es el punto cuando usted tiene tantas capas en la parte superior de la decisión, que un cambio es económicamente imposible. O tal vez sea el momento en que el talento técnico que reestructurar su infraestructura en torno a un producto diferente ha pasado a hacer otra cosa - o tal vez ya no están con la empresa. Cualquiera que sea la razón, es el punto después de que el software se ha convertido tan cocido en su infraestructura, la decisión no puede ser revisado.
Así que en lugar de mirar las curvas de oferta y demanda de arriba, las curvas de oferta y demanda de software tienden a parecerse a esto:
Y, por supuesto, su proveedor de software amigable sabe que su demanda tiende a la inelasticidad - que es por qué tan frecuentemente aumentar la renta, mientras que ofrece tan poco a cambio. Siempre hemos sabido acerca de esta inelasticidad de la demanda, que acabamos de llamar algo más: vendedor encerrado [lock-in].
Si los proveedores de software tienen un poder de precios tan increíble, ¿por qué las empresas no terminan por cada extraer cada centavo del software? Porque la demanda de software no es completamente inelástica a los precios. Es sólo inelástica, siempre y cuando el precio es inferior al costo de cambio de software. En el espíritu de la cartelera de FYO en el 101, doblo este punto de conmutación el "punto de FYO" [Fuck You Oracle!]: es el punto en el cual usted se enoja tanto con su vendedor que usted reevalúa completamente su decisión del software - usted pone de vuelta a la mesa de diseño. Así que aquí está el cuadro completo:
¿Qué sucede en el punto FYO? En casos extremos, usted puede decidir reescribirlo usted mismo. O tal vez decida que vale la pena cambiar de proveedor (uno menos rapaz), o al menos asustar a su proveedor existente para que se acerque un poco a sus precios. O tal vez usted acelerará un nuevo proyecto para reemplazar el existente, usando todos los nuevos componentes - normalizando así su curva de demanda. Y cada vez más a menudo, usted decide que no está utilizando la mitad de las características de esta cosa de todos modos - y usted comienza a buscar una opción de código abierto "lo suficientemente bueno" para salir de este desorden feo de una vez por todas. (Más sobre esto más adelante.)
Ahora, su proveedor de software en realidad no quiere que llegar al punto FYO; Quieren mantenerte lo suficientemente lejos por debajo de él a sólo un suspiro (o gruñido) y que firmes el cheque. (Que la mayoría de ellos son bastante buenos, por cierto, pero por supuesto, ya sabes que de todos sus suspiros y gemidos.) Hay esencialmente dos maneras para una empresa de software para aumentar los ingresos en un producto de software establecido:
- Eliminar los negocios de los competidores
- Extraer más masa de los clientes existentes
Lamentablemente, hay otra opción, y la mayoría de las empresas de software optan por ella: extraer más dinero de sus clientes existentes. En términos del punto FYO, esto equivale a elevar el punto FYO de sus propios clientes. Es decir, los vendedores de software actúan como un monopolista natural: centrando sus esfuerzos no en la competencia, sino más bien en la elevación de las barreras de entrada. Tienen todo tipo de maneras insidiosas de hacer esto: formatos de datos propietarios, interdependencias complicadas, incompatibilidades deliberadas, etc. Personalmente, encuentro estos comportamientos abominables, y me he asombrado sobre cómo descaradamente algunos vendedores del software están sobre el mantenimiento de su derecho inalienable de atornillar Sus propios clientes. A saber: Ahora no he tenido uno pero dos vendedores del software me dicen que debo agregar una manera de inhabilitar DTrace para su app para evitar que sus propios clientes observen su software. Ni siquiera están preocupados por sus competidores - ¡están demasiado ocupados en atar a sus propios clientes! (Innecesario decir, sus peticiones para tal característica fueron, um, declinadas.)
Entonces, ¿cómo encaja el código abierto en esto? El código abierto es una consecuencia natural de la economía del software, tanto del lado de la demanda como del lado de la oferta. El lado de la demanda ha sido discutido ad nauseum (y con frecuencia, ad hominem): la demanda de código abierto proviene de clientes que están hartos de las tácticas desagradables de sus vendedores para elevar su punto FYO - y están más enfermos en general de la noción del vendedor atrapado [locked-in]. El lado de la demanda es generalmente responsable de que los clientes escriban su propio software y lo hagan libremente disponible, o participen en proyectos similares en la comunidad en general. Hasta la fecha, el lado de la demanda ha propulsado mucho software de código abierto, incluyendo servidores web (Apache) y lenguajes de scripting (Perl, Python). Con cierta excepción, el lado de la demanda consiste en gran parte de individuos que participan fuera de su interés más que su propio interés. Como resultado, por lo general no puede sostener a tiempo completo, los desarrolladores de software profesional.
Pero también hay un lado de la oferta para el código abierto: si el software no tiene un costo variable, los intentos de las empresas de software de bajar el punto FYO de sus competidores se manifiestan en el software libre. Y la forma más (si no la única) de hacer que el software sea convincentemente libre es hacer que el código fuente esté libremente disponible -para que sea de código abierto.[2] La tendencia hacia el código abierto es especialmente fuerte cuando las empresas no se benefician directamente del derecho -utilización del software, sino de algún bien complementario: soporte, servicios, otro software o incluso hardware. (En el caso específico de Solaris y Sun, en realidad es todo lo anterior.) ¿Y si los clientes nunca consumen alguno de estos productos? Bueno, el software no cuesta nada fabricar, así que no hay una pérdida - y hay a menudo una ganancia indirecta. Para tomar el ejemplo específico de Solaris: si ejecuta Solaris y nunca le da un níquel a Sun, está bien por nosotros; Ni siquiera nos costó un centavo para hacer su copia, y su uso aumentará el mercado de las aplicaciones y soluciones de Solaris, impulsando la adopción de la plataforma y, en última instancia, generando ingresos para Sun. Para poner esto en términos de venta al público, el software de código abierto tiene todas las propiedades de un líder de pérdida - menos la pérdida, por supuesto.
Mientras que el lado de la demanda ha impulsado mucho de código abierto hasta la fecha, el lado de la oferta es (en mi opinión) en última instancia una fuerza más poderosa en el largo plazo: el software creado por las fuerzas del lado de la oferta es generalmente desarrollado por personas que hacen Es a tiempo completo para una vida - hay naturalmente una mayor atención al detalle. Para un buen ejemplo de las fuerzas del lado de la oferta, vea los sistemas operativos en los que Linux, el sistema operativo de código abierto tradicionalmente dominante, ha disfrutado de grandes beneficios del lado de la oferta. Estos incluyen contribuciones de sistemas operativos como AIX (JFS, trabajo de escalabilidad), IRIX (XFS, herramientas de observabilidad y el whoopsie ocasional), DYNIX / ptx (bloqueos RCU) e incluso OS / 2 (DProbes). Y una contribución del lado de la oferta aún más grande se cierne: el sourcing abierto de Solaris. Esta será ciertamente la contribución más importante de la oferta hasta la fecha, y un reconocimiento de la economía tanto del mercado de los sistemas operativos como del mercado de software en general. Y a diferencia de mucha anterior fuente de fuente abierta de la actividad, la fuente abierta de Solaris no es de código abierto como capitulación - es de código abierto como contraataque.
Para volver a nuestra pregunta inicial: ¿por qué es el sistema operativo básicamente libre mientras que la base de datos le está costando cuarenta mil por CPU? La respuesta corta es que los cambios que han barrido a través del mercado de OS de empresa todavía están en curso en el mercado de bases de datos. Sí, ha habido esfuerzos tradicionales como MySQL y esfuerzos de investigación como PostgreSQL, pero ninguno de estos esfuerzos "lo suficientemente buenos" ha sido suficientemente bueno para competir con Informix, Oracle, DB / 2 o Sybase en el mercado empresarial. En los últimos años, sin embargo, hemos visto un movimiento serio en el lado de la oferta, con MaxDB de SAP e Ingres de CA convirtiéndose en código abierto. ¿Cualquiera de estos podrá comenzar a tomar negocios serios fuera de Oracle e IBM? Es decir, ¿serán suficientes para bajar el punto FYO tal que más clientes dicen "FY, O"? La economía del software nos dice que, a largo plazo, esto es probablemente el caso: o el lado de la demanda en última instancia, fuerza suficientes mejoras a las bases de datos de código abierto existentes, o el lado de la oferta obligará a la apertura de abastecimiento de uno de los Competidores viables. Y que el software no se desgasta y no cuesta nada fabricar nos asegura que las bases de datos de código abierto sobrevivirán para perseguir a sus competidores en el largo plazo. ¿Esto sucederá en cualquier momento pronto? Como Keynes famoso señaló, "a largo plazo, todos estamos muertos" - por lo que no contar con menos suspiros o gimiendo o cheque escrito en el futuro inmediato ...
Notas al final
[1] Por lo general, odio esta técnica retórica de decir que "[el sustantivo] es el [superlativo] [mismo nombre] [verbo] por la humanidad". Hace que suene como los chimpancés lo hicieron hace años, pero nosotros los seres humanos sólo recientemente han alcanzado. Lamento usar esta técnica, así que permítanme aclarar: con la notable excepción de gtik2_applet2, los chimpancés aún no han descubierto cómo escribir software.[2] Sólo para cortar los comentarios rabiosos sobre las definiciones: por "código abierto" sólo quiero decir que el código fuente es lo suficientemente amplia y públicamente disponible que los clientes no cuestionan que su derecho de uso es (y siempre será) libre . Esto puede o no significar aprobado por OSI, y puede o no significar GPL. Y, por supuesto, muchos clientes han descubierto que el código abierto por sí solo no soluciona el problema. Necesita a alguien que lo apoye - y la compañía que ofrece soporte comienza a buscar, actuar y oler mucho como una compañía de software tradicional y rapaz. (De hecho, el punto de FYO puede ser renombrado en última instancia el "punto de FYRH.") Usted todavía necesita estándares abiertos, APIs abiertos, idiomas portables y así sucesivamente ...