¿Necesita conocimientos técnicos para gestionar un proyecto de software? ¿Cuánto cuesta?

Es un poco un mito que necesites ser un programador para comenzar una empresa de software o incluso administrar un proyecto de software. Muchos de nuestros clientes no son técnicos y gestionan proyectos de desarrollo exitosos.

Si bien no creo que necesite habilidades técnicas, sí necesita comprender lo siguiente:

  • Las mejores prácticas de gestión de proyectos para el desarrollo de software.
  • Cómo comunicar sus ideas a un equipo de desarrollo.
  • Cómo priorizar las especificaciones de su proyecto

Una cosa importante a tener en cuenta es que, incluso si no está realizando ninguna codificación, administrar un proyecto de desarrollo lleva mucho tiempo. Como gerente (o Propietario del producto, como se le suele llamar), necesitará tiempo para investigar, pensar estrategias, asistir a reuniones, explicar su visión, preparar especificaciones y estar disponible para responder preguntas de su equipo. Creo que es seguro decir que se necesita al menos el 25% del tiempo de alguien (al menos 10 horas / semana) para ser un gran propietario del producto en un proyecto pequeño. Los proyectos grandes y complejos pueden ser un trabajo de tiempo completo para que los gestione un propietario de producto.

Las mejores prácticas de gestión de proyectos para el desarrollo de software.

Hay dos enfoques populares para la gestión de proyectos: el método de la cascada y el método ágil. Probablemente ya esté familiarizado con el Método de la cascada, es el enfoque clásico para la gestión de proyectos, las etapas de este método siempre están en el mismo orden: Análisis – Diseño – Codificación – Pruebas – Implementación.

Sin embargo, recomiendo que los gerentes técnicos y no técnicos aprendan la metodología Agile y Scrum. Estas metodologías fueron diseñadas para resolver dos problemas comunes en la industria del desarrollo de software: los proyectos de software estaban llegando más allá de la fecha límite y sobre el presupuesto. Poner en práctica Agile y Scrum lo ayudará a utilizar mejor su equipo de desarrollo y mejorará sus posibilidades de entregar proyectos con éxito

En lugar de crear un producto de software con todas sus características de una sola vez, Agile recomienda construir y lanzar productos de software de forma incremental. Cada versión es utilizable y se basa en la última.

Podría pensar en Agile como una filosofía de gestión de proyectos y Scrum como las reglas y direcciones específicas para usar día a día.

Aquí hay algunas guías que hemos escrito para ayudar a los gerentes no técnicos a usar Scrum / Agile

Una guía para la gestión de proyectos ágiles con Scrum. Pt 1 – Ruta escalable

Seis consejos para el éxito con Scrum: ruta escalable

Cómo comunicar sus ideas a un equipo de desarrollo.

Compartir su idea de producto con su equipo de desarrollo es una de las primeras cosas que puede hacer como propietario del producto. Un documento de requisitos puede ser un excelente punto de partida para su producto: describir su propósito, quién lo usará y cómo usarlo. Es un precursor esencial para el diseño y desarrollo.

No es necesario definir cada cosa posible que hará su aplicación, no es productiva y, francamente, a nadie le gusta escribir (o leer) documentos detallados de requisitos. Desea que tenga los detalles suficientes para obtener estimaciones de tiempo y costo de su equipo de desarrollo.

Un documento simple de requisitos del producto generalmente incluirá:

  1. Metas
  2. Personas de usuario
  3. Historias del usuario
  4. Mapa del sitio
  5. Descripciones de página
  6. Wireframes (opcional)
  7. Requerimientos no funcionales
  8. Riesgos
  9. Iteraciones futuras

Aquí hay una guía simple que escribimos para nuestros clientes sobre cómo escribir un documento de requisitos para su equipo de desarrollo: Cómo escribir un documento de requisitos de producto efectivo: ruta escalable

También tenemos una Plantilla de requisitos de producto gratuita para acompañar estas instrucciones.

Cómo priorizar las especificaciones de su proyecto

Lo más importante que hará como propietario de un producto es establecer las prioridades para las nuevas características y las correcciones de errores que se deben trabajar a continuación. En Scrum, tenemos el concepto de Backlog del producto, que es una lista priorizada de características que el software debería tener. El trabajo número uno del propietario del producto es asegurarse de que esta lista tenga las características más importantes y que se priorice correctamente.

Es su responsabilidad guiar al equipo de desarrollo hacia la creación del producto adecuado (no cualquier producto) para su negocio, clientes y usuarios.

Para obtener consejos sobre cómo priorizar y comunicar sus especificaciones, consulte nuestra guía sobre Cómo ser un excelente propietario de productos: ruta escalable

Probemos un poco de comparación y contraste: ¿Cuánto conocimiento técnico necesita para administrar la remodelación de una casa frente al desarrollo de software?

La remodelación de la casa puede comenzar con dibujos arquitectónicos que pueden aproximarse mucho al resultado deseado. El desarrollo del software comienza con fragmentos de texto, maquetas de pantallas y cuadros y líneas en una pizarra.

Las tecnologías y procesos para la remodelación de la casa han estado en uso durante décadas y tienen muchos profesionales con licencia con más de 10 años de experiencia. Las tecnologías y procesos de software se han desarrollado en los últimos cinco años, y los profesionales del software no tendrán licencia, tal vez solo con referencias personales.

La remodelación de la casa estará garantizada por la calidad de su ingeniero local de permisos a un nivel básico de seguridad y estándares y usted puede ver el proceso de principio a fin. Para el software, hay poco o nada que ver, y en cuanto a la calidad, todo dependerá de usted.

A veces digo que la gestión de proyectos de software no es para “civiles”. Eso es un poco exagerado, pero no mucho.

Lo que hacemos en el desarrollo de software es en gran medida invisible y abstracto en comparación con la ingeniería física. Entonces, encuentre un administrador de software profesional experimentado o piense de nuevo.

Diría que un conocimiento técnico sólido sería útil, pero no una necesidad. Si tiene un mayor grado de conocimiento técnico, podrá ver mejor la hoja de ruta que tiene delante y anticipar dónde podría encontrar retrasos en el proceso.

Construimos Zenkit, una plataforma de gestión de proyectos, con el propio Zenkit. Nuestro PM es muy técnico y puede dar plazos al equipo que son más realistas, porque se entiende mejor cuánto tiempo tomaría construir una nueva característica o completar una búsqueda de errores.

TL; DR: No es necesario, pero ciertamente útil.

Ciertamente necesita algunos conocimientos técnicos. En un proyecto pequeño, necesitará mucho porque es probable que participe directamente en el desarrollo. En un gran proyecto, menos (pero aún suficiente para poder ser parte de la conversación) porque tendrá expertos técnicos en su equipo que liderarán el desarrollo y su trabajo es administrar a las personas (partes interesadas). La función de gestión siempre se trata de organizar y dirigir a las personas y cuanto más grande es el proyecto, más importante se vuelve esta parte de las responsabilidades generales de un ‘gerente de proyecto’. Para más información sobre esto, visite: http://www.crcpress.com/product/

Administrar un proyecto de software generalmente no implica administrar el trabajo de desarrollo de software real que se realiza en el proyecto.

En algunos casos, los gerentes de proyectos de software son secretarios glorificados que simplemente programan reuniones y escriben mucho papeleo sin tener poder de decisión sobre el proyecto. Otros PM pueden tener más poder de decisión sobre el proyecto, pero generalmente esto se limita a los aspectos no técnicos involucrados.

Como regla general, los PM no están obligados a tomar decisiones técnicas ni a informar a los desarrolladores cómo escribir su código.

En conclusión, en la mayoría de los casos no es necesario que el primer ministro tenga muy buenos conocimientos técnicos. Si el primer ministro tiene un buen conocimiento técnico, entonces existe el riesgo de que entre en conflicto con el líder técnico y esto puede ponerse feo, ya que generalmente los primeros ministros no tienen autoridad formal sobre los desarrolladores.

En algunos casos, generalmente en pequeñas empresas, las funciones de gerente de proyecto y líder técnico se fusionan en una sola posición y, como tal, en este caso, el PM líder técnico debe tener muy buenos conocimientos técnicos y también habilidades de liderazgo técnico.

En conclusión: si el primer ministro debe tener un buen conocimiento técnico depende de los deberes reales que tenga.

En mi opinión, una comprensión básica es útil para verificar y también para cuestionar las decisiones. Sin embargo, el enfoque principal está en la gestión de proyectos y los expertos técnicos son otras personas, por lo que las decisiones técnicas están en su enfoque.

Para responder la pregunta, no necesita conocimientos técnicos, pero puede ser útil.

Autor de The Agile Manifesto Unfolds y The Scrum Guide Unfolds

Blog Consultores Perdidos

En resumen, todo depende del proyecto. Como esta es una de las preguntas más frecuentes, he escrito una respuesta más detallada aquí 🙁 http://pmreloaded.com/2016/02/16 …)

Algunos softwares tienen una experiencia de usuario sorprendente que a su vez facilita que un gerente de proyecto administre fácilmente las cosas, pero recomendaría tener algún conocimiento técnico sobre cómo funcionan las cosas es un verdadero punto a favor para cualquier gerente de proyectos.

More Interesting

¿Por qué no debería cambiar a Java 8?

¿Cuáles son algunos problemas de diseño de arquitectura de software que se enfrentan al implementar una aplicación de transmisión de video como YouTube?

¿Cuáles son las mejores prácticas para construir software complejo poco a poco?

¿Cuáles son los diez atributos principales recomendados para un buen producto de software?

¿Qué tipo de interrupción puede dejar a los programadores sin trabajo?

Cómo identificar y calcular la cantidad de recursos necesarios para una tarea de desarrollo de software en particular

¿Cuáles son algunas aplicaciones simples de Java que se pueden desarrollar por diversión o para el uso diario?

¿Cuál es la única cosa (o quizás la más influyente) que me haría un ingeniero de software superior en un par de años?

Como ingeniero mecánico, ¿debo seguir una maestría en ingeniería de software o gestión de ingeniería?

Cómo familiarizarme con Unix / Linux, especialmente el terminal, si planeo trabajar en la industria del software

¿Por qué muchas personas odian las tecnologías de Microsoft?

¿Cómo manejan algunos desarrolladores los sofocantes entornos / prácticas ágiles?

¿Es un salario bruto de 100,000 USD un buen salario para una persona en Houston, Texas en general (en este caso para el rol de ingeniero de software senior)?

¿Es egoísta no querer ser un líder en mi trabajo?

¿Cuáles son algunos de los trabajos de desarrollo de Python en empresas como Google, Amazon y Microsoft? ¿Cómo se debe preparar para ellos?