Staying AgileLessons Learned Building GIS Software in SoCal
JENNIFER LINK
AGENDA
▶ CrimeMapping.com
▶ The Plan
▶ The Implementation
▶ The Web Application
CrimeMapping.com
▶ First launched in 2005
▶ Public website to display crime incidents and sex offenders
▶ Used by law enforcement to reach out to public
▶ Used by public to track crime in their neighborhood with alerts
▶ Over 400 US agencies use the application
CrimeMapping.com
CrimeMapping.com
CrimeMapping.com
CrimeMapping.com
Application Successes
▶ Meets user needs▶ Application meets law enforcement agency and public needs
▶ Great user experience (UX)▶ Accessible and easy to use
▶ Fast performance▶ Map is not bogged down by the data
▶ Sustainable and maintainable▶ Code standards followed, documentation created
The Plan
Agile Methodology
▶ Features defined by requirements▶ Features added to a backlog▶ Plan features for sprints
Essential Planning Tools
▶ Visual Studio Team Services – Project Management▶ Includes project management capabilities for requirement tracking
▶ Confluence – Document Sharing▶ Web based team collaboration software
▶ #Slack – Text messaging▶ Uses channels for text messaging
▶ Visio – Object Models▶ Diagramming for database, software, other
Lessons Learned: Planning
▶ Agile methodology gets features to users quickly
▶ Team communication is key; find ways to share and stay connected
▶ Overlapping knowledge of the application is critical
▶ Don’t be afraid of documentation
The Implementation
CrimeMapping Implentation
Host EnvironmentCustomer Site
Client Applications
Application Host
▶ CrimeMapping originally hosted in-house
▶ Issues with real estate, staff resources, security
▶ Moved to Colocation facility; security improved but resources still limited
▶ Microsoft Azure Commercial selected as the cloud host
▶ Set up developer, test and production sites
The Cloud
CrimeMapping in the Cloud
▶ Azure features that helped us
SQL DatabaseApplication Service Web Jobs
Blob Storage
Geo-replication
CDN
Deployment Slots
Website Data Repository Automation
VS2015 Azure Development Tools
Deployment
Alerts
Lessons learned: Implementation
▶ Creating a config tool to extract data freed up developer time
▶ Extracted data was projected to Web Mercator; accurate enough for the app
▶ Moving to the cloud freed up IT resources for other projects
▶ Service levels in the cloud could be adjusted for spikes in traffic
▶ SQL Server V12 was used to store spatial data; and perform simple spatial queries
▶ DevOps team checked application weekly to assess
The Client Application
The Web Application
▶ IDE: Visual Studio Team Services▶ .NET shop already familiar with Microsoft technology▶ All developers from a .NET background
▶ Language▶ Front end: HTML and JavaScript▶ Back End: C# with SQL or LINQ
▶ Mapping ▶ ArcGIS API for JavaScript▶ ArcGIS Online Basemaps
The Source Code
▶ Code standards and reviews▶ Comment the code
▶ One statement per line
▶ Design Architecture▶ MVVM – Model-View-ViewModel
▶ DTOs to communicate client/server
▶ Exception handling▶ Always handle potential errors
▶ Try / Catch is your friend
Lessons Learned: The Web Application
▶ A good designer can set you apart
▶ A dynamic layout is expected
▶ Only download the data you need
▶ Use an architectural pattern
▶ Choose a mapping API that works for you
Most important lesson learned…
▶ HAVE FUN!