Un breve análisis del desarrollo del "estilo taller"
Aunque el desarrollo "estilo taller" es sólo una metáfora de la forma de desarrollo de software, cuando se analiza, realmente es un tema importante. Aquí, discutiré brevemente algunas de las razones por las que se adopta ampliamente el desarrollo de estilo taller. No hablaré sobre temas importantes como las llamadas "empresas estilo taller". "Métodos de desarrollo" y análisis de ingeniería. El contenido de gestión no se describirá nuevamente. Las palabras expresadas son opiniones personales, los observadores benevolentes tienen opiniones diferentes y las personas sabias tienen opiniones diferentes.
El "estilo taller" mencionado aquí se refiere principalmente al modelo de producción de los talleres artesanales tradicionales. El llamado modelo de producción estilo taller es similar. La situación general es: un "artesano" que domina una determinada habilidad dirige a unos pocos "amigos" que no requieren muchas habilidades para llevar a cabo todo el proceso de producción. Son "enseñados oralmente por su maestro", otras personas básicamente no pueden involucrarse. El proceso de producción lo organiza el artesano de acuerdo con su propio conjunto de "reglas". No hay necesidad de reglas o sistemas, y mucho menos de "planes" o "programas". La "autoridad técnica" del artesano en el taller hace que el jefe no se atreva a "señalar" sobre él, de lo contrario "dejará el trabajo", y el éxito o fracaso del asunto depende de la capacidad del artesano. En tal situación, el proceso de producción es básicamente desordenado y sin restricciones, y es casi imposible hablar del papel del jefe como "gerente". Incluso está a merced de los artesanos, a menos que el jefe sea un artesano muy hábil.
Si el proceso de desarrollo de nuestra empresa de software se compara realmente con el significado de taller, entonces todos nuestros pilares técnicos de desarrollo de software estarán furiosos. Después de todo, la industria de TI se llama industria de "alta tecnología". ¡Y comparar a nuestro personal técnico clave que domina sus habilidades con los "artesanos" en pequeños talleres no es de ninguna manera una calumnia mala e insultante! Pero desafortunadamente, el proceso de desarrollo de la mayoría de nuestras aplicaciones de software es más apropiado como metáfora del "desarrollo estilo taller".
Para ser justos, hemos logrado muchos proyectos exitosos de desarrollo de aplicaciones de esta manera. Incluso se puede decir que este método apoyó la carrera inicial del desarrollo de software. Por ejemplo, en la era DOS, muchos maestros de programación de computadoras nacionales desarrollaron una gran cantidad de productos de software personal populares, como CCDOS de Yan Yuanchao, fuente Wubi de Wang Yongmin, 2.13 de Wu Xiaojun, CCED de Zhu Chongjun y WPS de Qiu Bojun, etc. La era de DOS fue una era de heroísmo individual, donde una persona podía llevar la batuta.
Si admite que nuestra industria artesanal nacional milenaria está respaldada por los artesanos en los talleres, entonces, como industria de desarrollo de software de aplicaciones con solo 20 a 30 años de historia, sigue nuestra tradición nacional. y debería No es una pena decirlo. Del mismo modo, parece comprensible que hayamos heredado algunos modelos de producción de nuestros antepasados en la era DOS.
Sin embargo, todavía hay demasiados proyectos fallidos en nuestro "taller". Este fracaso se manifiesta como una inacción inalcanzable, como un ciclo de desarrollo incontrolable, o como un fracaso del proyecto. usuarios, o se manifiesta como una pérdida grave al final del proyecto. La miseria de este fracaso está más allá de nuestras expectativas, por lo que no sabemos qué hacer. Sumado a la grave escasez de personal técnico y fondos, el desarrollo y la gestión de software están pasando apuros.
En una empresa de software estilo taller, muchas cosas están instaladas en la mente de los desarrolladores. A menudo, toda la empresa quedará paralizada sólo porque uno o dos desarrolladores clave se van. La apuesta recae enteramente en una o dos personas, y el riesgo de inversión de capital es muy alto. Si uno de los pilares de I+D encuentra otro trabajo, la inversión de la empresa y otras inversiones se desperdiciarán. El modelo de operación estilo taller obstaculiza seriamente el crecimiento. de las empresas de software.
El desarrollo de software en sí es de hecho un trabajo complejo, difícil y arriesgado. Durante décadas, los expertos y académicos de la industria del desarrollo de software en el país y en el extranjero han resumido los fracasos en una gran cantidad de proyectos fallidos. Con la experiencia y las lecciones aprendidas, se han creado y aplicado sucesivamente teorías relevantes para guiar la práctica del desarrollo de software y se han logrado ciertos resultados. En el proceso de desarrollo del proyecto, extraemos lecciones del proceso de ingeniería general para establecer la "teoría de la ingeniería" del desarrollo de software. En términos de métodos de desarrollo, resumimos el método de análisis estructurado, el desarrollo de componentes, el desarrollo de sala limpia y los objetos más respetados actualmente. Método de análisis y desarrollo orientado, etc., existen algunos sistemas maduros como CMM e ISO en la gestión de calidad del desarrollo de software. Estas teorías y métodos estandarizados se han vuelto cada vez más maduros y perfectos a través de la mejora y el desarrollo continuos, y han desempeñado un papel rector revolucionario en la gestión de ingeniería y la implementación estandarizada del proceso de desarrollo de software.
De hecho, cualquier desarrollador de software profesional ha tomado el curso "Ingeniería de software" en la universidad. Todos los conocimientos teóricos mencionados anteriormente están completamente cubiertos y el contenido específico no se discutirá aquí. Al observar estas teorías rectoras y los métodos de desarrollo que adoptamos, decimos que el desarrollo estilo taller tiene ciertos usos para proyectos de desarrollo de software de aplicaciones pequeñas y no viola en cierta medida la teoría del desarrollo rápido El proceso de desarrollo a pequeña escala; Los proyectos de software (sin mencionar el software de mediana y gran escala) deben cumplir con los principios y métodos de la teoría de la ingeniería e implementar una gestión estandarizada, de lo contrario, el riesgo de falla acompañará a todo el proceso de desarrollo y se volverá cada vez más grave. será mayor en la etapa posterior y, una vez que falle, las pérdidas económicas serán enormes.
Entonces, dado que existe una teoría de ingeniería de este tipo, ¿por qué a menudo no la adoptamos e implementamos fielmente de manera generalizada? ¡Este es el quid de la cuestión y vale la pena explorarlo! En resumen, existen principalmente las siguientes razones:
En primer lugar, el mercado no comprende lo suficiente la importancia del desarrollo de la ingeniería de software y no cuenta con un amplio apoyo.
¿Qué incluye el propio "sistema de software de aplicación"? Los usuarios a menudo se limitan a una comprensión superficial de los "programas que se ejecutan en una computadora". No saben que también debe haber planificación, investigación y análisis, soluciones, diseño, supervisión de calidad, pruebas, capacitación, documentación del sistema, etc. etc., preguntas como "¿Qué hace el programa? ¿Qué objetivo debe lograr?" generalmente no reciben atención subjetiva, y es aún más difícil comprenderlo fundamentalmente.
La razón de esto es que hoy en día, cuando la teoría de ingeniería estandarizada ha madurado, todavía utilizamos un modelo de desarrollo estilo taller para la producción. La construcción de información ha llegado a un período en pleno apogeo y la mayoría de los usuarios tienen poca comprensión. de sus aspectos esenciales todavía se limita a la comprensión de que "la máquina reemplaza el trabajo manual". No saben casi nada sobre el rendimiento, la adaptabilidad y la seguridad que deben tener los productos de software, y ni siquiera son capaces de comprender el alcance funcional. de un sistema de aplicación que necesitan bien definido. De esta manera, los usuarios rara vez imponen requisitos de producción sustanciales a las empresas de desarrollo.
Los usuarios suelen depositar sus expectativas en la empresa desarrolladora que eligen, pensando que todos los problemas serán resueltos por el desarrollador. En este caso, no pensarán en la posibilidad de un fracaso en el desarrollo de software (pensando que es asunto del desarrollador) y, por supuesto, no comprenderán los factores de riesgo que pueden conducir a un fracaso en el desarrollo y no defenderán el uso de la ingeniería. métodos estandarizados. Vienen a limitar el proceso. Lo que no sabían es que los desarrolladores violaron fácilmente su "alta confianza". Muchos usuarios descubrieron algunos problemas sólo después de que el proyecto se había llevado a cabo durante mucho tiempo y sólo tuvieron disputas con los desarrolladores cuando el proyecto estaba a punto de completarse. o durante la fase de prueba, pero a menudo son los usuarios los que finalmente admiten la derrota, porque un profano en software se enfrenta a un desarrollador "experto" y, obviamente, sólo puede admitir ante una gran cantidad de "hechos" que era suyo. errores que llevaron a funciones incompletas y retrasos en el proyecto...
La existencia generalizada de estos grupos de usuarios "ignorantes" es un terreno fértil para que sobreviva el "desarrollo estilo taller" y cultive la vitalidad de los "talleres". Dado que lo que los usuarios quieren es una aplicación que incluya su función de planificación y pueda "ejecutarse", ¿por qué perder tiempo y energía en algún proyecto y simplemente escribirlo? Si no tiene ese tiempo, también puede encontrar algunas razones para tratar con los usuarios "quisquillosos".
Sin un sistema de gestión estandarizado, es imposible para las empresas de software crear conciencia sobre "servicios integrales para la construcción de información del cliente". La empresa no tiene la capacidad de incorporar los requisitos del proceso de ingeniería en la planificación de la implementación de la aplicación. En este sentido, son en realidad las empresas de software tipo taller las que han arruinado su propio futuro.
La falta de comprensión de los usuarios sobre el software de aplicación y los procesos de desarrollo conduce a una subestimación de los costos de los productos de software y los ciclos de desarrollo, lo que hace que las empresas de software no puedan invertir más mano de obra y fondos para mejorar la gestión y los estándares de la organización de desarrollo en su totalidad. proceso de ingeniería.
En segundo lugar, los gerentes de las empresas de desarrollo de software no toman en serio la teoría de la gestión estandarizada, la conciencia del riesgo es indiferente y la organización del personal y la inversión de capital son insuficientes.
La llamada gestión estandarizada consiste en gestionar científica y metódicamente el proceso de implementación del proyecto con base en la teoría de la ingeniería, lo que requiere un conjunto completo de especificaciones operativas y mecanismos de supervisión.
Para las empresas de software de cierta escala, deben tener un conjunto completo de sistemas de gestión técnica, incluidas instituciones de gestión eficaces, dotación de personal y sistemas de gestión perfectos. El sistema de gestión debe formular estrictamente los pasos del proceso de producción y los métodos de supervisión, y debe haberlos. un sistema de supervisión eficaz por parte de personal dedicado; es necesario tener una dirección de desarrollo definida y formular un plan a largo plazo para la empresa, establecer un equipo técnico con varios niveles técnicos y direcciones técnicas; es necesario formar una cultura corporativa unida, ascendente y cohesiva. Especialmente para el proceso de desarrollo de software, debemos implementar resueltamente las teorías y métodos de gestión de ingeniería resumidos y formados por sus predecesores, lo que determina el destino de una empresa de software.
La industria del software es una industria de alta inversión, alta rentabilidad y alto riesgo con un fuerte potencial de crecimiento. Antes de querer obtener altos rendimientos, primero debes considerar cómo evitar riesgos y cómo crecer y expandirte. Los riesgos acompañan todo el proceso de desarrollo de sistemas de aplicaciones. Una vez que los riesgos están fuera de control, los resultados suelen ser fatales para las empresas de software. Las empresas de software de estilo taller han probado algo de dulzura en el desarrollo de software de pequeñas aplicaciones al estilo de taller, pero no son conscientes de los posibles riesgos y crisis, y se muestran complacientes con su modelo de desarrollo "formado". , la adaptabilidad del mercado es baja y las crisis internas están presentes en todas partes dentro de la empresa. Es una lástima que los responsables de las empresas de software a menudo no se den cuenta de esto. La fácil obtención de beneficios a corto plazo conduce al fracaso de la empresa.
De acuerdo con la teoría de la ingeniería y los requisitos de gestión estandarizados, las empresas necesitan invertir más mano de obra y recursos financieros en: gestión de relaciones con los clientes, revisión de resultados de análisis y diseño, gestión de procesos optimizada, gestión de calidad, etc., en lugar de Soporte humano para la implementación del código. En comparación con el modelo de desarrollo estilo taller, los gerentes corporativos primero piensan en invertir demasiado, pero no ven la crisis de pérdidas causada por los riesgos del desarrollo estilo taller. Por el contrario, no apoyarán activamente la ingeniería para mejorar la eficiencia del desarrollo. confiabilidad del sistema Desarrollo; sin el apoyo humano necesario y la guía del proceso, los intentos del equipo del proyecto de estandarizar el desarrollo son débiles e infructuosos. En este caso, es imposible tener actividades prácticas activas y establecer un mecanismo sólido para apoyar el desarrollo de especificaciones de ingeniería.