There has been a lot of talk about craftsmanship these days. I didn't care much about the discussion whether we are craftsman or not. To me all that matters is what Uncle Bob says about it in one of his latest blog posts
: We are tired of writing Crap
But was is crap? And how do you know you are making a mess of things? So for your benefit I created the following Crap List. It's opensource and free of use. It is mainly targeted on Java, but a lot also applies to other ecosystems. Please add as much crap to it as you like.
So here we go...
You have Crap if
- It takes more than an hour for a new developer to be up-and-running
- If your users think your application is crap
- Your test coverage is below 50%
- You don't have any tests
- Your have no asserts in your test
- You are using a Process Server of any kind
- You are using Queues while you know it isn't really necessary
- You are using a vendor specific IDE
- You are using EJB's (yes it was crap, it is crap and will always be crap)
- You are using a big commercial Application Server
- You basically use anything else then Jetty or Tomcat
- You haven't released anything to production in the last 3 months
- You are creating only one application and you have more than one Maven module
- It takes more than 5 minutes to run your unit tests for a single project
- It takes more than 10 minutes to release and deploy a new version of your software on a test server
- And if that is done manually
- If you are creating a framework up-front so that the implementation of all the features can be done very quickly
- If you have no idea what your colleagues in your project are doing
- If you have more then 1 method in a class that has more than 10 lines in them
- If your class is more than 200 lines
- If you are constantly working overtime
- You don't have a Chuck Norris in you Continuous Integration
- If you have no idea what version is running in production
- If you are using an Erroneous Spaghetti Box (or ESB as some people call it)
- If you have more than 2 a nested if-statements
- If you are opening a database connection in a JSP
- If you stopped running the build because it takes too long
0-2: You are probably doing fine (unless you don't have Chuck Norris, then you are still in trouble)
2-5: Crap is starting to take hold of your application. Act now!
> 5: You are creating Crap.
: The Crap List is in no particular order and not complete. Any resemblance with your specific situation is purely coincidental.