More on this book
Kindle Notes & Highlights
La primera causa es la diferencia entre estimar y planificar.
Desde que se empezaron a utilizar ordenadores y programas informáticos siempre ha habido un requisito constante: Los usuarios querían más velocidad de cálculo, volúmenes más grandes de proceso y nunca era suficiente.
La Ley de Moore postulaba que el número de circuitos por unidad de superficie se duplicaba cada dos años. Esta ley de crecimiento exponencial era más rápida que cualquier esfuerzo de ingeniería humana para el 90% de las aplicaciones existentes.
los nuevos programas multicore son más difíciles de ensamblar y de razonar sobre ellos. A ello se une la aparición de posibles nuevos bugs difíciles de reproducir debido a que ahora aparecen errores debido a posibles ordenaciones distintas de eventos.
procesos de ejecución propiamente dichos y que se comunican mediante otros procesos escribiendo en porciones de memoria compartida.
sincronizar el acceso a esas porciones de memoria compartida.
se utilizan mecanismos ligados al sistema operativo como los mutex, semáforos, variables de co...
This highlight has been truncated due to consecutive passage length restrictions.
Programación concurrente quiere decir que existen distintos procesos de cómputo que pueden ...
This highlight has been truncated due to consecutive passage length restrictions.
un único espacio de memoria (estaríamos hablando de threads en uno o varios cores)
distribuirse a varias máquinas que no comparten el mismo espacio de memoria pero conectadas ent...
This highlight has been truncated due to consecutive passage length restrictions.
La programación mediante actores alivia este tipo de problemas al utilizar transparencia referencia. El código que invoca llamadas a esos actores no sabe si los actores residen en la misma máquina o están en la otra parte del mundo. Las llamadas no tienen en cuenta la localización física del agente y es responsabilidad del framework el enrutado y control de la calidad en la entrega del mensaje.
En lugar de tratar de minimizar o protegerse de la aparición de errores, casi todos los frameworks de actores utilizan una estrategia de "déjalos fallar".
Los actores se suelen organizar en torno a jerarquías de actores.
Mantiene un estado interno que no es accesible desde fuera del actor mismo
Tiene una cola de entrada de mensajes (mailbox) que es la forma mediante la cual el resto del sistema se comunica con el actor.
Cuando un actor consume un mensaje, esto puede dar lugar a...
This highlight has been truncated due to consecutive passage length restrictions.
Cambiar su estado interno en función del mensaje Crear un nuevo conjunto de actores Enviar una seri...
This highlight has been truncated due to consecutive passage length restrictions.
paradigma de programación similar al de los objetos
las acciones de forma concurrente en lugar de secuencialmente como hacen los objetos.
los actores reciben mensajes y los procesan, pudiendo ignorar aquellos mensajes que no conocen cómo procesar.
La aproximación que utiliza el modelo de actores para la gestión de errores es la de "dejarlos caer"; es decir, si hay algún problema, el actor terminará y abortará la ejecución y es responsabilidad del supervisor decidir qué hacer ante el fallo ocurrido.
acciones:
Indicarle al actor que continúe su ejecución en el estado previo al fallo Reiniciar al actor Apagar y finalizar la ejecución del actor Escalar e informar del error ...
This highlight has been truncated due to consecutive passage length restrictions.
la industria del software, un negocio que cada vez más, requiere altas dosis de creatividad.
Objetivo número uno y tu obsesión como participante en un proyecto técnico: trabajar con el mejor talento y generar el entorno que le permita rendir con el mayor grado de motivación.
El equipo en su conjunto es la energía y el motor que mueve la organización y hace posible los sueños de los visionarios.
combina personal súper-especializado con generalistas.
Existen muchas tareas que requieren años de práctica. Otras exigen perfiles menos def...
This highlight has been truncated due to consecutive passage length restrictions.
busca talento con experiencia en producciones similares y en puestos semejantes. Replica casos de éxito.
Recicla a quien haya demostrado inteligencia y eficacia, incluso en un puesto no necesariamente relacionado.
Pon a prueba a cada candidato en condiciones similares a las que desempeñará en su trabajo.
Cuando hayas conseguido tu nuevo fichaje, entrégale un pack de bienvenida que incluya la descripción de sus objetivos y toda aquella información que sea relevante para su trabajo.
El personal con menos experiencia necesita dirección. Asigna a personal sénior de la misma disciplina para ello. Ambas partes se beneficiarán del intercambio.
debriefing.
Haz preguntas abiertas sobre métodos y técnicas que hayan utilizado en otros proyectos. Permite la divagación y las conversaciones sin estructurar. Durante el proceso de adaptación, pide que den su punto de vista en base a su experiencia.
Emplea gente capaz de automotivarse,
Permite cierto grado de disidencia. Mucha gente se siente más confortable cuando su mesa de trabajo se vuelve más personalizada,
El poder del ego, la autoestima y la motivación es ilimitado. Si estos intereses no van en consonancia con el objetivo del proyecto, ¿por qué no apoyar social-clubs que permitan que personalidades afines disfruten dentro de la compañía?
¡Es importantísimo celebrar tanto los éxitos como los fracasos!
pequeños regalos:
zonas en las que sea posible mantener conversac...
This highlight has been truncated due to consecutive passage length restrictions.
Conocer el contexto corporativo y los planes de tu empresa ayudan a planificar el día a día, elimina incertidumbres y aumenta la confianza.
no ocultes el fracaso:
Utiliza elementos informativos cerca (¡no dentro!) de zonas comunes.
Reduce el número de desafíos y problemas sin resolver de cada proyecto.
Desde el punto de vista de un desarrollador (¡tu mayor valor!), la burocracia es aburrida
reduce la documentación en el proyecto a niveles razonables
A la hora de trabajar, intenta dar espacio. No detalles las tareas hasta niveles excesivos.
Ofrece el soporte y supervisión en caso necesario.

