The way I tend to picture roles in software is in analogy to my old job in aerospace.<p>We have scientists&#x2F;researchers who focus on the theoretical aspects. We have engineers who have a reasonable understanding of the theoretical aspects and tend to work in the design space. And we have craftsmen&#x2F;technicians who have a reasonable understanding of design and tend to spend most of their time coding.<p>A sort of pastime of mine is to follow arguments on technical subjects and see if I can see these groups talking at cross purposes because they see the world from their perspective. Although if it relates to Haskell I don&#x27;t bother as it&#x27;s a gimme.<p>Where I do see a difference between software and aerospace is that, in software, there&#x27;s a more noticeable feeling of hierarchy. To paraphrase: Haskellers look down on C programmers look down on Javascript programmers (like some sort of geeks&#x27; That Was The Week That Was sketch).<p>Maybe it was like this in aero too (I was quite young). What I do know is that I was in awe of the skills of the crafties I worked with. Unless you&#x27;ve watched a chap spray paint a propeller to a finer tolerance than a purpose built robot, you only have a partial understanding of the word exquisite.