¿Qué técnicas ayudan a escribir un software en un entorno de alta interrupción?

Piense en esto como una buena oportunidad para aprender una modularización extrema, que de todos modos es una buena idea. Supongo que eres un profesional independiente o un desarrollador pequeño e independiente. Si es así, tú y yo tenemos algunas cosas en común, ya que eso es lo que he hecho durante 25 años.

Aquí hay algunos trucos:

1. Averigüe a qué hora del día es más tranquilo (después de que los niños se hayan acostado, sus clientes se hayan cerrado por el día, etc.), y reserve un bloque de tiempo para codificar durante ese interludio pacífico. Haga de este su momento principal de codificación, pero durante el resto del día, intente hacer algo cada vez que haya pausas.

2. Planifique su código con cuidado; divídalo en las unidades de prueba más pequeñas y fáciles posibles. No se preocupe si tienen sentido en términos de la arquitectura “perfecta” en un entorno más estructurado. Implemente y pruebe cada segmento de código como una sola unidad. Si no eres religioso acerca de TDD y las pruebas unitarias, ahora es el momento de comenzar a desarrollar los hábitos correctos para garantizar un trabajo de alta calidad. Te encontrarás escribiendo un código más simple y más comprensible. Haz tu mejor esfuerzo para asegurarte de que ningún método requiera más de unos minutos para escribir y probar. Si no funciona para usted, divídalo en unidades aún más manejables.

3. Si practica Agile, ahora es el momento de * DROP IT. * No funcionará a menos que tenga las horas para bloquear todo lo demás. Al principio, este método puede parecer la cascada del mal, así que asegúrese de tener muy claras las especificaciones y el diseño de cada módulo antes de hacerlo. Además, si no está seguro sobre el sistema, verifique doble y triplemente para asegurarse de que funciona, pero no produzca cargas de documentación que lo encerrarán. Solo mantenga suficientes notas para recordar sus decisiones. .

4. Utilice un sistema de gestión de cambios real que servirá como una lista de verificación, asegurándose de que realmente pruebe cosas, marque todas sus i y cruce todas sus t. Esto descarta a Git, básicamente dejándolo con la opción de algo como Aegis 4.24. Es el único CMS que lo obliga a mantener las tres leyes de Miller de gestión del código fuente, que son las siguientes:

1. El número de interacciones dentro de un equipo de desarrollo es O (n!) Sin acceso controlado a la línea de base, en cuyo caso puede reducirse a cerca de O (n), siendo n el número de desarrolladores y / o archivos en el árbol de origen, el que sea más grande.

2. La línea de base DEBE estar siempre en funcionamiento.

3. El proceso de compilación / construcción del software se puede reducir a un gráfico dirigido y acíclico (DAG), también conocido como Recursivo Hacer que se considere perjudicial.

Haría que hubiera una elección. No puedo hacerlo a largo plazo con constantes interrupciones. Período. En casa por un tiempo fue un infierno tratar de hacer algo con la familia pidiendo algo o tratando de hablar, etc. cada 15 minutos (antes de mudarme). No es que no me guste mi familia, es solo que no puedo trabajar así. En el trabajo es el mismo trato. En general, eso es lo que escucho de otros desarrolladores también.

Por lo tanto, hacer que se convierta en una opción podría significar explicar esto a las personas que lo interrumpen y pedirles que no lo hagan, podría ser cerrar la puerta cuando necesite concentrarse, solicitar una oficina diferente o explicarle esto a su gerente. O si no trabajas en la oficina, podría ser encontrar una buena cafetería que te dé espacio para pensar en privado. O podría estar renunciando.

No tengo ningún problema con eso en mi trabajo, pero si fuera realmente inevitable, entonces probablemente dejaría de hacerlo. Simplemente no hago un trabajo tan bueno, y odio trabajar así si tengo una interrupción larga y / o aleatoria en momentos aleatorios. Es una tortura

El flujo es algo muy útil y agradable, y las interrupciones constantes me lo roban.

Soy programador y la única forma en que puedo concentrarme y escribir programas es cuando soy mío. Ahora a veces tienes que ser grosero para ser tuyo, y la única forma en que puedes ser tuyo es no entretener a los demás cuando te estás concentrando .

Hablando francamente, no tengo la capacidad de ser grosero en público y me gusta ser amable con todos mis colegas. Entonces, la única forma en que puedo concentrarme es colocándome un auricular grande alrededor de mis oídos cuando estoy en la oficina, con música o sin música, y sumergirme en la computadora. De esa manera, si alguien entra en mi oficina y me ve de esa manera, solo molestará cuando sea necesario. Si todavía me molestan, actúo como si no entendiera una palabra de lo que dicen, ya que estoy en un mundo diferente, es decir, en el mundo de la programación.

En casa, soy absolutamente grosero. Desafortunadamente, mi esposa tiene que soportar mi peor parte, pero es por eso que me casé con ella, para poder ser yo misma. Amo a mi esposa por esa única razón. Sin duda tengo que ofrecerle sus regalos más tarde, pero ella se lo merece por dejarme a mí misma.

Sin embargo, nunca se programó en el entorno del cliente, ojalá alguien responda eso por usted. La conclusión de mi respuesta es que necesito una concentración total mientras programo, nada puede reemplazar eso para mí.

Escriba TODO comentarios como marcadores de posición para el código que aún no se ha escrito. Muchos de ellos. Ayudaría si las cosas que estás construyendo son modulares.

Por supuesto, esto supone que ya tiene el flujo completo del sistema. Las cosas podrían ponerse difíciles si hay cambios frecuentes e interrupciones frecuentes.