If you are coding in Java and wonder what your ultimate goal is?
Obviously making it work for the needs of the users of those applications!
This is the tricky part which has never been solved or will never be solved. I mean writing down the needs. There are volumes spoken about this and often they dont help for the ONE software application that you are designing for your customer. Because, it is like self-realization. You can read tons of words, but unless you "internalize" what you are upto, you never get it.
In spite of all of these, Iam planning to throw another ton of words at you on this topic. Some times you dont bend the rod without beating it :-) May be, this may strike a different chord, a different note in that grey matter of yours and you may suddenly get that http://en.wikipedia.org/wiki/Satori as they call it in Zen.
Production readiness brings in a lot about not disappointing your customer (whoever paid money to you for writing that piece of code) in the sense of how it runs while handling the user requests. If your code is the cause of annoyance for a user by belittling all expectations on its response time then you are not production ready. Imagine you booked your train ticket online and after entering all the details on that nasty form you waited for minutes and then got a message to enter your credit card number. This will be grossly unacceptable. Many disappointed customers causes any business to fall.
Thus, you may have focussed all your energy on giving that cool UI, the hoard of features to excite the user. But you may fail on when your users have to wait no matter how good your application is. Google search is so quick with its results. No matter whether the results helped you or not. No matter whether you may find that little answer for your search in that 1 miilionth document they throw at you or not. The speed of responding to an user does not allow the gap to lose a user sitting at the terminal.
I will take an example in the next blog to explore in detail on how we can achieve speed.