1. Decidir cuál es el lenguaje adecuado para implementar ese proyecto. En Onigma, elegí C ++ para el agente de Windows (velocidad y memoria), servidor en C # (gran integración de Active Directory, código administrado, gran API de base de datos). En Spot.IM elegí RoR para la API web, Objective C para iPhone (Hay otras opciones), Java para Android (Ambos dispositivos móviles son nativos), Redis para el almacén de datos.
2. Elija los marcos que usará su equipo y encuentre las personas que pueden dominarlos: AngularJS para el marco del lado del cliente, Rails y Event Machine para los servidores.
3. Elija los marcos que su equipo NO utilizará: Nodo JS, por ejemplo.
- ¿En qué punto tienes que tener tus propios servidores?
- ¿Qué es mejor: producir trabajo de calidad o hacer las cosas?
- ¿Cuál es el orden del curso para desarrollar software?
- ¿Para qué se puede usar Python? ¿En qué IDE se puede desarrollar Python?
- ¿Cómo es la vida en las pruebas de software?
4. Elija qué servicios externos implementar. Usamos:
4.1. Pusher: HTML5 WebSocket Powered Realtime Messaging Service,
4.2. Redis-Cloud
4.3. Honeybadger
4.4. Heroku
4.5. Búsqueda elástica (no elegí uno todavía)
4.6. Enviar cuadrícula
4.7. Twillio
4.8. Cloudinary
5. Decidir sobre el control de origen: Github
6. Decidir sobre el método de ramificación y liberación: flujo de Git
7. Decidir sobre el diseño del protocolo
8. Decidir sobre la Convención de codificación
9. Identifique los cuellos de botella del rendimiento operativo y resuélvalos a tiempo
10. Asegúrese de ejecutar la operación de inicio es menos costosa que todas las otras compañías competidoras en su campo.
11. Asegúrese de que el producto pueda estar listo para cuando lo necesite; trabaje con el presupuesto.
12. Decida el tamaño del equipo y el tipo de programadores que necesitará para construir el proyecto.
13. Encuentre gerentes excelentes para administrar la operación (un verdadero arquitecto de software no tendrá tiempo para administrar). Necesita profundizar en los detalles diariamente. Concéntrese en ciertos aspectos del software que está creando y resolviendo problemas.
14. Asegúrese de que sus programadores entreguen
15. Asegúrese de que sus programadores usen comentarios.
16. Asegúrese de que sus programadores implementen pruebas automáticas si es posible.
17. Despide a un mal programador (Otra discusión: cómo reconocer a un mal programador)
18. Entregar o explicar por qué no cumplió con la fecha límite (las personas no tecnológicas generalmente piensan que es responsabilidad del gerente de I + D, están equivocados)
19. Por último, pero no menos importante, implemente personalmente parte de la lógica empresarial y los marcos del proyecto. Con solo revisar el código, el impacto y la subestimación siempre son mínimos.