Friday, April 11, 2008

Pragmatic Software Development for Outsourcers

So your work has been outsourced and you no longer have a job? The new developers spout Bullshit Bingo like they actually know how what they're talking about and "network" with management?Well don't worry, a colleague of mine recently found a badly translated copy of their Pragmatic Software Development Tips!!!

DRY - Do Repeat YourselfCopy as much code as possible, CTRL-C and CTRL-V are your friend (don't use CTRL-X)

Never Use Source controlWhy have complex code control systems when comments will suffice?

Don't test your software, your users willAs the users will test the software, testing can be cut from the development cycle to save time

Use Blackboards to coordinate workflowThen erase them, the only documentation necessary is the code, if you can't work that out you ain't smart enough.

Don't care about your craftThere is more to life than programming.

Don't be a catalyst for changeEnsure the code is as complex as possible and therefore cannot be changed (job security)

Program close to the computer not the problem domainCall variables x and y, don't use a meaningful name like "customer"

Iterate the schedule with the codeAs the code gets worse and worse from one iteration to the next this will require even more iterations (and profit)

Finish What you Start.Badly, so rework will be required.

Assume It, don't prove itWe don't have time to prove it, not with all the complex code, just assume it works (it will be tested by the users when live anyway)

Never design for concurrencyThis is too complex and can be handled by the client once the project is over.

Use ExceptionsTo swallow the cause of the problem, without the call stack they will never figure out what you did wrong or even if it went wrong

Don't refactorThe code is brittle and will almost certainly break, remember we don't have time for unit tests.

Don't gather requirements, bury themHide business rules deep within the system where no-one will find them (or better in the view layer)

Some Things Are Better Done than DescribedDon’t fall into the specification spiral, code what you like, no-one will ever know.

Abstractions live longer than detailsMake sure you get the interface wrong it will be really difficult to change later