Friday, January 31, 2014

Why software estimates are not accurate:


One of the most exasperating thing any software engineer has to go through is to answer a client's question- "How long do you think it will take to finish this?".  And the second question is "How much is it going to cost?".
Unlike  other discipline, software development is always a new undertaking. It is always an one shot task and involves several variables, that makes its estimation extremely random. And further we human beings are very bad in making estimates. According to Frank Knight in his Risk,Uncertainity and Profits (1925)  every randomness has two components - risk and uncertainty. Among which risk can be measured with knowable probabilities using the standard statistical tool such as coefficient of variance , on the other hand the uncertainty is class of randomness which cannot be attributed to any knowable probability.  With the nature of software lifecycle , together with technological constraints and changing customers requirement the entire software development mostly comprise of Uncertain components rather than risk. As a result apriori estimates will always fall short.
Thus the entire process can be categorized into three categories using the class of awareness and unawareness as explained by Italian Economist Salvatore Modica and Aldo Rustichini in their paper Awareness and partitional information structures (1994)
i) Known Knowns: This is the type of software project where we know what to be done and we know how to do it. For example if we  have developed and school MIS system and now we have task to install it in new school with minor customization. In this scenario the entire software project has changed into the class of Job-shop.

ii. Known Unknowns: This is the class of software project where we know what needs to be done but we really have no idea of how to do it. For example A developer who has experience of developing an droid app needs to integrate his current app with some telephony based system or PSTN. Now lets assume that the developer has never worked in voice before then his project falls into this category. In this scenario he will have to  study Telephony system and will face knowledge cliff and high learning curve  before he can be pretty sure of how long it will take to complete the project. Besides he will have to hire right person with the knowhow . Which will eventually increase hiring and recruitment cost. Open source community is big help in these situations but if the knowledge has been patented then it's really difficult to accomplish it.



iii. Unknown Unknowns:
Though this term has often be dubbed as an abuse of language by former defense secretary Donald Rumsfeld, it is still legit. Software project that belongs to this class can lay claim on highly green pasture of development. For instance developing a software to navigate the robotic probe on surface of Europa (moon of Jupiter). In these scenario the developer neither knows what to do nor how to do it.  And its success will depend on how well the research and development team can handle the unknowns.


Besides these three class of awareness in software development project , one another class can be deduced as per philosopher Salvoj Zizek's extrapolation and that is

 Unknown Knowns: 
This class of problem generally arise in small software companies which witness attrition among its developer with high turn over rate. Without smooth succession planning the developers while leaving the firm takes away all their knowledge as a result the firm will have no knowledge of doing things that they previously had done.

So how to make estimates then ?
This is the big question ? Considering all the above facts it seems unreasonable and extremely presumptuous to make the estimates with any software development projects besides the Job Shop type. But problem is management and customers do not understand this issue. And especially if the gestation period is too long the entire project may turn into jeopardy. Besides the developers are generally more introverted in nature and have hard time communicating the problems .
There are mathematical model such as function point analysis and evidence based estimation. But still using these tools can only mitigate Knightian risk and does not properly address the  Knightian Uncertainity. Therefore the best way is to get involved with customers. Get their regular feedback and apply piecemeal approach. Agile approach is extremely helpful but its main drawback is people may lose sight of goal and rather focus on small task.  
  


So for any successful project following must be done


i. Divide work into piecemeal
ii. Get estimates of smallest tasks
iii. Build strong Knowledge Base
iv. Have separate R&D team that can provide the proof of concept
v. Receive regular feedback from client
vi. Have a proper succession planning
vii. Bugs are part of life , deal with it
viii. Never think that your estimates are correct. The best rule is estimates are never correct

ix. Never  have marketing team decide on the deadlines (most important). 

Thursday, January 16, 2014

All I want

When the rain falls

I seek out for sun

and when sun comes

I look out for clouds

And when the thunder rolls

I fancy the snow

and when sleet arrives

I long for breeze

and when wind blows

I do rain dance

My unsettled mind is ephemeral

as all I want is a rainbow

Thursday, December 12, 2013

Stupid decision by Nepal Rastra Bank

According to news Nepal Rastra Bank has just issued a circular that from now onwards the Banking and Financial Institutions should track the sender information of any remittance inflow into the country upward of Rs 75000 that is 750USD. This so called rule is being introduced supposedly to curb the money laundering activities that might provide for the terrorist act or other  incendiary activities. No matter what the reason is, it is perhaps the most stupidest and illogical  decision that NRB has made in recent times.  And following reasons simply underscore why so

i) Remittance make up about  25% of Nepal's GDP and to make the process stringent will simply discourage the free flow of capital into the country through legal means.

ii) The entire crux of curbing terrorist act from money coming to BFI from foreign countries is totally counter intuitive , since no terrorist organization will ever be wiring money in legal way.

iii) This will further encourage people to rely on illicit means such as Hundi to carry out their transaction. As a result the country's revenue from remittance will be drastically affected and will ultimately affect the Balance of Payment situation.


iv) Since the money thus arriving will have no legal source , it can't be used in investment and hence will be spent for unproductive activities of consumption and import. This increase in  marginal propensity of consumption and import will increase the inflationary pressure . Thus putting the already bleeding economy into further doldrums. 

Sunday, December 8, 2013

Lesson learned from Delhi election

Arvind kejriwal party obtaining good result in Delhi election shows that in democracy there is always room for a movement that can usurp the strong hold (monopoly) of established political parties from the power. When 'Bibekshil Nepali" started a movement many ridiculed them for being  just a social media fad. And yes it did rang true in Nepalese context as they lost badly in election. But this doesn't mean that a movement at grass-root level can't blossom which will address the pressing need of common man. This common man  which Richard Nixon famously dubbed as "Silent Majority" comprise of middle class household which is always overlooked by established political parties. And despite this they are always inculcated with an idea, from their parents  and surrounding,  that their affiliation belongs with one particular party  akin to your affiliation with the football team you support.  And it is not only the case of Nepal but also in so called bastion of democracy United states where Blacks and Hispanics always vote Democrat and Whites vote Republican. As a result common man has no choice and ultimately the democracy is defeated.
This sort of behavior  of demographic factor rather than people's choice  influencing vote has caused the formation of, in Mario Vargas Llosa's word, Perfect Dictatorship as in Mexico during last century where a single ruling party keeps on winning the election.


For democracy to thrive there must be a sea change  so that our political system turns into a market place of ideas with perfect competition  rather than a oligopoly where ideas are available in  cartel. And "Aam Aadmi" party winning is certainly a wind of change in right direction.

Monday, December 2, 2013

Promise of Devil

Devil made me
worship the god
with promise of
mended broken heart
but in the stairs of the temple
all that was left for me
was pair of cobbled shoe

Devil made me
worship the god
with promise of
paradise in the dark
but all that can be seen  was
river  of sewage glittering on  
light of golden roof

Devil made me
worship the god
with promise of
songs from the lark
but all that was  left was
 the sound of despair from
 the  dying men  full of rue


Devil made me
worship the god
with promise of
mended broken heart
but in the stairs of temple
all that was left for me

was pair of cobbled shoe

Tuesday, October 15, 2013

Kathmandu Under Dashain Sun

Kathmandu looks lost

lost in the silence

silence so stark

that it cries out loud

loud among the empty buildings,

shops and roads

from where people

have disappeared


Disappeared towards oblivion

where blue hills stand

among roaming clouds  that

too will  be soon gone under

the pleasant Dashain sun

whose beam basks the

fluttering kites

whose colors now challenge

the rainbow that too

was long lost.


Kathmandu indeed looks lost

lost from the noise

lost from the hubbub

lost form the indifference

care free under  the angel's arm

full of grace drawing deep sigh

hoping dashain stays here forever.

Saturday, July 20, 2013

In the passing

Outside the window
Clamor of ghosts
With fiendish laugh
Yells and scream
Under the fig tree
That lumbers in shadow
In the darkness
 When the dog’s wail
At the moon
Whose dew
Wets the grass
And  you hide under
The blanket
Waiting for the sun
And in the morning
Nightmares are forgotten
And world is alright