As with all NetFore engagements, this one involved working closely with the customer from detailed discovery through to final delivery. Our Agile software development process produced working iterations of the software at regular intervals, which enabled the NDP to measure progress and provide NetFore with timely feedback throughout the development lifecycle.
Step 1: Conduct detailed discovery
Over the first few weeks of the project, members of the NDP team, including campaign managers, IT staff, and political strategists, met regularly with the NetFore team. The NDP experts brought their vast knowledge of election campaigning to the table, which allowed us to develop an in-depth understanding of the party’s requirements.
Working together, we defined user roles, wrote user stories, created wireframes, and defined system architecture and resource requirements. This collaborative approach gave us everything we needed to complete the initial design and estimate the effort for the entire project. It also gave the customer confidence that we thoroughly understood their requirements and would deliver an exceptional solution.
Step 2: Develop the minimum viable product
With the discovery process complete, the team built and delivered an early working version of the product. Stakeholders got an initial look at this “minimum viable product” and users were able to try it for the first time. Their early feedback was instrumental in making improvements in subsequent iterations of the application. Getting a first release out quickly also allowed us to demonstrate measurable progress to the customer.
Key technologies used: Grails, Elasticsearch, AngularJS, Twitter Bootstrap.
Step 3. Deliver frequent iterations
After delivering the first version of the application, NetFore provided the NDP with new features and improvements on a regular schedule, which helped them measure progress against project milestones. The customer’s testing team worked alongside NetFore’s development team to identify any issues and get them resolved as early in the process as possible.
Step 4. Manage complex data migration
The customer’s existing campaign management application had several hundred unique databases, each with its own set of stored data. Over time, many of these instances had been customized, which led to many inconsistencies.
By getting a head start on data migration in this phase, the team developed an in-depth understanding of how to translate and normalize the input to the new data model from multiple sources. From there, a process and schedule of migration was implemented to import and validate data at regular intervals to ensure the migration was completed before the system went live.