Different people get into software for different reasons, and they get into it differently, like almost anything else. For some people software engineering is a means to a end, for others it is the enjoyment. In reality most people fall somewhere on that spectrum of enjoyment, process vs product.
I believe I can get along with anyone. I’m not as good as my wife, she’s a meek sweetheart who everyone likes. But some of the most challenging relationships in your software career will happen from dealing with people whose raison d’etre is different than yours. One example is pacing: someone who loaves process but loves product might have a more sporadic schedule where they will avoid the work, psych themselves up, then finally take their medicine and cram. A classic example of this is probably how most of us did our homework, because homework sucks. Someone who enjoys software development won’t have an issue working at a more constant rate, until then end of development when the work becomes less interesting of course.
This is where a solid development system and scheduling comes into play, and scrum does a good job at this. The product people need regular checkups to reduce the amplitude and period of their cram sessions. The process people need regularly scheduled time to provide feedback on the target. Small companies can run without a solid system and be productive, but it isn’t sustainable. Like driving a car around in first gear, the wear on the engine will eventually catch up with you.