I'm a senior developer and consider myself very good at what I do. I have high expectations for how I believe software should be developed. I'm having a hard time finding a place to work that shares a similar view on the software development process.
Here's my modified version of The Joel Test that I ask potential employers during an interview.
- How do you determine the requirements for your system?
- How do you document these requirements?
- How are they prioritized?
- What does your schedule typically look like?
- Do you practice "test first" development?
- Can you "build" in one step?
- Do you build (and run automated tests) daily?
- Do you use source control?
- How do you manage releases?
- Do you have a bug database?
I find it surprising that many companies never speak to their users to determine future requirements, have no automated tests, do not use source control, cannot build their systems without an IDE, and do not manage bugs or releases. Further many of these organizations don't realize that they have a problem, and therefore are not interested in implementing them (one place even commented "Hey, We're process lite!)
My questions are:
- How do you identify the "good" places to work (i.e. the places I should be focused on getting hired at)? To this point, my network has been of little help here.
- Are my standards too high? Do organizations that practice development in the way I'm describing actually exist? I've developed this list by reading and listening to people like Spolsky, Fowler, and the Poppendiecks so I'm assume their writing are at least in part based in reality.
Thanks!