Desarrollo de software de código abierto
Es difícil llevar un proyecto de código abierto siguiendo un método de desarrollo de "software" más tradicional como el modelo en cascada, porque en estos métodos tradicionales no se permite volver atrás a una fase anterior. En el desarrollo de "software" de código abierto, los requisitos raramente se reúnen antes de empezar el proyecto, en vez de eso estos se basan versiones previas de productos de "software", como describe Robbins . Más allá de los requisitos, personal voluntario a menudo se ve atraído para ayudar a desarrollar el producto de "software" basado en las versiones anteriores del "software". Este efecto de red es esencial de acuerdo con Abrahamsson et al.:" si el prototipo reúne suficiente atención, gradualmente empezará a atraer a más y más desarrolladores" Abrahamsson et al también apunta que la comunidad es muy dura, tanto como en el mundo empresarial del "software" de código cerrado: "si encuentras cliente sobrevives, pero sin ellos mueres".
Software comercial
Si bien la creación de software por programación es un proceso que requiere mucho tiempo y trabajo, comparable a la creación de bienes físicos, la reproducción, duplicación y uso compartido de software como bienes digitales es, en comparación, desproporcionadamente fácil. No se requieren máquinas especiales ni recursos adicionales costosos, a diferencia de casi todos los bienes y productos físicos. Una vez que se crea un software, cualquiera puede copiarlo en números infinitos, por un costo casi nulo. Esto hizo imposible la Contrato de compraventa comercialización de software para el mercado masivo en el comienzo de la Revolución Digital era de la computación. A diferencia del hardware, no se consideraba un bien comercializable. El software se compartió de forma gratuita (cultura hacker) o se Paquetización de productos distribuyó con el hardware vendido, como parte del servicio para que el cliente pueda utilizar el hardware.