Technological Wanderings - joel on software http://www.technologicalwanderings.co.uk/taxonomy/term/120 en The Anti-Joel Test http://www.technologicalwanderings.co.uk/node/64 <div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Keywords:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/taxonomy/term/120">joel on software</a></div><div class="field-item odd"><a href="/taxonomy/term/121">stackoverflow</a></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>There is a famous list among developers called The Joel Test: <a href="http://www.joelonsoftware.com/articles/fog0000000043.html">http://www.joelonsoftware.com/articles/fog0000000043.html</a></p> <p>It gives a guide to how best to develop software. I don't agree with everything - e.g. writing code during an interview, but it's a good guide to best practise in keeping your software quality up and your developers happy.</p> <p>This list is all well and good if you're building a development team, or looking to work with one. Do they score 10? I'd like a job. Do they score 3? Let's keep looking...</p> <p>But what about appraising somewhere you already work? I found a question on stackoverflow.com (my new favourite website) which appealed to the streak of good old British negativity in me - The Anti-Joel Test. What aspects of what you see around you every day contribute to worst-practise, making development ever more difficult?</p> <p>Take a look here: <a href="http://stackoverflow.com/questions/901320/anti-joel-test">http://stackoverflow.com/questions/901320/anti-joel-test</a><br /> There are some jaded, real-world-affected people posting in there..</p> <p>I've compiled a list of my favourites, based on past and present experiences.</p> <dl><dt>Do you do your development work on the live production server?</dt> <dd>Many, many small web development companies do just this. A client has brought me onto a project where the original developers are doing exactly this, and they are a London based company with a very impressive website and portfolio! My first suggestion was a separate development environment per developer which I'm glad to say that they've taken up.</dd> <dt>Is the chief technology officer an accountant?</dt> <dd>This could work, if you're developing accounting software and they listened to advice.</dd> <dt>Is there a dress code which includes a suit and tie?</dt> <dd>I sat at a desk for years like this (though without a tie), as a developer and rarely seeing clients. Now I feel I have to wear a shirt and smart trousers to work - even when all around me are in jeans and t-shirt or the equivalent. What really drove my negativity up was when the on-site engineers at the company were told to start wearing ties. These are the people crawling around factory floors to change the cheap RAM in the machine we sold them last year.</dd> <dt>Is StackOverflow blocked at work?</dt> <dd>In general, and I've mentioned this before, don't block websites. If you have people looking at facebook all day, sort them out. Don't start down the slippery slope.</dd> <dt>Would management view time off to speak at a conference or other technical gathering relevant to your work as suspicious and/or unconditionally refuse it?</dt> <dd></dd> <dt>Do developers feel frustrated or stymied by managerial/organizational problems more often than technical ones?</dt> <dd></dd> <dt>Does your source control consist of physically backing up your source tree into a source.backup.n directory every time you want to make too many changes?</dt> <dd>It can work; the developer of Postfix reportedly works much like this - but then he also mentioned printing off submitted diffs and scouring them character by character to ensure quality. I started using RCS back in the mid-90s when I was still in school.</dd> <dt>Is the development team driven and controlled by sales people?</dt> <dd>There must always be an aspect of this, since you're producing something for a customer and the sales person is your interface to them. But there are times when this is taken to extremes - at a previous job, the sales people started to get a little too powerful and decided that they would no longer be sales people, but something like 'customer requirements providers' or some such rubbish. The effect of this was that they became project managers as well as sales, even with no project management experience and certainly no time to do it. And add to that a complete lack of understanding of development. And being in a different room with little interaction with developers. And the conflict of interest. There were a number of high profile failures due to this.</dd> <dt>Do you usualy promise to create the documentation after the software is finished?</dt> <dd>Or, is documentation not provided as part of the quote. Does the customer sign off the quote, then later demand documentation? Do they then demand that documentation provided by email is not enough and that they must have someone onsite to hand over a printed copy?</dd> <dt>Do you hire cheap people because they cost less?</dt> <dd>Cheap people are the driving force behind many companies. "The work was poor, but never mind, at least he is cheap."</dd> <dt>Are strategic alliances (instead of technical merrits) the main argument for resp. against the use of a technology?</dt> <dd>So much pain... F-Secure have brilliant UK sales people. They really got their hooks in with one sales team I worked with - even though we had constant problems with the product. One of the problems is incredibly high system requirements, but our sales people were over the moon with this since they sold memory (cheap stuff which failed every six months) and whole network and deployment upgrades off the back of it.</dd> <dt>Is the work environment noisy making it difficult to concentrate?</dt> <dd></dd> <dt>Do they expect tier 1 support in addition to your programming duties?</dt> <dd></dd> <dt>Do they fail to provide adequate development hard/software?</dt> <dd></dd> <dt>Do they fail to grant developers admin rights to their own box?</dt> <dd></dd> <dt>Is refactoring discouraged?</dt> <dd>There is an aspect of not changing a customer's codebase without payment.</dd> <dt>Do developers have to account for their time in small increments?</dt> <dd>Every 15 minutes is usual. Made even more difficult when between writing lines of code you need to take support calls. Do you account for 15 one minute calls?</dd> <dt>Has marketing a higher budget than development?</dt> <dd></dd> <dt>Is the Testing Plan, for a given piece of software, developed after the software itself is developed?</dt> <dd>Tests? What are they?</dd> <dt>Are testing plans discouraged?</dt> <dd></dd> <dt>Do I need to work weekends just before a big release?</dt> <dd>How about re-implementing a product which has had three years solid development using a different framework, and setting a two week deadline?</dd> </dl></div></div></div> Sun, 24 May 2009 11:35:17 +0000 techuser 64 at http://www.technologicalwanderings.co.uk http://www.technologicalwanderings.co.uk/node/64#comments