¿Qué se entiende por mejores prácticas en ingeniería de software?

De hecho, esta es una pregunta abierta, por lo que mi respuesta también será un poco vaga. Esperemos que te ayude. Básicamente, las mejores prácticas son una combinación de qué hacer y cómo hacerlo.

En la ruta escalable, seguimos metodologías ágiles donde los productos se lanzan rápidamente, se obtienen comentarios y se realizan mejoras de forma iterativa. Si bien creo firmemente en Agile y Scrum, no es sensato contratar un equipo de desarrollo y comenzar a desarrollar funciones sin saber en qué se está metiendo. Debido a esto, siempre recopilo de manera integral los requisitos del proyecto desde el principio.

Si bien no necesita perder un tiempo precioso tratando de definir cada cosa posible que hará el software, debe asegurarse de capturar todo lo que se necesita para satisfacer las expectativas del cliente y ofrecer un producto funcional. Es un acto de equilibrio seguro.

A continuación se detallan los pasos que tomamos con cada proyecto de software:

Comience escribiendo un documento de requisitos.

Acabo de cubrir esto y he respondido algunas preguntas sobre este tema en Quora, pero el mejor lugar para ir es probablemente un artículo que escribimos específicamente sobre cómo escribir PRD

Elige un equipo en el que confíes.

No hay que decirlo, pero asegúrese de confiar y respetar a todos los miembros de su equipo.

Elija Agile y el marco Scrum.

Agile y Scrum son perfectos para equipos pequeños y remotos que trabajan en productos de software complejos. Ágil fue una respuesta al problema de los proyectos de software que llegaron más allá del plazo y del presupuesto. Scrum es genial por varias razones. Se adapta a la forma iterativa actual de construir software. Fomenta una cultura multidisciplinaria donde los roles se superponen. Está diseñado para requisitos cambiantes. Por último, se basa en la transparencia, con todas las tareas y comunicaciones visibles para todos.

Habla con tu equipo todos los días.

Esto es parte de Scrum y se llama el stand up diario. Esta es la ceremonia de Scrum sin la que no puedo vivir. Todos nos reunimos en una videollamada y revisamos la lista de tareas y el progreso. Les da a todos una buena idea de lo que está sucediendo y cuál es su trabajo.

Use GIT para el control de fuente.

Nunca ejecute un proyecto sin control de fuente. Incluso si solo hay un desarrollador. El control de versiones le permite ver los cambios realizados con el tiempo y retroceder cuando sea necesario. Esta capacidad de retroceder lo hace invaluable. Una vez que tenga un equipo grande, los sistemas centralizados basados ​​en la nube como Github facilitan que los equipos remotos trabajen sincrónicamente.

Utilice una plataforma de gestión de proyectos que satisfaga sus necesidades.

Consideramos que la gestión de tareas es tan vital que creamos nuestra propia plataforma interna. No necesita hacer eso, por supuesto, hay muchas plataformas excelentes por ahí. De Asana a Basecamp a Trello, ¡solo por nombrar a los tres grandes! Escriba una lista de funciones clave y vea qué herramienta es la más adecuada para usted.

Prueba, prueba y prueba.

Puede probar de forma manual o automática. Las pruebas automatizadas son perfectas para proyectos de modo avanzado / modo de soporte. Una vez configurada, es tan fácil como presionar un botón para verificar que todo funcione bien antes de actualizar. Este entorno controlado por prueba (TTD) también funciona en otros casos de uso, pero es menos valioso cuando un proyecto se encuentra en sus primeras etapas. En esta etapa, las cosas todavía están cambiando y no tiene sentido crear nuevas pruebas automatizadas que se extinguirán en unos días. En esta situación, tendemos a centrarnos más en el control de calidad manual. De cualquier manera, siempre probamos antes de lanzar.

Personalizado o ‘Fuera de la plataforma’.

A menudo escucho a los clientes decirme que quieren construir su propia plataforma, pero cuando analizamos los requisitos, nos damos cuenta de que ahorrarían tiempo y dinero al personalizar un producto ‘listo para usar’. Si está creando un blog, ¡no necesita crear una plataforma de administración de contenido usted mismo! Es por eso que recomiendo trabajar con un arquitecto de software para ayudarlo a decidir qué debe desarrollar usted mismo y qué puede comprar y personalizar.

Use un marco.

Elegir el marco adecuado ayudará a su equipo a desarrollar una aplicación que cumpla plenamente con las reglas comerciales, que esté estructurada y que sea tanto sostenible como actualizable. Los marcos también son más rápidos para trabajar porque permiten a los desarrolladores ahorrar tiempo reutilizando módulos genéricos. Por último, los marcos vienen completamente documentados para que todos en el equipo puedan leer y cumplir con las mismas pautas de uso.

En resumen, estas son las tres mejores prácticas para el desarrollo de software:

  • Recoge los requisitos completamente
  • Usar control de fuente.
  • ¡Usa Agile / Scrum y habla con tu equipo todos los días!

Estoy de acuerdo con las respuestas proporcionadas aquí.

Te daré una explicación simple.

En general, las mejores prácticas se refieren a los procedimientos comerciales que se prescriben como los más efectivos, correctos o exitosos.

En ingeniería de software, las mejores prácticas se refieren esencialmente a los procedimientos que se consideran más efectivos para el desarrollo de software.

Hay una larga lista de mejores prácticas en ingeniería de software; sin embargo, las mejores prácticas pueden diferir para diferentes aplicaciones de software. Según el tipo de proyecto en el que esté trabajando, debe ver qué se considera más efectivo para esa aplicación.

Espero que esto ayude. ¡Salud!

Tu pregunta es muy vaga, OMI. Las mejores prácticas en general significan exactamente eso en cualquier campo. La ingeniería de software no es diferente.

Si pregunta cuáles son estas mejores prácticas, podría llenar una biblioteca con libros que las describan, por lo que tratar de responder a Quora no sería muy bueno. Puede comenzar por consultar el conjunto de conocimientos de ingeniería de software (SWEBOK). Una vez que haya leído y entendido que debe tener un buen punto de partida.