SDT NIWA Systems Development Team Andrew Watkins SDT Overview Taking dull repetitive work from scientists and giving it to robots since 2008.
People Processes & Tools SDT People
The Team SDT
The Team SDT Colocated Agile Methods Diverse Skills Mix of Youth and Experience Capacity and Capability 80:20 Development & Research
Work on SDT Dataware Middleware Web services Web User interfaces Thick and thin application clients Mobile, fax, and notification services Other Technical Stuff
Don’t Work on SDT Static Web content - Communications Office Systems – IT Operations Intranet GIS Scientific programming Model Development High Performance Computing Facility
Key Relationships SDT IT General Manager – Arian de Wit IT Operations – Anthony Cole Chief Scientist EI – Jochen Schmidt GIS – Arne Pallentin Scientists Public and Science Users Peer groups
People Processes & Tools SDT Proceses
Processes SDT Agile development methodology Full Software Engineering Life Cycle Strategic Planning
Agile Software Development SDT Scrum Iterative development Test driven development Continuous Integration Virtual Environments Evolving process
Software Engineering Baseline Standard SDT Revision control. Auto build process and development project Test Coverage Deployment System Documentation Issue Tracking and change control process Run Time monitoring Technical support plan and SLA. Users and Access levels are identified Data is managed
Data Management Process SDT Work in progress A big sell to the science staff Overcoming hoarding Making metadata available Quality control chain What can software do?
Managing Multiple Projects SDT Over 80 online services Using Wiki to document – basic metadata Many legacy systems Ongoing Maintenance Sprints – burst of focus to delivery JIRA Issue Tracking – custom workflow Prioritisation
People Processes & Tools SDT Tools
Atlassian Confluence – One.NIWA SDT
Atlassian Confluence – One.NIWA SDT
Atlassian Confluence – One.NIWA SDT
Atlassian JIRA SDT
Atlassian JIRA SDT
Eclipse SDT
Subversion SDT
Cruise Control SDT
Selenium Web App Test SDT
Programming Languages and Frameworks SDT Java Frameworks – Struts, Seam N-Tier systems, Components Web services, Web UI PHP Frameworks – Symfony, Zend Simpler systems, Front ends
Relational Database SDT PostgreSQL/ PostGIS –Free, Open Source, Full Featured –Strong Geospatial Support Oracle –Perceived Quality, Performance –License costs – Distribution issues. Others - Legacy –Informix, Empress, Paradox, MySQL –Actively retiring
Non Relational Database SDT eXist –XML datastore –Good for reference information –Lookups, Code lists –XQuery –XSLT
NIWA Systems SDT Policy
NIWA Systems Goals Web Friendly Restful Documented APIS Open Data by default Open Source tools first choice Mostly Free Standards Compliant SDT
NIWA Systems Goals Avoid Vendor Lock in Avoid CMS Embedding Avoid Brand Embedding Don’t reinvent wheel Have Fun SDT