Entorno de desarrollo de software versus interno [cerrado]

13

En la industria, existe una distinción entre un entorno de "desarrollo interno" donde los desarrolladores de software escriben un código que será utilizado por la propia empresa y un entorno adecuado de "desarrollo de software" donde el software está diseñado para ser vendido / distribuido al público.

Entre otras, una diferencia obvia entre las dos es que una empresa orientada al desarrollo de software generalmente se adhiere a algún tipo de ciclo de vida de desarrollo de software, como la escritura de especificaciones, pruebas, construcción, etc. La tienda generalmente hará las cosas de una manera más informal, ya que ellos mismos son los usuarios finales y siempre pueden solucionar algo que no se hizo correctamente.

Como estudiante (como la mayoría de los otros estudiantes), me esperaba que terminara trabajando en un entorno de desarrollo de software, pero obtuve mi primera posición en una empresa que opera de forma más interna.

A veces, me pregunto si me estoy perdiendo la experiencia completa de desarrollo de software. ¿Hay una base para este sentimiento? ¿Debo buscar unirme a un entorno de desarrollo de software adecuado?

    
pregunta Isaac Kleinman 19.12.2011 - 20:57

4 respuestas

13

Según mi experiencia, la distinción que hace entre "en casa" y "producto distribuible" es falsa.

Hay empresas que toman en serio su proceso de desarrollo de software y aquellas que no lo hacen. Si están "en casa" o "a medida" o "envoltura retráctil" tienden a no aparecer tanto (aunque si son proveedores de "envoltura retractil", si no tienen un proceso probablemente no estarán en el negocio para largo).

Debe buscar un lugar que tenga los estándares de desarrollo que está buscando. Al entrevistar, debe hacer estas preguntas para asegurarse de que el lugar sea de su agrado a este respecto (así como a otros).

    
respondido por el Oded 19.12.2011 - 21:01
10

Puedes leer este artículo

enlace

de Joel Spolsky, que trata exactamente tu pregunta.

Estoy en una posición en la que tuve que trabajar en los dos últimos años: se vendió un producto de software de tamaño mediano y algunos software interno. Desde esa experiencia, puedo decirles que hay diferencias entre esas dos plataformas, pero la situación no es tan mala como Joel lo describió.

Por ejemplo, la mayoría de nuestro software interno debe ejecutarse solo en un entorno muy restringido. Muchas herramientas solo funcionan con una determinada hoja de cálculo o una versión de base de datos, con un entorno de red específico, con un número restringido de usuarios, sin necesidad de rutinas de instalación, etc. Nuestro producto de envío. Por otro lado, eso no significa que mi código para los programas "internos" tenga una calidad inferior o esté escrito de una manera más "casual".

    
respondido por el Doc Brown 19.12.2011 - 21:07
6

Hace mucho tiempo, leí un libro sobre Agile Project Management (me gustaría poder recordar el título), donde el autor distinguió los sistemas según sus niveles de tolerancia para los defectos del sistema. La tolerancia para los defectos puede variar desde muy alta, por ejemplo, una utilidad utilizada por otros desarrolladores (donde los errores son simplemente un inconveniente), hasta muy baja, por ejemplo, un sistema que está ejecutando soporte vital para los astronautas (donde un error podría poner en peligro la vida).

El punto del autor era que la metodología de desarrollo (y la formalidad) debían ser ajustadas a la tolerancia a fallos (o criticidad) del sistema. Creo que esta distinción es la más importante, en lugar de distinguir entre el desarrollo interno y el software para la distribución general.

Imagine un hospital que tiene desarrolladores internos que construyen sistemas de registros médicos que podrían afectar la calidad de la atención médica. En este caso, es probable que la tienda interna sea más rigurosa que una consultora del sitio web, que está creando productos web para ser utilizados por el público en general.

    
respondido por el Sam Goldberg 19.12.2011 - 21:41
3

He trabajado para empresas de software, agencias de marketing, telefonía móvil y bancos, una cosa que diré, es la cultura y la industria de la empresa que dictan el nivel de los procesos aplicados. El entorno más riguroso, lento, restrictivo y probado que he experimentado fue el desarrollo interno de un banco. Lo más casual fue una agencia de marketing.

Recomiendo aprender de esta experiencia y utilizarla para decidir su dirección futura para su próximo trabajo. La industria del desarrollo de software no es una ciencia, su arte / ciencia, por lo tanto, la variación y las diferencias de una compañía a otra. Es más importante que aprendas a hacer las cosas bien con respecto a tu código. Aunque hacer una nota mental de las fallas o la falta de procesos es útil, así que cuando su gerente pueda implementar procesos mejores.

    
respondido por el Nickz 20.12.2011 - 01:47

Lea otras preguntas en las etiquetas