Existen dos metodologías populares al crear una aplicación de software grande y compleja: Waterfall y Agile .
Waterfall se trata de crear una hoja de especificaciones detalladas que cubra todos y cada uno de los aspectos de la aplicación. Piense en un proyecto único que puede tardar meses o años en realizarse de acuerdo con los requisitos del negocio.
El objetivo de un enfoque similar es definir todos los recursos por adelantado y asignarlos en consecuencia. Es común que proyectos similares se salgan de control por varias razones, pero con la planificación adecuada y un equipo profesional, la compensación no será demasiado extraordinaria.
- ¿Por qué ninguna compañía, ni siquiera las grandes, adoptó el enfoque de PC de un hardware de nadie y un software de otro para dispositivos móviles como teléfonos y tabletas? Esta ha sido la razón del éxito de la PC, ¿por qué nadie parece interesado?
- No soy ingeniero de software por título o por profesión. He estudiado C y C ++ en el pasado y ahora quiero aprender nuevos lenguajes (especialmente Python y JavaScript), codificación, marcos, etc. como hobby. ¿Cómo debo comenzar?
- ¿Cómo es trabajar como ingeniero de software asociado en indiamart?
- ¿Cuáles son las verdaderas virtudes de un gran programador? ¿Cómo me convierto en uno?
- ¿Un nuevo grad SDE en Amazon codifica 8 horas al día en el trabajo? Si no es así, ¿cuánto se codifica realmente a diario?
Sin embargo, esto requiere mucha experiencia en la definición del conjunto de características, todas las capas intermedias, la infraestructura del servidor y lo que no. Es por eso que la mayoría de esos proyectos se quedan sin tiempo ni presupuesto.
El enfoque ágil es común en entornos de inicio y organizaciones más innovadoras. Se trata de mejoras iterativas. Comienza con el producto mínimo viable o el conjunto de características más pequeño para poner en marcha un proyecto. Con el tiempo, se expande por encima de los requisitos originales. No es improbable que el proyecto mute y evolucione, lo que a menudo requiere refactorizar porciones significativas de la base de código inicial.
- La primera metodología consiste en definir los requisitos desde el primer momento.
- El segundo requiere flexibilidad y adopción de los procesos comerciales en constante cambio y diferentes factores que convertirían un nuevo proyecto en uno complejo, como características complicadas, una gran cantidad de tráfico, incapacidad para servir ciertos tipos de medios o manejar un gran proyecto. volumen de entradas de la base de datos.
En cualquier caso, se trata de experiencia. Puede intentar aprender sistemas distribuidos y de gran escala usted mismo. Es un buen proyecto favorito, aunque cada aplicación compleja viene con su propio conjunto de problemas complejos.
En general, las aplicaciones de software robustas han comenzado de manera simple y ampliada con el tiempo. Se trata de usar patrones de diseño establecidos y paradigmas de arquitectura empresarial. Hay ciertos recursos iniciales que los ingenieros de software a menudo estudian por adelantado o durante los primeros años.
Una vez que esté familiarizado con los principales problemas de los sistemas a gran escala y los enfoques comunes para resolver problemas similares, puede comenzar a aplicar algunos de ellos en la práctica. Como desarrollador nuevo, normalmente trabajaría en una organización con más miembros del personal de alto nivel que están bien versados en situaciones similares.
Nuevamente, se trata de experiencia y aprendizaje continuo. Los desarrolladores senior han estado expuestos a situaciones similares y ya probaron esos enfoques con éxito en la práctica.
Mientras lee los registros de confirmación y explora otras aplicaciones de software, comenzará a notar patrones repetitivos que ocurren en diferentes niveles. Esas son ciertas capas de abstracción que se encargan del trabajo pesado.
Sea paciente, dedique un tiempo a mejorar sus habilidades profesionales, aprenda de los desarrolladores más experimentados y digiera cuidadosamente las aplicaciones existentes. Con el tiempo, se sentirá cómodo con todos ellos y será capaz de sugerirlos e implementarlos en proyectos complejos.