We as individuals or as part of some organisations do several repetitive small tasks. They become monotonous when done manually. Satisfaction is the reward for a task, which is lost when it gets boring. We commit mistakes, create rework, and curse ourselves for silly errors. We eternally procrastinate such tasks, complicate the situation, and create crisis. Often we incur an opportunity cost.
Another category is of the tasks that we avoid because they seem complex to accomplish manually. If done, the result would be clumsy even after spending several sincere days of effort. There is no ready tool to rescue.
Though there are several software tools that help us with simple tasks, often we do not find one that exactly meets our need. Some exploratory software development would be necessary. In today’s context, contracting such work to external companies is not practical. The development efforts are small, requirements are unclear and evolving. New requirements are identified with the discovery of possibilities and opportunities. Work may be of a few hours to a few days at a time.
We can get services of a handyman for a few hours. Can we get a software developer to work for a few hours for us, occasionally?
We have an opportunity to build a service network providing such services though I don’t know if it can be a profitable venture. For the past few years, I have been occasionally writing small software solutions for some friends, schools, and NGOs meeting such needs. No fee.
An example, and rewarding experience.
As I am writing this, A seminar of GAP (Global Action on Poverty) is under progress at Gandhi Ashram, Ahmadabad,. Four months ago the volunteers started filling Google forms with personal details. A row of the resultant spreadsheet in one of the 5 forms has 27 columns – A to Z and AA. Sample columns are ‘TELL US A LITTLE ABOUT YOURSELF’, ‘WHAT HAS BEEN THE IMPACT OF THIS PROJECT / INITIATIVE?’, ‘WHERE WOULD YOU LIKE THE PROJECT / ORGANISATION TO BE IN 3-5 YEAR’S TIME,’ … Answers to such open ended questions have no limit on the number of words. Text in one row is between 600 to 800 words, making 3 to 5 pages of text document. Reading them on spreadsheet is not practical.
Some of my friends in GAP opted to copy-paste contents of hundreds of rows of data to word document. Boring. Simple solution was to generate word documents automatically from the spreadsheet. It took me a few hours to write this solution, which has been used scores of times. New possibilities arose, creating new requirements. Can we group the documents in to areas of social work? By the coaches? By mentors? And many other views. Each of such possibilities took less than an hour to implement.
A more interesting requirement arose a week before the workshop. 120 tables are arranged for people of similar interests to meet. There would be six time slots to meet, creating a possibilities of 720 meetings. Some meetings are planned based on the background of the volunteers. We have to pair them based on their background entered in the Google forms.
The first step is to find best possible pairs. Using Natural Language Processing (NLP), I found the distance between all the possible combinations and ranked them by proximity. Sumir and Nishwath used this matrix and their knowledge about the volunteers based on interviews to select pairs out of the matrix.
The next step was to allocate meeting table and time slot to each pair. The pairs are of 3 categories – between mentors and catalysts, catalysts and change makers, and change makers and change makers; in that order of priority. Ensuring that the same meeting is not repeated and a person is not allocated with two different meetings in one tile slot, we could create 305 meeting points.
The third step was to arrange additional meetings based on the requests from the volunteers at the end of first day of workshop. Another 254 meetings were arranged.
Manually creating word document by copy-pasting text from spreadsheet would have been boring and laborious, though the task is not complex. Grouping with various options would not have been an option probably considering the time it would have taken.
Manually pairing people based on their work experience and interests expressed in unstructured text would be complex. Manually allocating tables and time slots for meetings is not trivial either. These two tasks had very little time available. We accomplished this on time and smoothly using established technology.
Frederick Brooks wrote The Mythical Man-Month: Essays on Software Engineering in 1975 – more than 40 years ago. He convincingly discusses the need of tool smiths in software projects and computer scientist as tool smith. “The shoemaker’s son always goes barefoot,” is a 16th century adage. Often those closest to a person don’t benefit from the person’s expertise. This is true of software industry. We see this in other industries too.