I came across an article where the author highlights two types of software developers:
🅰️ Type 1: Believes that if a problem isn’t technical, it’s easy to solve just by asking people to do something. They have faith in Engineering with a capital E, where there is mathematics, physics, and applied science.
🅱️ Type 2: Realizes that people are at the core of their work and not all problems are easily solved. They understand that engineering in the real world can be chaotic because it’s about creating products for people.
🔹 Difference in approaches:
Task: Ensure code style compliance in the project.
Type 1: “Easy, let’s create a code style guide and ask developers to follow it.”
Type 2: “How do we motivate developers to study and adhere to the code style guide?”
Once upon a time, I probably belonged more to the first type, but with experience, I began to understand that the human factor is everywhere, and you need to think and assess all risks thoroughly. Even with this example, from experience, I can say - I’ve encountered many projects where proactive people shouted, “Here’s CodeStyle.md, let’s follow it.” But more often than not, it was some copied giant file with 4,000 lines that nobody read, let alone followed. It was just for appearance, and everyone ignored it because no one bothered to adapt it to the team or even analyze if it was really needed.
đź’ˇ Conclusion: When dealing with people, things get more complicated. We just need to accept this fact and start working on the task from this perspective.