Staying Agile - BeSpatial / urisa ontario · Lessons learned: Implementation Creating a config tool...

Preview:

Citation preview

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!