Software engineering, or generally IT jobs, are highly social because all big software projects or products are built by teams of professionals. When humans work with humans, all kinds of conflict can emerge, and they are often not as easy to fix as IT problems, especially in distributed teams with less offline human interaction. This article is about Fritz Riemann’s book “Anxiety”, which answers the question “What do people fear and how do they cope with it?”.
What does the math tell us about how many job applicants we should look at before hiring one? While onboarding our new employees, how can ideas from the TCP networking protocol help us to identify the optimal workload for them? Why would giving employees unlimited vacation days most likely lead to less vacation being taken? Algorithms to live By - The Computer Science of Human Decisions gives some fascinating insights into such questions.
The Phoenix Project is a novel that has been declared a must-read by many IT executives. It provides smart solutions to the problems that most IT companies struggle with and is at the same time educating to read. What principles does it teach, and where does it fall short?
Why do American coworkers always communicate so clearly and directly, but at the same time criticize rather indirectly and cushioned? When do Asian coworkers finally jump in and say something in a meeting? How do German coworkers get done anything innovative in their fixated planning madness? After having experienced many strange situations in projects with people from around the world, I found Erin Meyer’s book The Culture Map to be so insightful that I would declare it a must-read for any software professional who works with or in international teams.
What separates the truly great software developers from the average ones? People have lots of opinions about this, but it’s often hard to describe what makes the code of a great engineer so good - and what part of it novice programmers should really try to learn from. John Ousterhout’s book A philosophy of Software Design aims to answer this question and actually introduces some extraordinarily appropriate vocabulary for your next discussion about software quality.