I often come across the illusion that a productive day for a developer is to churn out as much code as possible. This illusion creates an expectation to keep coding for the whole day and cut short time to design, reflect or retrospect.
Measuring programming progress by lines of code is like measuring aircraft building progress by weight
The answer to the question of measuring productivity is very difficult especially in the application developer’s world. Every one wants something such that it either enables them to earn more money than what they spent on acquiring it or it gives a sense of satisfaction on using the product (Essentials and Luxuries). Same is the case with every business who wants a software and present the consultants with what software they want most of the times instead saying what is the problem they are trying to solve.
It is expected of every programmer to make sure what we do is what the customer really needs instead of being a human translator to get specifications into working software. After a careful analysis we may even have to ditch the requirements or spend more time in sharpening the tools get usable working software soon, most of the times do both. I came across this post by John D Cook, who illustrates that sometimes a programmer can be 10 times more productive than his/her peer but it will not be obvious at all.
Numbers are useful mostly to indicate an absence of something. If we concentrate on creativity and problem solving instead of getting some numbers on board we would end up being very productive.
A hunter watches a mountain goat grazing on the pastures on the side of a highway. A speeding truck loses control and starts veering towards the grazing goat, in split seconds it jumps off to a safe place. The hunter’s kid who was watching all this asked his dad, “Did the goat escape because it is agile?”. The hunter replied “It is just common sense to avoid a speeding truck”.
There was a question posted in programmers forum in stack exchange site asking Is agile the new micro management? I am not sure why such an impression about agile has been formed in that person’s mind. It could be due to some recommendations being wrongly interpreted. First of all the recommendations like “a quiet place to work” is a necessity for development teams anywhere following any methodology. Interpreting that as a no talking zone requirement is against improving communication between the team members. My perception about why these kind of wrong interpretations arise is due to wrong sense of accomplishment provided by having something tangible. If someone has to show any progress in adopting a new process or a method then it is natural for him/her to incline for a support in some form which could be seen or measured. This has led someone to believe that following some guidelines verbatim and measuring the level of adherence to it is equal being successful in adopting a new process or method.
I have not been aware that I was part of agile teams for a few years until I met someone who joined my team because it was an agile team. We were a team of 12 people doing weekly releases to production, wearing different hats of Dev, QA, BA and had everyday interaction with the customers. That is how I started my career and I never felt the value of it until I worked in a conservative setup. There was one golden rule of thumb we followed in the teams I worked, treat the team (client team included) as your own organization and do what makes sense to deliver the right value.
I asked one of the directors of a company that how come he never used the word agile though he was part of agile teams for quite long, he replied “talking to your customers often; keeping the code well tested, integrated and delivering the right value on time is all about common sense. There is nothing agile about it!”. He sure left me to figure out what agile meant.
Is there a prescription? Check the answers given out in that forum for that question.
Recently my faithful mobile handset dropped dead after five years of duty as a phone and a bluetooth DUN. I reached the shop trying to get myself a similar device and the salesman lured to Xperia arc and started explaining the features. The one feature (ok fact) that sounded too ridiculous was 2,50,000 applications available and the numbers are increasing way too fast. I ditched any advice to go for a hi end phone and settled for a candybar one. I think that there is an android bubble and need to understand how big it is. First look at the market place shows that it allows any application to be available for use without QA from them. This one window allows vendors to mutate, replicate, spam their products on the market. Examples – Ringtones classified as mp3 players, wallpaper changers with just one wallpaper but rendering too many ads, very simple applications which could rather be rendered as a web page. Finding a useful product out of the store is an uphill task.
Secondly; like how every company wanted their website during the dot com boom, similarly they seem to be in line for mobile applications for themselves. Most of the applications are concentrated on content rather than getting innovative by using the accelerometer, camera, GPS, cell site information, NFC and others. Layar is one such application which is a true blue mobile application. My gut feel is once the excitement levels plateaus and the awareness of the mobile applications increase, then we will see high quality products on the market. As a developer I restrain myself not to create a mobile app which can anyways be rendered in a web browser with a good UI.