Skip to main content


Showing posts from August, 2008

Programs Automating Themselves

Well, recently I received an interesting question, regarding the possibility of programs or systems automating generation of themselves - probably with out any human intervention. From a philosophical view point:
Consider Game of Life - It is a full automata system, which, if allowed to grow in a non-limited space, will organize itself to create logical groups, gates etc. Mathematically, it is possible to create automata machines which can re-generate itself, to permute and combine in various ways. Interesting, huh!!

It is very interesting to look towards biologically inspired computing as well - to see evolution of algorithms like Swarm intelligence, Nerual networks, Machine human interaction algorithms, perception algorithms etc.
From a practical view point:
These days, we are moving to higher levels of abstraction - to automate solutions with minimal or no coding. Concepts like Domain Specific Languages are evolving, to enable us to develop software factories, where you can pun…

Impact of Code Coverage Analysis on ROI

It might be difficult to link Code Coverage Analysis directly to the Return On Investment. How ever, as ROI is more or less related to the improved productivity, the path for calculating ROI from code coverage analysis would be Code Coverage Analysis -> Improved Productivity -> Impact on ROI To improve the productivity using Code Coverage Analysis, you might start defining some steps like Introducing a Level 0 test (smoke test) which should focus on coverage than on functionality. (For eg, If you have N modules, the Level 0 tests will do a quick check on most or all of them, before going to detailed functionality tests)Identifying and removing redundant test cases covering the same code Find an optimum percentage of coverage, that gives you maximum test efficiency (As a standard, somewhere around 60% of code coverage will give you maximum testing productivity)These days, various automated code coverage checks are available with in various IDEs. Fig: Visual Sudio Code Coverag…

Decision Parameters On Choosing The Technology Platform

Recently I was asked to list down the decision parameters on choosing a technology platform. Here is a list I've quickly assembled. Comment on if you have more things to add.-> Client Choice/Preference Step 1- Client's choice/alignment with technology platform
Step 2- Existing infrastructure client has in place to support any of the suggested technology platform. -> Cost/Budget Step 1- Implications on hardware and software requirements (like hosting platform cost, infrastructure cost etc)
Step 2- implications on resource requirements (availability of resources, training cost etc)
Step 3- Cost comparison of inhouse development vs outsourcing for each technology -> Existing Dependancies and code base Step 1- Is this an end to end project, re-write, take over or a migration?
Step 2- If not end to end, do you have any existing dependancies and code base -> Platform maturity Step 1- Find out whether the suggested platform can cover all requirements and future re…