Sad to say, my time at Gliffy is at an end (:sniff:), so I'm heading back into the job pool. I was lucky to get some time in at Gliffy, because, living in Washington, DC, my opportunities for sexy cutting-edge jobs are about zilch. Instead, I'm facing a huge market of "Senior JBoss Portal Maintenance Archiect" type jobs.
I guess I should feel lucky that there's lots of positions out there, but I really don't want to be the cog in a huge machine. Gliffy has shielded me from the Horror That Can Be Consulting, so I need to keep my perspective in such trying times. So, calling on my experiences before Gliffy, I've made this handy rubric to make sure I explore all facets of a potential position.
I don't expect anyone to get all positives and no negatives (I've certainly never been anywhere that perfect), bit it's always good to know. For example, if I have to put up with PVCS, I better be sitting on an Aeron chair and be using a normalized database. Further, this is obviously in addition to standard questions regarding what the project is about (i.e. is it interesting) and what the people are like. A whole lot of this can be forgiven by being part of a great team or working on a really cool product.
Question | Points for | Points against |
How do you fare on the Joel Test? |
· High score
· Good explanations for missing items
|
· Low score
· Never heard of it
|
Describe your development process |
· Structured
· Easily described
|
· Overly draconian
· Lack of
· Not easily described
|
What kind of computer will I be using to develop? |
· Two monitors
· Mac
· Linux
· Administrator access
|
· Vague answer
· Small monitor
· Windows
· Locked-down
|
Do you block certain sites or applications on your network? |
· Open network
|
· Closed network
|
What is the physical environment like? |
· Good Chairs
· Private office
· Natural light
· Reasonable Temperature
|
· Old, crappy
· Bullpen style
|
Am I required or encouraged to use Windows? |
· No, few devs use Windows
|
· Yes
|
What collaboration tools do you use? |
· Wikis
· IM
· Bug tracking
· Sensible PM
|
· Email word documents
· MS-project
· SharePoint
· Other proprietary crap (e.g. eRoom, Documentum)
· No tools
|
What are some of your HR policies? |
· Few, if any
· Loose dress code
· Flexible schedule
|
· Draconian
· Dress code
· Core hours
|
Can I see the code I will be working with? |
· Letting me see it
· Meaningful javadocs/API documentation
· Structured, consistent style
· Sensible class names and file organization
· Sane build process
|
· Not letting me see it
· Mix of styles
· No javadocs
· Empty javadocs
· Convoluted file organization
· Broken build file
|
How do you do testing? |
· Have testers
· Do unit tests
· Maintain tests
· TDD
· Bug tracker
|
· Ad hoc
· Lip service to test-first
· No unit tests
|
What is your approach to configuration management? |
· Having an approach
· Git
· Database migrations
· Know the versions of 3rd party software/have a baseline configuration
· Organized
|
· No approach
· CVS
· Perforce, ClearCase, other closed crud
· Shared drives
· Can't describe versions/configuration
|
Can I see the database schema I'll be working with? |
· Letting me see it
· Normalized
· Sane names (no TBL_* bullshit)
· Synthetic numeric keys
· Referential integrity
· Documented!
· Versioned!
|
· Not letting me see it
· Unnormalized
· Dumb names
· Incorrect types
· String-based keys
· No constraints
· Undocumented
|
What else am I missing?