Software Reality
Programming with
a dose of satire.

Site Map Search


Matt Stephens
 
Use Case Driven
 
Agile Development
 
Extreme Programming
 
Code Generation


Articles
Lifecycle
Design
Programming
Soapbox
Reviews
Cthulhu

Use Case Driven
Use Case Driven Object Modeling with UML: Theory and Practice
Get from use cases to working, maintainable source code. Examples use Spring Framework, JUnit and Enterprise Architect

Agile UML
Agile Development with ICONIX Process
A practical subset of agile development techniques, illustrated by example

Get Controversial!
Extreme Programming Refactored
Extreme Programming with a dose of satire
Available now:






Check out our ageing Reviews Section



T-Shirts etc.

Software Reality T-shirt

Wear a swanky Software Reality T-shirt under your suit, and prove (at least to yourself) that you don't follow the crowd.

Software Reality mug

Or if you're feeling bold, carefully place an official Software Reality mug on your desk!



Soapbox

15 Commandments to Curb Bad Programmer Habits

By Mark Collins-Cope :)
October 3, 2004

Ten Commandments

How do you keep a team of programmers consistently not doing the habitual things that tend to break projects? The"commandments" listed below are obviously quite tongue-in-cheek, but have a serious message to them as well.

I've found that these are commonplace errors that programmers make again and again - you may find that you need to keep on at them so they don't fall back into their bad habits. In fact these commandments (or your own list) could even go up on the wall in poster form, as a constant reminder to everyone on the team...



1. Thou shalt not break the unit tests or system functionality (by checking in half done crap code to CVS)
2. Thou shalt really understand the requirements driving your work (not make them up or not bother to read them and/or not ask questions when necessary)
3. Thou shalt deliver what the customer needs (not that which is easy to implement)
4. Thou shalt estimate work effort accurately (and deliver within agreed estimates)
5. Thou shalt understand the implications of thy work with respect to others on the team
6. Thou shalt not just comment out code because it causes the test to fail (without understanding why it was there in the first place)
7. Thou shalt understand the implications of thy work with respect to other areas of the system as a whole
8. Thou shalt follow the business priorities (not just do what you think is interesting)
9. Thou shalt deliver stuff that actually works - including the user interface that can't be jUnit tested (i.e. actually try it out rather than hoping for the best - test the UI - don't just leave it for the external tester to find as that is "their job")
10. Thou shalt not regard communicating with other members of the team as an unnecessary and tiresome overhead that can be ignored
11. Thou shalt not deviate from the "agreed" development approach without a good reason that has been thought about
12. Thou shalt understand that the external image of the development team is important - even though it does not contribute to your daily work
13. Thou shalt not call the customer a wanker even when it is true. <ok, can't have this on the wall>
14. Thou shalt understand that sometimes thou must do things because they are important to other people's jobs (thou art not the only person in the universe)
15. Thou shalt understand that getting the software out there, so others can see something has actually been done, is important (we're not just doing this as an intellectual exercise)


Message Forum

Agree/disagree with the advice listed here - or got some "commandments" of your own to add? Why not leave a message...

Post a new message

Message Index:

You cannot just command accurate estimation
Steven Gordon sagordon@asu.edu

Good Point ...
Mark Collins-Cope mcc@ratio.co.uk

Alternative wording ...
Mark Collins-Cope mcc@ratio.co.uk

Accurate Estimates and Schedule Pressures
Rob WELLS robwells57@btinternet.com

Estimate boundary
lj lj011@yahoo.com

RE: 15 Commandments
Sean skip_203@hotmail.com

The Messages:
You cannot just command accurate estimation
These "commandments" seem quite reasonable, except for #4.

The reality of software is that it is an adventure through territory with the potential for an unexpected surprise at any turn. Before we start, we cannot know what we will need to know that we do not know. We aren't just building the same old toaster time and time again.

Commanding accurate estimation is just not realistic. Demanding compliance to estimates will just result in inflated estimates.

Realistically, open communication with the customer, iterative development in order of business priorities, and always having the latest working and tested system available is the best we can do to give the customer the most value by any date (whether this date is predetermined by us, or by the customer, or by changing market conditions).

Steven Gordon sagordon@asu.edu
http://sf.asu.edu/, usa

Sun Oct 03 12:17:16 BST 2004
Good Point ...
Even the omnipotent can make mistakes...

Yes, thou art correct in that thou aren't just building the same old shit so estimating can be
difficult...

In these circumstances a contingency factor (which may be over the top) is the only way of guaranteeing that the software can be delivered to the agreed estimate...

But perhaps that is better than being late...

:)




Mark Collins-Cope mcc@ratio.co.uk
London

Mon Oct 04 13:19:34 BST 2004
Alternative wording ...
4. Thou shalt strive to learn how to estimate work and deliver within agreed timescales ...

Comments?


Mark Collins-Cope mcc@ratio.co.uk
London

Mon Oct 04 13:56:41 BST 2004
Accurate Estimates and Schedule Pressures
G'day,

Maybe add numbers 4a, 4b and 4c to reflect the more usual way that a request for an estimate is given:


4a) Thou shall not respond immediately to a request for an estimate no matter how much pressure to do so is applied.

4b) Thou shall not agree to deliver to schedules thrust upon thee without first having time to evaluate whether the schedule is realistic.

4c) Thou shall refuse to adjust only thy schedule in the face of management pressure. Schedule djustments are acceptable when accompanied by adjustments to scope of delivered features.


The number of times where I have been asked to give "corridor estimates" or estimates in meetings off the top of my head. Having a schedule dropped on to you at a meeting is also a good one.

The other one that is good is collapsing under pressure applied by management to accept a tighter schedule.

I used to work for someone who did this regularly. Only one person in the group actively resisted his pressure. A couple of times she directly said, "Well you can write down that date, but it won't be finished then."

Later on when I was out having a drink with this guy he told me how this girl was the only team member who was always on schedule!

This was where I learnt my lesson concerning this.

cheers,
Rob

Rob WELLS robwells57@btinternet.com
Maidenhead, UK

Tue Oct 05 11:24:47 BST 2004
Estimate boundary
Statistical analysis is possible only on large base sample. Programming do not usually have large base sample to give fairly accurate estimate. All estimates in this world not only programming are by nature inaccurate. That is why they are estimates.

Some ideas:

- ask your marketing to tell you when EXACTLY they are going hit one milion users for our product and EXACLY how much money they will spend to reach this marketing goal. Try to evaluate accuracy of these predictions.

- Ask your sales force EXACTLY when they believe that bangs and whistles for a peanut price which they promissed to the just caught client will be delivered regardles of the production line?

What is wrong here is to ask any production to give their estimates of the production output and what is more wrong to ask them to give that estimates accurrately. This shows incompetence in business proces - it is not their job to make management estimates - that is management job.

For #4: thou shalt find better project manager that does not ask stupid questions about estimates but does his job of monitoring and managing the production process.

lj lj011@yahoo.com

Wed Nov 03 06:38:34 GMT 2004
RE: 15 Commandments
The obvious superficial observation: God only needed ten.

Sean skip_203@hotmail.com
USA

Wed Feb 09 21:00:01 GMT 2005

Post a new message



<< Back to Soapbox

<< Back to the Front Page

 

All trademarks and copyrights on this page are owned by their respective owners.
Stories and articles are owned by the original author.
All the rest Copyright © 1998-2008 Matt Stephens. ALL RIGHTS RESERVED.