WebCDI is a project of the MacArthur-Bates Communicative Development Inventory Advisory Board. 

The MacArthur-Bates Communicative Development Inventories (MB-CDIs) are parent report instruments which capture important information about children's developing abilities in early language, including vocabulary comprehension, production, gestures, and grammar.

The Psychology department at Stanford University had an old application/website (webcdi.stanford.edu) to gather data about language development in small, up to 30 months old, children.  It gathers both socio-demographic information and word comprehension and usage.  These are large surveys completed by parents identifying which words the child understands and produces.  Although written in Python and Django, it was an old system that needed updating.  The job was to update the system and bring in new functionality. 

This was achieved quickly and follow on work was requested.  The first project was to expand the languages covered.  We worked on a Time and Materials basis and provided an estimate of the effort involved.  The system already had American English and Mexican Spanish, but they were considered English and Spanish.  We needed to be able to distinguish between American English and Canadian English, European Spanish and Mexican Spanish etc. 

We identified the changes required to enable language expansion and initially implemented Canadian English and Canadian French.  This included working with researchers in Canada to provide translations of the standard text of the site and word lists.  We used the learning from adding these languages to providing more accurate forecasts for other languages.  We have now developed the system to test children in American English, Mexican Spanish, Argentinian Spanish, Canadian French, Dutch, Hebrew, Mandarin, and South Korean among others.  The most challenging language proved to be Hebrew because of site site changes needed to enable right to left presentation and writing.

We then developed scoring and benchmarking functionality for the system.  Again, this was done on a time and materials basis.  The purpose of this functionality is to provide researchers with how each child in their study compares to national benchmark data. 

We scoped an initial approach to update scores as each word was answered. With upwards of 50 words on a page this could be the recalculation would take place 50 times on a single page.  During functional testing we quickly realised this wouldn’t work and switched to calculating as every page was submitted.  This again caused some issues and the calculations are complex and take some time to complete.  The user could press enter a second time, thinking the system hadn’t registered the key press, which caused calculation duplication.  The final approach was a single calculation once the survey was completed.

This was a 4 week project.  Due to the generic approach we took to the calculations, the change in approach caused no impact on cost or timescale.  We had recognised the potential risk to our calculation approach and developed the module to make it easy to adjust.

We continue to develop the system for Stanford, including taking on the upgrade, support and maintenance of a sister system (wordbank.stanford.edu) which provides statistical analysis of language data among children around the world.

Example Work

Here is a random example of some of our work.