¿Para qué necesito una certificación software? (si yo ya sé que desarrollo software bien)

Este post viene motivado por una pregunta que no sé porque últimamente es curiosamente repetida con frecuencia desde ciertos sectores o familias de esta nuestra extensa área de la ingeniería o desarrollo software, y que se manifiesta normalmente bajo formas del tipo a… “si hago bien el software ¿para qué necesito yo una certificación?” o “¿para qué quiero qué venga un auditor externo a ver cómo desarrollo, si ya sé que lo hago bien?”
Y no es que os vaya a contar yo que certificarse sea el remedio para todos los males del software, obviamente no lo es, igual que tampoco lo son la mayoría de las cosas que en ingeniería del software están o han estado de moda. Pero aunque nosotros creamos que desarrollamos muy bien nuestro software, obtener una certificación software tiene sus ventajas (o su necesidad), y de ahí que en España sean ya más de 200 las empresas certificadas.
Aunque hay varias razones sobre la importancia de certificarse (que en este post considero sinónimo de evaluarse), como pueden ser los buenos consejos que puede darte un auditor externo, quería centrarme aquí en un concepto de base: una certificación no se emite principalmente para aquellos que están desarrollando software, y que pueden perfectamente hacerlo muy bien, una certificación se emite para dar garantías a un tercero de que, efectivamente, es así. Aunque uno pueda certificarse para reafirmarse en que efectivamente desarrolla muy bien, normalmente lo hace para que posteriormente un tercero se lo crea (véase que por ello hoy, sin una certificación de la calidad software tienes muy difícil ganar proyectos, ya que la mayoría de clientes las requieren). Y este principio aplica a certificaciones software en procesos (15504, CMMI, etc.), en productos (ISO 9126) y en personas (Certified Scrum Master, ITIL, etc.)
Cuando alguien me hace esta pregunta suelo contestar con un ejemplo. Si las certificaciones no valen para nada, porque yo sé que desarrollo bien, entonces… ¿por qué te sacaste una carrera? Supongo que cuando te presentaste al último examen tú ya sabías que dominabas la asignatura, entonces… ¿para qué querías un título o certificado de estudios superados? Supongo que porque necesitabas un “papel” que certificara que, efectivamente, superaste la carrera; papel que seguro te pidieron a la hora de buscar trabajo, para que alguien confiara en ti para dártelo.
Para que no se alargue el tema, dejo para futuros post otros típicos temas de debate relacionados con las certificaciones, como aquello de que “las certificaciones no aseguran nada, porque yo conozco a no sé quien que lo hace súper mal y está certificado” (al igual que yo conozco alguno que aprobó el examen copiando), que una certificación de la calidad de los procesos no siempre asegura un producto de calidad (igual que yo conozco alguno con el título de ingeniero y que es un poco manta) o “el auditor que vino no tenía ni idea de software” (al igual que yo recuerdo algún profesor que…)

Javier Garzás

14 comentarios en “¿Para qué necesito una certificación software? (si yo ya sé que desarrollo software bien)”

  1. Otro simil muy apropiado, me quedo con el del auditor externo / profesor que no tenía ni idea 😉
    Sin duda, una certificación SW no asegura que desarrolles software de calidad pero para los ojos de un tercero hay una razón más para confiar en una determinada empresa.
    Un saludo.

  2. Es que esta ingeniería es de risa.
    Ves apreguntarle a los arquitectos si tiene sentido certificar las vigas que usan o a los médicos si es necesario certificar los materiales que utilizan para operar.
    Así, con pensamientos de niño, no sé como queremos que nos traten como ingenieros

  3. Sí, efectivamente, es un poco paranóico.
    Por una parte nos rasgamos las vestiduras porque no se nos considera una ingeniería con el prestigio y las prebendas (para bien y para mal) que supone dicha condición. Nos quejamos de que muchos consideran la programación como un arte, basando el éxito o fracaso de la misma en que tal o cual persona esté en el proyecto…
    Y por otra parte, nos comportamos justamente como artistas, con gran desprecio ante cualquier método «formal» de evaluar su trabajo, con un enorme componente individualista, con aires de «gurú», con francas dificultades para trabajar en equipo, etc.
    ¿Y de verdad creéis que la sociedad nos puede considerar como una ingeniería seria y formal?. ¿Imagináis que un fabricante de coches reniegue de las certificaciones de calidad/seguridad de terceros?. ¿Si tuviérais inquietudes al respecto -por ejemplo por miedo a viajar en un coche inseguro con vuestro hijo- no prefiriríais que ese coche tuviera varias certificaciones de seguridad/calidad?. ¿Por qué negarnos a que nos certifiquen nuestro trabajo?. Sí, tenemos mucho que madurar… Pero lo haremos, eso sin duda 🙂

  4. Antonio Manuel Martínez Heredia

    Buenas noches,
    Creo que este es un tema muy importante, ya que poco a poco (sobre todo la administración) se van pidiendo distintos tipos de certificaciones y aquellas empresas que no disponen de ellas ni siquiera tienen la opción participar en el proceso.
    De un tiempo a esta parte, estoy viendo como se empieza a pedir la certificación a nivel 3 de CMMI (desde hace 3 ó 4 años). Además se plantea la necesidad de ver si es necesario añadir, si la tecnología que se emplee (en los casos de Microsoft o de JAVA), que los profesionales tengan las certificaciones correspondientes. Pienso que si hay muchos sectores que están certificados con tal o cual norma, y que pasan las auditorías cada x tiempo, ¿por qué en sw hay todavía profesionales con cierto grado de reticencias a certificarse o empresas que no lo ven claro? ¿Si realmente haces las cosas bien, no es mejor que además de saberlo tú lo sepan los demás?
    En el caso de sw que corre en aeronaves, se tiene cierto grado de sensibilidad a este respecto y se empieza a ver como en el caso de desarrollo de sw están certificados, ¿por qué en sectores diferentes al aeronáutico se es menos sensible?
    Por último, indicar que con independencia de las certificaciones una empresa puede hacer buenos desarrollos, pero en un sector tan competitivo como el del sw y si se quiere participar en proyectos de envergadura puede ser muy recomendable plantearse pasar el trago de certificarse y posteriormente pasar las auditorías necesarias para renovar la certificación.

  5. En nuestras manos está evitar repetir los errores de otras disciplinas más maduras aunque, sin duda, los vamos a cometer.
    No confiamos lo suficiente en nosotros mismos como para evitarlos.
    Mientras todo eso ocurre muchos seguirán mirando mal a quien ejerce aunque no tenga el título o excluyendo a quien no esté certificado a la última moda.
    ¿No será que todo ese rechazo es un efecto rebote hacia las corbatas y los pines que menosprecian que no hagas las cosas de la única forma que creen que existe?
    ¿o hacia los profesores que jamás han salido de la universidad y utilizan un efecto dogmático en sus clases?
    Nos va a pasar como en el relato de Philip K. Dick del Hombre Variable, aunque como esto no es ciencia ficción no nos lo podremos traer del pasado.

  6. Para mi el problema es que la certificación no certifica que hagas software de calidad, ¿no?. Solo que sigues un proceso.
    Cuando certificas la calidad de un material, dices que el material cumple una serie de características, y por tanto está dentro de los márgenes de calidad definidos. Eso no es equivalente a certificar que sigues unos procesos en un desarrollo.
    Cambiemos las certificaciones a lo siguiente: «certificamos que los productos de la empresa X siempre tienen menos de 1 bug por cada 10.000 lineas de código». ¿se podría? Eso sería una certificación equivalente a las del proceso industrial. ¿tiene sentido/se puede hacer? :\
    O hagamos otra certificación diferente: que certifique que se hacen la práctica X, Y o Z de ingeniería en cada desarrollo de una empresa. Pero ¿una certificación que certifica que sigues un proceso? ¿sin siquiera importar cómo es ese proceso, y es responsabilidad de cada uno definirlo? Esto es equivalente a un título universitario que te diesen SIN exámenes, diciendo: «estuvo en este aula cinco años metido, y a veces escuchó a algún profesor, y a veces participó en alguna práctica». Certificas que el proceso de aprendizaje es bueno, pero no sabes qué ha aprendido!! 🙂

  7. @Joserra Sin querer entrar en el tema debate de ventajas/defectos de las certificaciones de los procesos, es importante recordar que, ojo, estas son sólo un tipo de certificación, pero que hay otras evaluaciones que se realizan directamente sobre el producto, sin entrar en el proceso o en cómo se construyó, y ahi si que quedan pocas dudas de la calidad de ciertos aspectos del producto software.
    Sobre lo que comentas en tu comentario, recomiendo este post https://www.javiergarzas.com/2008/04/una-certificacin-de-la-calidad-de-los.html
    P.D: Joserra, tu blog se ha caído, no sé si hay algún problema, por avisarte.

  8. @jgarzas, a eso iba precisamente, a lo que comenta en ese post.. aunque tal y como yo lo veo, es que el modelo de calidad de procesos NUNCA se adecua bien al desarrollo de software 🙂
    Las certificaciones basadas en producto, no las conozco, la verdad ¿a qué puedo echar un ojo?

  9. @joserra las certificaciones ISO que certifican productos software son las 9126, 14598 (desfasada) y la 25000, aunque jgarzas sabe mucho mas que yo se esto.
    @Antonio Manuel Martínez Heredia sobre las certificaciones de aeronaves, son las autoridades de control aereo las que imponen que el software embarcado de las aeronaves debe de cumplir unos estandares y unos niveles de criticidad determinados, en caso de que no cumpla los requisitos ese software no se puede montar en un sistema de una aeronave civil

  10. Pingback: “Porque no volvería a estudiar informática” - Javier Garzás, sobre calidad software y otros temas relacionados

  11. Eduardo M Ardila

    La verdad es que la ingenieria de software no se enseña bien, los profesores no son docentes profesionales y los docentes no saben de software. Tengo experiencia en desarrollo de software y la verdad hay mucha falla en esto. Quise enseñar en una universidad y le exigen a uno maestria y los que tienen maestria no saben desarrollar software.

  12. Saludos Javier, estoy haciendo el curso de Agilidad y Lean. Gestionando los proyectos y negocios del s. XXI (7ª. edición) en Miriadax y de verdad estoy fascinado por la metodología y el conocimiento que compartes en esta plataforma, Felicitaciones por ese gran trabajo. Mi pregunta está relacionado con las certificaciones de Scrum Master que a diario publican las personas en Linkedin, me impresiona de verdad ver como a diario (por exagerar) se publican certificaciones de instituciones que las emiten algunas más nuevas que la otras. Me gustaría saber cual es tu opinión al respecto porque me quiero preparar para obtener la certificación, pero no quiero pecar escogiendo una mala opción para certificarme. Agradecería tu comentario al respecto, Un abrazo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir arriba