My previous post, on different types of programmers, triggered another thought that’s been sitting in the back of my head for quite some time: the difference, if any, between truly creative, but often a bit ‘chaotic’ people, let’s call them ‘Inventors’, and those who are very skilled in creating structure and order, but who sometimes are less keen on experimenting and testing ‘crazy’ ideas, let’s call them ‘Architects’.
Going back to the programmer classification from my previous post, based on my experience, there’s a second classification scheme possible over people who develop software: those who invent/create (come up with) new things and solutions, and those who make these solutions robust,extensible,testable, maintainable,undestandable etc, i.e. ‘industrial strength’, cleaning up the often unreadable mess created by the first group.
Perhaps a good label for the first category would be ‘hackers’ (in the original, positive connotation of that word) and the second group could parhaps be labelled ‘architects’ or ‘designers’.
Of course, in the real world, these two sets are not fully disjunct, there are ‘hackers’ who also are good ‘architects’, and vice versa.
But here, we are talking about abstractions, aiming to give us a vocabulary and categorization of ‘stereotypes’, to facilitate understanding of the theme.
With that new categorization in place, I no doubt belong to the ‘hacker’ set, I’m good at coming up with solutions, some of them ‘wild & crazy’, but they are not always very pretty nor very much inline with the ‘abilities’ listed above, while I see my pal Mikael being firmly and squarely in the ‘architect’ set, with a high degree of structure in his solutions. Anders H, another great software person, I see sitting solidly in the intersection.
Another way to express this difference perhaps is ‘creative chaos’ vs ‘structure and elegance’. Myself being firmly in the creative chaos category is further corroborated by a personality test I took a number of years ago, which placed me firmly in the ‘Creator/Innovator’-category of that test.
With these insights, I’m probably not the best person in the world for being responsible for any complex system architecture, but I’m probably pretty good at making that architecture work, with ‘smart’ if sometimes ‘complex’ solutions. 🙂