Because Software Development ceased long ago to be an art, a science, or something else of that sort it is widely considered to be some engineering task. As we probably know everybody from a pizza delivery guy to a garbage collector fulfill engineering tasks -- the good thing about engineering is you can measure. How many garbage cans did get picked up? how many pizzas delivered?
A wise man said "anything that can be measured can be improved". I am a long proponent of bottom line. It is conceivable that if you deliver more pizza in a shorter period of time you have more money; it is also conceivable that if you spend more time with customers they might order again -- I don't know and it might be different in different markets. Fortunately most people are smart and can figure out what makes them more money.
Because people want to be paid regardless of their impact on the bottom line (you can write perfect software but your marketing sucks) certain metrics got invented to decouple the task of engineering software from the bottom line and allow certain improvements. An early metric was lines of codes which obviously just lead to bloated code.
Fast forward to today where most metrics are quality oriented automatically generated ones like the likelihood of having a bug based on heuristics instead of (a more meaningful) how many bugs QA or the customer actually found and so on. The other big component is hours spent on some tasks (nowerdays called velocity).
But can software be reallyd eveloped in such a context? A better algorithm often is 200 times faster. The difference between a good programmer and a bad one is at least 1:20 -- does this sound like your electrician or more like an artist? Well, even in the art world you have extraordinary artists who can't be measured and artists who copy other artists work in big factories. So it all boils down to if you want an original painting in your house or some copy. When you look around successful and rich people buy originals and not so successful and rich people buy copes.
The Software Metric Illusionist tries to convince you that turning your software department into a collection of copy-and-paste technicians will not only save you money but also make your company better. It is up to you to decide if you need an also-run software department or people whoc can take it up with the Google's of the world. Now watch out the double illusion: if you need an also ran why don't you just outsource the whole department? That would be bad for the illusionist so he convinces you despite having an also-run software department it is core enough to your business to keep it in house.
That contradicts GE's metric -- if you can be number one or two get out of this business.
So metrics are all smoke and mirrors? Or things draftet by clever illusionists to fill their own pockets?
Thursday, August 14, 2008
Software Metric Illusionist
Tuesday, July 29, 2008
Copy and Paste Technician
Several jobs heavily rely on the mastering of the copy and paste function in several softwares.
For instance in web development often certain lines need to be copied and pasted and only marginal changes performed -- a good example is the title of a web page -- rarely somebody wants this to be inconsistent so often it will read "ACME Corp - About", "ACME Corp - Home", etc. -- so having "ACME Corp" in your clipboard might speed up things dramatically...
When writing studies, offers, or proposals I found the copy and paste functionality of word quite helpful, too -- often bigger companies create gigantic repositories of copy and paste sources and call that "Knowledge Management"
Wednesday, May 21, 2008
Computational Theologist
I couldn't believe it when I fist saw this title at http://blogs.sun.com/gbracha/resource/JAOO2005.pdf -- what does a computational theologist do? Figure out if god is a computer?
Here is how Gilead, now a computational theologist emeritus, describes it himself:
I have been asked this question so many times, I finally gave up and decided to post an explanation on my web page.
I was forced to invent the term Computational Theologist because I had to come up with a title to put on my business card. The usual titles are unspeakably boring, and non-descriptive as well.
Computational Theology is a term I invented to describe my work on the specifications of the JavaTM programming language and the JavaTM virtual machine. Initially, my work was focused on interpretation of existing specifications. This interpretive work had a legalistic, even talmudic flavor, and these specifications are, so to speak, the "holy books" of the Java platform. Hence the analogy with theology.
To be completely accurate, I should have billed myself as a Computational Theologian rather than as a Computational Theologist.
However, I find the word theologian quite irregular. How many biologians, geologians or philologians do you know? Computational theology is very much concerned with preventing this kind of irregularity, which is so characteristic of natural language, from spreading in computing systems, especially programming languages. So I opted for the more regular expression, Computational Theologist.
Recently, I discovered that people are in fact using the term Computational Theology seriously. They mean a theology based on the model of computation. You can find out more using your favorite search engine.
(Source: http://bracha.org/Site/Theology.html)