A diferencia de otras profesiones (como Contabilidad, Derecho, Medicina, etc.), no existe una certificación profesional para Ingeniería de Software.
Soy consciente de la multitud de certificaciones específicas de tecnología y metodología que tienen como objetivo servir como prueba de especialización y experiencia, pero no existe una sociedad de ingeniería de software / organismo rector público que establezca (y tenga el poder de evaluar legalmente) estándares profesionales generalmente aceptados .
Entiendo que el software es una bestia dinámica, eso es en parte arte, en parte ciencia, pero me pregunto si la Ingeniería de Software tiene el potencial de convertirse en una profesión formal.
¿Qué necesita cambiar para que esto suceda? ¿Sería algo bueno?
(Si alguien sabe de investigación formal sobre este tema, agradecería mucho las referencias)
Actualizar
Estoy de acuerdo con muchos de los buenos puntos planteados a continuación con respecto al nivel actual de certificación en Ingeniería de Software. También me parece muy interesante que algunos países traten la Ingeniería del Software como una profesión, mientras que otros no.
Sin embargo, parece haber un poco de envoltura alrededor del término "profesión formal" y cómo se aplicaría a la Ingeniería del Software. Creo que el problema clave con la Ingeniería del Software, y la razón principal por la que no es una profesión en toda regla, es que si eres un Ingeniero de Software certificado y, por ejemplo, algún software que escribiste para un mal funcionamiento del ascensor y mata a la gente, su certificación y / o membresía a un organismo profesional formal no será revocada.
Claro, su compañía podría ser demandada por millones, y usted personalmente podría perder su trabajo y ganar una mala referencia, pero en general, usted está protegido por el escudo de responsabilidad limitada como resultado de ser empleado de dicha compañía. En otras palabras, y que yo sepa, no existe una evaluación / aplicación legal (a diferencia de otras profesiones formales y sus sociedades de gobierno) que tienen el mandato de prohibirle oficialmente el comercio una vez que haya hecho una colosal acumulación .
Me gustó bastante la respuesta que se refirió al hecho de que la Ingeniería de Software, tal como está, es una meritocracia, que no necesita ser una profesión formal, y que es algo bueno que no debería cambiar. Al mismo tiempo, creo que debemos hacer una distinción clara entre los ingenieros de software de software de misión crítica y los desarrolladores de software misceláneo / no crítico.
Para aquellos de ustedes que trabajan / han trabajado en software de misión crítica, ¿hay alguna responsabilidad personal? ¿Seguramente hay una necesidad de repercusiones formales en caso de que el Ingeniero de Software cometa un error costoso?
fuente
Respuestas:
Según la información disponible, creo que la Ingeniería del Software ya es una profesión formal. Puede que no sea ampliamente aceptado como tal, pero cumple con los criterios generalmente aceptados para las características de una profesión.
Del artículo de Wikipedia sobre la profesión :
Esto cita extensamente El ascenso del profesionalismo de Magali Sarfatti Larson : un análisis sociológico . La búsqueda de "características de una profesión" tiende a conducir a resultados similares.
¿Cómo se compara Software Engineering con estas características?
Asociación profesional Existen numerosas asociaciones profesionales para ingenieros de software. El IEEE y, más específicamente, la IEEE Computer Society brindan servicios a profesionales que trabajan en ingeniería en todo el mundo, y la IEEE Computer Society se enfoca específicamente en ingenieros de computadoras y software. El ACM es otra organización profesional para profesionales que trabajan en informática, generalmente en las Américas. También está la British Computer Society , que atiende varios aspectos de las profesiones en tecnología de la información y la comunicación, generalmente en el Reino Unido.
Base cognitiva El cuerpo de conocimiento de ingeniería de software está patrocinado por IEEE, Boeing, National Research Council Canada, Raytheon, Construx Software, Canadian Council of Professional Engineers, MITER Corporation, NIST, Rational, SAP (para la versión 2004). Se inició específicamente como un paso hacia "hacer de la ingeniería de software una disciplina de ingeniería legítima y una profesión reconocida" .
Capacitación institucionalizada En los Estados Unidos, ABET puede acreditar los programas de Tecnología de la Información, Ciencias de la Computación e Ingeniería de Software . En Canadá, los programas de Ciencias de la Computación e Ingeniería de Software están acreditados por CIPS . Estas organizaciones definen estándares mínimos y resultados esperados para los estudiantes que se gradúan de un programa acreditado para permitirles funcionar en un entorno profesional. El IEEE también ofrece dos exámenes basados en el conjunto de conocimientos de ingeniería de software: el examen Certified Software Development Associate para estudiantes universitarios (o estudiantes universitarios recién graduados) y el examen Certified Software Development Professional para profesionales de mitad de carrera.
Licencias A partir de abril de 2013, NCEES ofrece un examen de Ingeniería Profesional en Ingeniería de Software . Se ofrece estado por estado en los Estados Unidos. Sin embargo, el examen de Ingeniería de Software PE no se ofrece actualmente en todos los estados, y aún menos requieren la licencia. Este artículo, publicado en la edición de noviembre / diciembre de 1999 de IEEE Software, analiza los requisitos de licencia en el estado de Texas y una breve discusión sobre las licencias en Ontario y Columbia Británica, Canadá y el Reino Unido. En Texas, solo se requiere una licencia para trabajar en el diseño, prueba o implementación de sistemas integrados o en tiempo real que "requieren una comprensión detallada de los componentes eléctricos o mecánicos diseñados" y para los sistemas de software para "dispositivos mecánicos, dispositivos eléctricos y sistemas de energía ": una cantidad relativamente pequeña de trabajo de desarrollo de software. En los estados que ofrecen licencias, el peor de los casos es una acción disciplinaria, sanciones o pérdida de su licencia en caso de que un cliente o empleador presente una queja. Sin embargo, el único daño real se produce en los estados que requieren una licencia, a menos que se requiera la licencia para hacer el trabajo, perderla no significa nada.
Código de Ética La ACM y la IEEE Computer Society crearon un Código de Ética y Práctica Profesional de Ingeniería de Software . En los Estados Unidos, los graduados de los programas de ingeniería acreditados por ABET, incluidos los programas de Ingeniería de Software, también pueden unirse a la Orden del Ingeniero , que mantiene un código de ética que generalmente se aplica a los ingenieros profesionales.
Autonomía de trabajo, control de colegas, altos estándares de excelencia profesional e intelectual Estos son frecuentemente visibles en un entorno donde la ingeniería de software se trata como una disciplina de ingeniería. Es decir que no todos los empleadores (o autónomos) tratan el desarrollo de software como ingeniería.
fuente
Un cuerpo profesional ampliamente establecido y aceptado para desarrolladores de software / ingenieros / arquitectos / etc. no sería algo bueno.
Actualmente, este es uno de los pocos campos que puede actuar como meritocracia. Como en, no me importa qué grado tienes (o si tienes uno), cuánta antigüedad tienes, qué idiomas conoces, etc. Es relativamente fácil saber si eres un buen desarrollador o no. , y al final del día, eso es lo único que importa. es decir, ¿puedes hacer las cosas?
Actualmente, usted es evaluado por su habilidad, no por alguna acreditación que alguien le otorgó. Y esto es justo, algo bueno (tm).
fuente
Nada necesita cambiar.
Como señaló Thomas , la ingeniería de software ya es una profesión. Puede llamarse ingeniería, programación, piratería y / o elaboración, pero es una profesión y mucha gente está ganando dinero con eso.
Creo que su pregunta es sobre las licencias.
En este momento no hay licencias formales para la ingeniería de software. Cualquier persona con suficiente inteligencia y capacidad de programación puede ser contratado y pagado por crear código que se ejecuta en una máquina o un dispositivo.
Esto es diferente a otras industrias (la ley y la medicina son ejemplos citados en la pregunta). Se requiere una licencia para esas profesiones. Cualquier persona puede conducir un automóvil, pero para conducir uno legalmente debe tener una licencia de conducir es otro ejemplo. Cualquiera puede programar, no se requiere licencia o certificación.
Ahora, creo que la licencia es buena, ya que demuestra que alguien tiene la capacidad de hacer algo (como conducir un automóvil) y conoce los entresijos de las reglas (de la carretera).
Se podría requerir una licencia similar para la ingeniería de software, pero no creo que sirva de mucho. De hecho, hay muchos conductores con licencia que son conductores horribles, así que solo porque tenga una licencia no significa que sea un buen conductor o programador.
Una licencia crea una barrera para la entrada, que en esta industria no sería algo bueno, por lo que no veo ningún beneficio percibido de dicha licencia.
Las compañías que contratan ingenieros de software deberían probar definitivamente la capacidad de ese programador potencial con una "prueba de programación" (y no estoy hablando del tipo de chisporroteo) basado en el conjunto de habilidades necesarias. Los programadores con "certificaciones" se ven bien en el papel, pero realmente deberían ser puestos a prueba con una prueba del mundo real para evaluar la experiencia y la aptitud.
fuente
Creo que debería ser posible convertirse en un desarrollador de software certificado aprobando un examen de la misma manera que un abogado aprueba un examen de barra. También creo que los programadores no certificados aún deberían poder operar como programadores. La diferencia es que los empleadores podrían anunciarse específicamente para programadores certificados si eso es lo que desean, y un programador certificado vendría con ciertas garantías de responsabilidad, así como un precio más alto.
Estoy de acuerdo con el póster que dice que el desarrollo de software es un desastre sin responsabilidad. No creo que tenga que ser así. Hay desarrolladores que quieren hacer un buen software y están dispuestos a rendir cuentas por él. Solo necesitamos una forma de distinguirnos.
He estado desarrollando software por más de 20 años. No pretendo que esto me haga un gran desarrollador por sí mismo, pero sí creo que soy un desarrollador bastante bueno. El problema es que tengo que demostrar constantemente por qué soy un mejor desarrollador que todos los niños que aprendieron programación en su tiempo libre y quieren el mismo trabajo que yo. Sin mencionar las legiones de desarrolladores "offshore" que prometen hacer el mismo trabajo por una fracción del dinero. En este momento esto requiere mucho esfuerzo. Tengo que proporcionar muestras de trabajo, referencias, tomar exámenes, hacer entrevistas. Fácilmente podría tener un mal día, cometer un error en una prueba y quedar descalificado. Prefiero decir: "sí, soy un desarrollador certificado y aquí está mi certificado". Todavía tendría que hacer entrevistas, pero al menos solo estaría compitiendo contra otros desarrolladores certificados.
fuente
Nunca lo hará, al menos no del todo. El software es un medio, como la pintura. Hay personas que realizan trabajos de pintura a escala industrial de grandes estructuras, hay personas que diseñan nuevas pinturas para realizar con altos estándares, pero también hay personas que compran pintura para realizar trabajos a pequeña escala, como pintar su cobertizo, y otros que podrían mezclar su propia pintura, pero solo úsela para pintar cuadros de gatos.
De manera similar, aunque podría ver un futuro en el que el software crítico y / o financiero para la seguridad necesita ingenieros acreditados que trabajen en él, nunca habrá necesidad de personas que produzcan software de arte o entretenimiento. ¿Qué debe cambiar para obtener software de seguridad o financiero para tener ingenieros acreditados? Bueno, al igual que esas otras profesiones, requeriría una ley para ordenarlo.
fuente
El software no es una profesión, ni nunca lo será.
"Una profesión surge cuando cualquier comercio u ocupación se transforma a través del desarrollo de calificaciones formales basadas en la educación, el aprendizaje y los exámenes, la aparición de organismos reguladores con poderes para admitir y disciplinar a los miembros, y cierto grado de derechos de monopolio".
Esa descripción no coincide con el software en absoluto.
En primer lugar, cualquier persona interesada en el software puede salir y tratar de encontrar un trabajo para desarrollar software. Muchas de esas personas tienen títulos universitarios totalmente ajenos a la programación informática y muchos no tienen ningún título. No hay nada que impida a ninguno de esos grupos convertirse en programadores de software.
El software no puede convertirse en una profesión porque los miembros "con licencia" se hacen responsables por el daño que causan y su mala práctica. El 80-90% de los desarrolladores perderán su trabajo dentro de un par de años solo por ese.
En general, la calidad del software es atroz, propensa a errores y simplemente no está muy bien hecha. ¿Es eso digno de ser una profesión? ¿Prevé que se detenga porque las personas obtienen licencia? Si una organización profesional no va a representar altos estándares y calidad profesional, entonces no tiene sentido. Eso va directamente en contra de la práctica de la industria. Escribir software de calidad, robusto y funcional va en contra de los principios de la mayoría de las empresas, porque el tiempo de comercialización, el costo, es lo suficientemente bueno, no quiero romper nada más, tratar de arreglar el software dañado se considera más importante que el software de grado profesional.
Además, con respecto a la mala práctica. ¿Cómo va a demostrar que un desarrollador contra otro tiene la culpa? En software es fácil señalar con el dedo y ambos desarrolladores "tienen razón". ¿Quién tiene la culpa cuando ese desarrollador usa la API no documentada oculta en las entrañas del sistema operativo y luego el proveedor del sistema operativo cambia su función o la elimina?
Buena suerte con esa cosa del organismo regulador. Veamos que el Congreso dice que no a Microsoft cuando Microsoft les pide que eliminen ese proyecto de ley porque solo les permitirá contratar desarrolladores "con licencia". Sin ese organismo regulador, entonces quién se unirá a una organización que tiene el derecho de disciplinarlo y cobrarle las cuotas, especialmente si no hay un valor agregado como obtener derechos de monopolio sin el organismo regulador.
En cuanto a, ¿sería bueno exigir una licencia? Absolutamente, para aquellos que pueden acreditarse. Su paga aumentaría dramáticamente con su nuevo monopolio encontrado.
Sin embargo, para todos los demás ... el uso de la tecnología informática en las empresas probablemente disminuirá junto con el rápido ritmo de avance que vemos hoy en día. Ciertamente habrá barreras para los nuevos avances de software, como lenguajes y metodologías de diseño. Después de todo, quién querrá impulsar nuevas formas de hacer cosas que requerirán años de reentrenamiento para mantener su licencia. La mayoría de los desarrolladores con licencia preferirán mantener las cosas tal como están en ese sentido.
fuente