In neuromathematics, the reaching of a frontier of science means ‘courageous’ software development

Computer scientists have engaged in ever-evolving, innovative strategies to create operational neuromathematical softwares. The development team of the Research, Innovation and Dissemination Center for Neuromathematics (NeuroMat) has progressively become a central player in the overall scientific project of combining mathematical and neuroscientific research agendas. NeuroMat was established in 2013 at the University of São Paulo (USP) is an interdisciplinary state-of-the-art institute that aims at building a renewed theoretical of neural functioning and that is coordinated by Prof. Antonio Galves, with funding from the São Paulo Research Foundation (FAPESP).

Important activities that the software development team have been involved with in NeuroMat are at least twofold. Firstly, they are responsible for translating and operationalizing needs of scientific groups that work in the frontier between neuroscience and mathematics. “Neuromathematics is a new field of science and what it entails is not completely clear for people who are at the edge of this field, thus having an exploratory aspect that one cannot disregard,” said Prof. Kelly Braghetto, from USP’s Department of Computer Science and a leading member of the software development team. Secondly, NeuroMat computer scientists have had to come up with programming methodologies and designs that are compatible with this evolving and exploratory aspect of neuromathematical research projects; this has led to perspectives of scientific advances within Computer Science.

Six developers and three professors are currently involved in the NeuroMat software development team. Three junior researchers, one senior researcher (a specialist in architecture and software development) and two information-technology professionals work under the supervision of Prof. Braghetto, Prof. Fabio Kon, from USP’s Institute of Mathematics and Statistics, and Prof. Amanda S. Nascimento, from the Computer Science Department of the Federal University of Ouro Preto (UFOP). This team has progressively grown in the last months; in December 2013, four people including professors worked with software development within NeuroMat. There are currently three job openings to join this team within NeuroMat (employment opportunities may be found here).

The growth of the software development team may be explained partially by an increasing complexity of needs related to NeuroMat’s scientific projects. Initially, there were two main projects: the creation of a patient database for the Institute of Neurology Deolindo Couto at the Federal University of Rio de Janeiro (INDC/UFRJ) and the modeling and implementation of a public, open-access neuroscientific database (more on these projects may be found on a previous issue of the NeuroMat Newsletter, here). While these projects were progressing, the initial software development team realized the tools they were creating could be expanded --i.e., improving the INDC database so that it would include data on studies to which patients are associated and making such improved tool available for other research groups, including groups that were not related to NeuroMat.

Extreme Programming

The NeuroMat software development team has adopted a working methodology that is called Extreme Programming (XP), which is one of the most famous agile development methodologies. XP was originally created by the software engineer Kent Beck in the late 1990s and is dependent on frequent exchanges between the development team and “clients,” people and organizations that will effectively use the softwares that are being created in their work. Characteristics of XP are minimizing bureaucratic efforts, increasing flexibility, intensifying internal communication and speeding up feedbacks. The general idea is that programmers split the overall product they are developing in as many small products as possible that are continuously submitted and evaluated by the software clients; this splitting of activities rest upon an efficient planning of steps to be sequentially achieved. This programming strategy is especially suitable for small and medium-sized programming groups, since it requires intense, regular training and meeting.

“Extreme Programming, as it is used within NeuroMat, puts a lot of emphasis on strong internal communication, constant feedbacks and more importantly courage,” said Prof. Nascimento, who has been responsible along with Prof. Braghetto and Prof. Kon --the latter is an expert in agile methodologies-- for studying this programming tool and designing its application within the research center, including initial training of the software development team. According to Prof. Nascimento, courage in software development relates to acknowledging the fact that the best way to produce the best possible products is to be honest and transparent on all the possible levels, from customer communication to the way you type code despite how uncomfortable the idea of high transparency might look like at the beginning. “Courage means making the hard decisions when necessary: if a feature is not working, fix it, if some code is not up to snuff, improve it, if you are not going to deliver everything you promised on schedule, tell the customer, decide what you can deliver and do it”, she said, highlighting that the implementation of this value in a working group depends on having frequent meetings, that “are of uttermost importance for sustaining a good and updated technical level within the team and for strengthening our bonds.” The current training schedule include weekly workshops and every-other-week planning sessions.

In the short term, the software development team hopes to build a coherent group identity, said Prof. Nascimento, according to whom the team is still at an initial stage, in which they are having a first contact with procedures and values of Extreme Programming. “A long-run challenge is the improving of the development team within a scientific research, in which needs, demands and priorities are evolving, and in which the actual programming and developing remain innovation of Computer Science.” Computational tools that are being developed within NeuroMat are not simply ad-hoc solutions, and there are expectations that they could lead to substantial scientific improvements and submitted for publication.

This piece is part of NeuroMat's Newsletter #3. Read more here

NeuroCineMat
Featuring this week:
Newsletter

Stay informed on our latest news!



Previous issues

Podcast A Matemática do Cérebro
Podcast A Matemática do Cérebro
NeuroMat Brachial Plexus Injury Initiative
Logo of the NeuroMat Brachial Plexus Injury Initiative
Neuroscience Experiments System
Logo of the Neuroscience Experiments System
NeuroMat Parkinson Network
Logo of the NeuroMat Parkinson Network
NeuroMat's scientific-dissemination blog
Logo of the NeuroMat's scientific-dissemination blog