Inspired by Steve Ballmer's performance I decided to give an overview of different types of software engineers' characters. Various advices for self-improvement were also provided. Presented at local IT event - IT Weekend.
DISCLAIMER: All images were found either via Google Image Search, or on flickr.com
3. newbie (aka n00b)
• tabula rasa
• no experience
• a lot of energy
• easy to hire
• work for food (cheap)
• lacks self-confidence
• knows everything
4. young genius
• expert knowledge of some
technology / programming
language
• not!
• rewrite everything!
• in theory, there is not difference
between theory and practice
5. princess
• thinks everybody around
should work hard to support
him
• e.g.
• latest build is broken - can’t
work
• bug in somebody’s code -
won’t fix
• chair is uncomfortable -
loose 80% of performance
6. analyst
• any problem / task / algorithm
looks too complex to solve
• paralysis by analysis
7. architect
• prefers elegant architectures
over elegant solutions
• OOP, patterns, etc.
• no KISSes
8. x#ятор
• quick results
• with lots of hacks, shims, bugs
• needs support staff (plumbers)
to fix and polish a feature
• e.g.
• 1 day to implement
• 1.5 months to fix bugs and
polish
• some companies love them,
some hate them
9. + $500
• work for moneyz, no strings
attached
• jumps from company A to B to
C for higher salary / dev level
• projects / tasks don’t matter
10. slacker
• coffee / smokes / game breaks
every 15 minutes
• always “busy”
11. evangelist
• technology / company /
process X will rule the world
• other technologies /
companies Y are dumb
• go tell the world!
12. romantic
• programmers are of a special
kind
• software is making our world a
better place
13. shy guy
• avoids communication with
colleagues
• prefers one-man tasks /
projects
• skips team-building events
14. communicator
• talks with everybody -
colleagues, clients, random
people
• blah-blah-blah
15. tale-teller
• talks about imaginary personal
achievements
• generates over 900 ideas a day
• but won’t take part in their
implementation
16. adventurer
• not shy to learn new
technologies / programming
languages / platforms
• let’s do it!
17. pragmatic
• uses common sense
• uses own and other’s
experience
• continuous self-improvement
• hard to find, takes time to raise
18. hacker
• can tackle practically any
problem, even with math
• and finish it on time with good
quality
• fixes impossible bugs
• gets things done!
19. superstar
• do not exist, probably
• do you know one?
• should be very expensive and
hard to find / hire