Defina su problema y requisitos: averigüe con precisión qué quiere construir y por qué. Está bien si esto cambia con el tiempo, pero debe comenzar con una idea concreta. Escribir esto es una buena idea.
Haga un plan de alto nivel: determine cómo serán los componentes de su sistema y cómo encajarán entre sí. Cada componente debe desempeñar un papel limitado y bien definido. Probablemente también sea una buena idea trabajar en esto en papel.
Elija su plataforma: decida a qué hardware y sistema operativo desea apuntar y qué lenguaje de programación y bibliotecas servirán mejor a su objetivos (que ya conoce lo suficientemente bien como para usarlos o está dispuesto a aprender en el camino). Es posible que deba apuntar a API específicas del sistema operativo. Intente determinar cuáles serán.
Inicialice su proyecto: utilizando el administrador de paquetes y el sistema de compilación asociado con su idioma y bibliotecas, inicialice un nuevo proyecto. Debe haber funcionalidad para integrar/vincular bibliotecas, compilar/ejecutar el proyecto y ejecutar pruebas. También debe controlar la versión del directorio.
Comience a crear prototipos de componentes y escribir pruebas, todo mientras realiza estos cambios: construya cosas de acuerdo con el rol que espera que desempeñen en su sistema. Escriba pruebas para asegurarse de que se comporten como se espera, en salidas triviales y no triviales, ejerciendo idealmente la mayor cobertura de código posible. Revise su código para asegurarse de que sea básicamente comprensible, mantenga las invariantes que espera y maneje los casos extremos correctamente. Cada vez que complete un pequeño cambio o mejora, comprométalo.
Ponga algo en marcha: si tiene que experimentar mucho, intente que algo básico funcione, luego paso a paso cambios que ha introducido en el control de versiones. Si tiene un cambio grande y arriesgado o desea desarrollar alguna funcionalidad nueva que sea en gran medida independiente de otra funcionalidad, inicie una nueva rama y combínela una vez que pueda examinarla.
Integre y perfeccione: una vez que tenga los componentes que ha probado, escriba código para integrarlos y casos de prueba para su integración. En este punto, debería tener algo parecido a su programa completo previsto funcionando.
Pagar la deuda: una vez que tenga una nueva función o comportamiento funcionando, intente pagar la deuda técnica refactorizando su código para que sea más fácil trabajar con. Complete su código fuente con documentación.
Formulario de solicitud