Aquí hay algunas cosas que hice y algunas cosas que desearía haber hecho en mi proyecto actual. Solo fui yo durante los primeros tres años, pero hemos agregado algunas personas más en los últimos meses y no está yendo tan bien como esperaba.
- Utilice el control de versiones, preferiblemente git o mercurial
- Escribir pruebas unitarias. Siempre me he burlado de ellos porque solo prueban los casos en los que has pensado, y probablemente ya pensaste en ellos cuando escribiste el código que estás probando, pero una vez que tu proyecto crece y agregas personas al equipo, tú desearía que lo hubieras hecho.
- Tenga servidores de desarrollo, prueba y producción separados para que pueda hacer que la gente vea sus cosas en la prueba mientras rompe cosas en el desarrollo. Use un sistema de etiquetado o ramificación en su control de versiones para que siempre pueda volver al código que se ejecuta en cada servidor. Si surge un problema en la producción mientras está trabajando en una nueva característica de whizz-bang en desarrollo, desea poder dejar de lado la nueva característica y corregirla en la versión de producción.
- La implementación del código en dev debe ser automática tan pronto como se registre. La implementación para probar y la producción debe ser automática o con un solo clic.
- Asegúrese de que su jefe y otras partes interesadas realmente miren el sitio en la prueba antes de implementarlo en producción. Trate de involucrar a algunas de las personas que realmente usarán el sitio en las pruebas de usabilidad. Escúchelos, pero no los deje diseñar la cosa: si Henry Ford hubiera escuchado al público en general, habría diseñado un caballo más rápido.
- Asegúrese de que su código tenga una clara división de responsabilidad: no mezcle el control de acceso en medio de la lógica comercial y la interfaz de usuario.
- Use un marco web como el programa de arranque de Twitter. A veces estarás luchando con eso, pero te quitará una gran parte de la carga de tener una interfaz de usuario constante de tus manos.
- Use un marco JS como Angular. Estoy usando el antiguo y simple CoffeeScript declarativo y lo lamento.
- Use un buen marco de back-end. He estado usando Django y tiene sus defectos: si tuviera que hacerlo nuevamente, probablemente usaría un matraz o algo más ligero. Asegúrese de que sea compatible o, al menos, no le impida hacer AJAX y trabajo asincrónico de back-end.
- Trate de lograr que las partes interesadas acuerden no admitir ninguna versión de IE anterior a 10. IE 8 es una pesadilla, especialmente en un sitio de intranet porque actúa como IE 7 sin ninguna buena razón.
- También pídales que acuerden un tamaño de monitor objetivo. Mi jefe sigue queriendo meter más y más cosas en una sola línea y tengo que demostrarle que podría funcionar en su iMac 5k, no cabe en un monitor estándar de 1280 × 1024 con fuentes de sistema predeterminadas.