NDItech - Product Development Process
This is the first in a series of posts on the NDItech team’s product development process. NDI’s tech products attempt to solve specific problems for people and organizations in emerging democracies. In this post, will look at the example of DemTools development to get an insight into our development process. More about DemTools can be found here.
For the last six months, our team has been following follow the scrum methodology, which is an agile software development framework, for the development and evolution of DemTools. Agile methodology allows us to be flexible, prioritize tasks, and respond to the evolving requirements of our customers.
We wanted to share a bit about how we’re using this agile methodology for developing tech-powered political change programs here at NDI. In this post we’ll tell you how we relate to people and programs, how we think about requirements, and the timelines for our sprints, and the tools we use to glue it all together.
For the purpose of development of DemTools, the primary customers are the country teams at NDI. The country teams in turn help political parties and civil society organizations in their respective countries use and benefit from NDI’s technology efforts, such as DemTools.
The NDItech team collectively acts as the product owner of DemTools. Through presentation, demos and constant interactions with the country teams, our team generates feature requests and cultivates a backlog for software development. As democracy activists with field experience in resource constrained settings, we attempt to bring insights and empathy for end users of our products into the software development process.
9 members constitute the core NDItech team with both our ICT and Software Development crew and software team. Often external consultants are brought in to develop specific features. Further, field/country teams are involved to review and provide feedback for the tools and translate content in local languages.
Each DemTool addresses a specific set of functional requirements (ie, the tools shall do...) For example, the Elections tool helps ‘Analyze election information and convincingly demonstrate the veracity of the official results.’ A common but not exhaustive set of non-functional requirements (ie, the tools shall be...) that all our products carry are the following:
inexpensive or free
fast to roll out
easy to train and support for field staff
easy to maintain and update
operable in in mobile/tablet environment and on computers
operable in online and offline mode when possible
available in local language(s)
stores sensitive data in a secure environment
Note: Not all of the non-functional requirements apply to DemTools.
To keep a an agile sprint running there are a series of predictable, structured meetings in the development and deployment of DemTools.
3 week sprints: Each “sprint” is a unit of development time and is usually 3 weeks or 15 working days. We take into account the nature of the team member’s work, vacations and holidalys before scheduling tasks
1.5 hour planning meetings and retrospectives: Sprint planning meeting and Sprint Retrospective take that long. Sprint planning is when we assess the priority of the next sprint and create backlog of issues. Sprint retrospective allows the team to review the performance of the team during the most recent sprint.
30 mins weekly: Friday Updates: This is my opportunity to judge the team on the week’s progress, and the team’s opportunity to call me out on the tasks, processes, etc.
20 min Daily scrum meetings: These fast checkins to summarize the team’s activities for the day and call out any dependencies among the team.
The tools that we develop might be used by teams for a varying time periods. For example, the Elections tool used by a country team to perform Parallel Vote Tabulation (PVT) and display results could be used during the elections and a few months after the close of elections. Constituent management tool, CiviMP could have a decade of usefulness for a political party.
Tools to Keep On Top of it All
We use different tools for different activities and to improve our efficiency;
JIRA helps us track our tickets, bugs, backlog, issues and progress
Google helps manage our documents
Smartsheet (sometimes) helps us track our individual and team tasks
Transifex helps us provide localized solutions to our partners by streamlining translations
When it comes to actually developing and managing webapps like DemTools we’re huge fans of Amazon Web Services.
We will dive deep into each of the above topics and others in the following blogs.