Hay muchos ángulos para esta pregunta, tantos que no sé por dónde empezar. En primer lugar, es importante darse cuenta de que, en la mayoría de los casos, el usuario no tiene una imagen clara o completa de lo que quiere. Por lo tanto, al comienzo del proyecto, el primer trabajo del desarrollador de software es obtener una visión circunspecta de los objetivos totales, y los activos, detalles y cabos sueltos del (los) entorno (s) del proyecto. Al alcanzar ese nirvana, es crucial contar con un plan y un plan por escrito y acordado de los objetivos, los recursos necesarios y el tiempo para el proyecto.
En segundo lugar, armado con el plan y la línea de tiempo, siempre es útil hacer un inventario detallado de las tareas y la ruta crítica de la creación de los elementos necesarios para completar el proyecto. Eso le permitirá distribuir las tareas al personal que tenga experiencia en cada una, y lo obligará a revolcarse en la especificidad de los detalles de las tareas. Ejemplos de esto podrían ser el empleo de varias tecnologías: bases de datos, CSS, PHP, HTML, etc., que son necesarias para completar varios aspectos del proyecto.
La sección anterior también proporcionará un inventario de artículos que podrá consolidar. Y aquí es donde los buenos ganan sus honorarios. En CADA proyecto hay oportunidades para incorporar eficiencias en la ‘máquina’. Esto requiere la capacidad de pensar de manera abstracta y ver analogías fundamentales en la creación de procesos. Al escribir esto, veo lo difícil que es describir la abstracción en el proceso de diseño del software, pero quizás pueda hacerlo con analogías. Si escribe software para ordenar inventario para una tienda, por ejemplo, puede tener un requisito para ordenar artículos para el hogar, hardware y herramientas. Obviamente, las personas separadas podrían ser responsables de cada uno de estos departamentos, por lo que una solución fácil podría ser presentar una página en blanco con campos desplegables que el usuario podría usar para completar su departamento. Un mejor enfoque podría ser hacer que el usuario declare su departamento, y luego hacer que el programa presente una lista de elementos que podrían ser apropiados para que él ordene. Si abstrae el proceso, solo tendría que escribir esto una vez y permitir que la base de datos llene la hoja correspondiente. Este es un ejemplo de abstracción de un proceso.
- ¿Es posible desarrollar un algoritmo y un código fuente correspondiente a partir de una publicación en matemáticas aplicadas?
- ¿Cuál es el mejor libro sobre estimación de software?
- Quiero ser ingeniero de software y hacer toda la codificación. ¿Debo obtener un BE Hons en ingeniería de software o un BSc en informática?
- ¿Es un servidor una computadora o simplemente un software de computadora?
- ¿Cómo es ser desarrollador en una startup?
Ahora, aunque los diferentes departamentos tienen diferentes personas que ordenan, es probable que exista cierta superposición cuando se trata de los proveedores. Por lo tanto, algunos artículos de hardware, artículos para el hogar y herramientas pueden solicitarse a las mismas compañías. Por lo tanto, debería haber otro proceso que combine los pedidos a las empresas, al tiempo que permite la segmentación del proceso de pedido.
Se debe prestar especial atención al principio de ‘escribir una vez; usar muchas veces “. Un ejemplo de esto se demostró anteriormente, pero hay muchas veces en que uno de esos procesos se realizó en un proyecto anterior, que puede emplearse fructíferamente en el actual. Si es así, esto es algo feliz: feliz por usted porque el código y el proceso ya se han inventado y escrito, feliz por el cliente porque el código ya está implementado y depurado. Esta condición con frecuencia existe dentro de un proyecto, así como entre proyectos. Por lo tanto, es muy importante mantener una biblioteca y una ‘enciclopedia’ de rutinas y procesos a los que pueda hacer referencia y ‘pedir prestado’.
Pero para que esta técnica funcione, es necesario que tenga un conocimiento profundo de las piezas funcionales de sus rutinas y que pueda comprender cómo se pueden modificar para que sean aún más adaptables a las variaciones periféricas en su funcionamiento primario.