jump to navigation

Software Evolution: A Case Study of Applicant Tracking June 10, 2010

Posted by Darwin in applicant tracking, software evolution.
Tags: ,
add a comment

Just as biological organisms evolve over time, so does software.    Software is built on layers of programming language (code) that continually becomes more advanced.    Organisms adapt to their environment through the process of natural selection – ‘features’ of organisms become more or less prominent based on each individual’s ability to survive and pass their unique genetic code onto the next generation.  Software also faces a continual battle with the environment around it with the end result of the ‘fittest’ software surviving.

A software environment can vary based on the type of application it accommodates.  For example,  in the case of  a mobile application with the goal of allowing friends to connect with one another easily, beneficial features might be GPS integration, profile pictures, chat windows, etc.  A cooking program obviously would need features like recipe lists.  These integral features could change over time, however, based on the software’s environment.  If there is a low carb diet sweeping the country, it would be beneficial for a cooking program to include special features directed at low carbohydrate recipes.  This would in turn increase the adoption rate of the application due to its increased usefulness.

A great case study of software evolution is within the sector of Applicant Tracking Software.  Just as evolutionary biologists often study isolated populations to gain more in-depth insight, software can also be analyzed by looking at niche sectors.  The applicant tracking software sector is very unique because the hiring environment has an  incredibly specific set of needs. The features necessary to build an ‘evolved’ applicant tracking program need to be ultra-targeted towards aiding companies hire the best talent out there.  In order for an applicant tracking program to survive, it needs to adapt to the hiring environment; providing features that are beneficial to companies that want to find and attract the best talent.   Here are a few examples of features that would make a piece of applicant tracking software ‘fit’ and able to survive within this particular software environment.

The Right Features:  More features are not necessarily better.  It might seem that an elephant with two trunks would be ‘better’ – however the extra trunk would likely displace the elephant’s weight and harm its chances at survival.  The same goes for applicant tracking software.  It’s not about having thousands of useless features – its about having the right features that sync up with the corporate hiring environment.   For example, equal opportunity employment regulation by the government is something that is very important to all medium-large companies.  A piece of applicant tracking software that has features to aid a company report equal opportunity empoyment would more likely survive in the current hiring environment.

Learning Features: One of the reasons that homo sapien has been such a successful species is the innate ability to learn what works.  Call it what you want: the process of trial and error, learning from our mistakes and moving forward with a new solution has enabled us to make advances in technology and social structure.  A ‘fit’ applicant tracking program also has the ability to ‘learn.’  By providing in depth analytics on what works and what doesn’t, the applicant flow can be constantly improved on and in turn become far more efficient for the companies that are utilizing it.

These are just two examples of applicant tracking software features that would likely aid survival in this specific software environment.  There are a myriad of different and very specific software environments – from mobile applications, social networking, B2B programs, CRMs and more.  Each of these niche environments provides a window into the ongoing ‘software survival of the fittest.’  Code is written to express specific software features, which in turn will determine whether the software survives or fails.