delivering technology in an agile framework in the public · better integration of consistent ui/ux...

19
Delivering Technology in an Agile Framework in the Public Sector Ijeoma Genevieve Mbamalu Assistant Deputy Commissioner Homelessness Technology

Upload: others

Post on 06-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Delivering Technology in an Agile Framework in the Public Sector

Ijeoma Genevieve Mbamalu

Assistant Deputy

Commissioner

Homelessness Technology

Page 2: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 2 | Author: Ijeoma Genevieve Mbamalu Confidential: NYC – DHS | DSS | HRA

Why is Agile Needed in the Public Sector

Key Benefits of Agile – Helping Agency Mission

Roadblocks on the Path to Agile

What was Developed – Our Achievement

How Was Agile Introduced – Establishing New Standards

Agile Practice Example - Gartner Research Case Study

Agile in the Public Sector Table of Contents

What is Agile: Comparing Methodologies

Fireside Chat with Professor Ron Rigores on Agile Transformation

Page 3: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 3 | Author: Ijeoma Mbamalu Confidential: NYC – DHS | DSS | HRA

What is Agile: Comparing Methodologies

Page 4: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 4 | Author: Ijeoma Mbamalu Confidential: NYC – DHS | DSS | HRA

What is Agile: Agile SCRUM Overview

Page 5: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 5 | Author: Ijeoma Mbamalu Confidential: NYC – DHS | DSS | HRA

Why is Agile Needed: Public Sector Innovation

The transformative approaches

employed in a public sector organization, as summarized by

their business value to customers

Create a Common Framework For Development

Increase usage of open source technology

Establish Agile Cadence For Development

Employ Standard User Experience Design

Update methodology and approach to custom software development. Enable automation tools to allow for better build, test and deployment steps in the Software Development Lifecycle (SDLC) process.

Leverage open source tools to provide low-cost development options and demonstrate business value quickly. Combine open-source tools with legacy tools to extend the useful life of the technology solution

Upfront and consistent collaboration with both IT and a cross-section of business

stakeholders, who partake in the prioritization, build, and evaluation phases

of IT solutions. Assure incremental and iterative delivery of solution.

Create a user experience group that will use thoughtful design approaches to improve usability of IT solutions. Provide standard

assets for UI/UX that will assure consistent use of exemplary look and feel across all IT

solutions

Recently our business customers challenged ITS to improve its approach to software development and service delivery efforts – with a particular focus on the key areas below:

Page 6: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 6 | Author: Ijeoma Mbamalu Confidential: NYC – DHS | DSS | HRA

6 1

4 3

2 5

Standard Design Framework: Better integration of consistent UI/UX

approaches for application development.

Agile: Incremental releases of software

modules.

Software Development Lifecycle (SDLC): More leadership and collaboration across IT and Business stakeholders on technology solutions.

Common Application Framework: Standard approaches and tools to building, testing and deploying technology solutions.

Common Application Framework: Improve resource allocation to

maximize the skillset of team members and offer more career paths

Open Source: Using freely available source technology to facilitate rapid development of solutions to solve business problems.

Mission: Fighting

Homelessness, Poverty, and Income

Inequality

Key Benefits of Agile: Public Sector Innovation

Page 7: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 7 | Author: Ijeoma Mbamalu Confidential: NYC – DHS | DSS | HRA

New Team Structures New Team Practices New Skills New Tools Radical Transparency Standard Application Framework Standard Design Approach

Roadblocks Faced: Agile Process High Introduced Expectations

Page 8: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 8 | Author: Ijeoma Mbamalu Confidential: NYC – DHS | DSS | HRA

Tech Stack

App/Infra/DB Components

Mo

nit

ori

ng

& N

etw

ork

De

vOp

s

CARES

RAMS REPORTING

PORTAL

HOME

Legacy Development Teams have many

Hurdles to Overcome

Learning Agile/Scrum

Learning JIRA/Confluence

Learning Git/GitFlow

Old, Slow PCs

Incorrect PC Image for Developers

Networking and Firewall Issues

Learning Modern web Development (Angular/Vue/React)

Learning Code-First Entity Framework

Addressing Technical Debt (Compliance Checklist)

CAF Services availability affected by Network/Infrastructure problems

Configuration and Startup Challenges

Applications in the Queue

01

02

03

04

05

06

07

08

09

10

11

Roadblocks Faced: Barriers to Adopting Standard Framework

Page 9: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 9 | Author: Ijeoma Mbamalu Confidential: NYC – DHS | DSS | HRA

What was Developed: Step 1 – Standard Application Framework

Angular Libraries

npm npm

Seed Starter Project - Web

Angular Core

Core Services

Seed Starter Project - Mobile

Application Frameworks

React Native Libraries

CAF CI/CD

IDP Config Scheduler

npm npm

npm npm

Seed Sample Project

Example App

Developer’s Guides

Interactive Reference

http://cafdocs.dhs.nycnet

Component Overviews

Documentation

Logs

Redis

Enterprise Tools

What Is the Standard Application Framework?

Build, Deploy Apps

React Native

Core

Page 10: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 10 | Author: Ijeoma Mbamalu Confidential: NYC – DHS | DSS | HRA

Application Lifecycle Management Application Lifecycle Management

DevOps

Application Services Back-End

Front-End npm npm

IDP Hangfire

Scheduler

npm npm

npm npm

Logs

Redis

UPGRADE

2.2 UPGRADE

2.1

Freshen Look and Feel

EPPlus Excel Mgmt

SendGrid Email

Monitoring & Alerting

App Configuration

Secrets Mgmt

Auto Provisioning

Build Server

Job Runner

Binary Repository

Application Deployment

New Existing

Incremental Approach No big bang Work closely with teams Risk-based prioritization Crawl Walk Run

What was Developed: Step 2 – Roadmap of Tools & Open Source

Page 11: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 11 | Author: Ijeoma Mbamalu Confidential: NYC – DHS | DSS | HRA

Project Repository

Client-side code Server-side code

Application Generator Generate with dotnet Template. dotnet new cafseed –n [appName]

myproj

Generate seed

Server-side code

Data(Entity Framework)

API endpoints

Domain(Business Rule)

API Tests

Client-side code

Unit test

Angular SPA

Mock-server

End to end test

CI/CD

Package

Run Test

Deploy

Build

Trigger Build

Deploy

Artifactory

myproj3.1.0.1 Nuget package

Extract and deploy to higher environment

# Postgres

/SQL Server /Oracle

Kestrel

Client Nuget package

Server Nuget package

What was Developed: Step 3 – Build Automation Process

Page 12: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 12 | Author: Ijeoma Mbamalu Confidential: NYC – DHS | DSS | HRA

How it was Implemented: Introducing a Standard Framework

The objective of the common application framework is to provide standard approaches to solving the types of problems commonly experienced by application teams, including:

Resilience and Maintainability Increase flexibility and reduce brittleness so that systems are Robust, maintainable and manageable

Cloud Native Adopt cloud friendly designs that maximize application portability for private cloud or public cloud

Performance and scaling Improve system performance and scalability

Deployments Deploy applications quickly and easily whether on-premise or Cloud

Software Quality Improve software quality, reduce risks, and enhance usability

Page 13: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 13 | Author: Ijeoma Mbamalu Confidential: NYC – DHS | DSS | HRA

Business Request

1

Requirements Elucidation

2

Requirements Approved

3

Development and Unit Tests

4

Quality Control

5

UAT

6

Support

7

Release into PROD

8

Technology Solutions Process Flow

Conception/Design Development Testing

Business Solutions

Team

PMO

Project Manager

Product Owner

Business Owner

Developer

Technology Solutions

Owner

# Items in Queue

Size of Items S/M/L/H

Status of Items R/Y/G

# Items in Queue

Size of Items S/M/L/H

Status of Items R/Y/G

# Items in Queue

Size of Items S/M/L/H

Status of Items R/Y/G

# Items in Queue

Size of Items S/M/L/H

Status of Items R/Y/G

# Items in Queue

Size of Items S/M/L/H

Status of Items R/Y/G

# Items in Queue

Size of Items S/M/L/H

Status of Items R/Y/G

# Items in Queue

Size of Items S/M/L/H

Status of Items R/Y/G

# Items in Queue

Size of Items S/M/L/H

Status of Items R/Y/G

Steps to how this was introduced to elicit TRUST with the Business

A) Transparency: Letting them know that we have a model

B) Structure: Making sure WE agree on & Document our new process and structures

C) Roadmap: Timeline of process flow to get from the request to the release (incremental improvement)

D) Communications: Roadshow presentation for the business – highlighting benefits

E) Training: Training for the business and IT on how to leverage new process & Structures

Deployment

- Training - Support - Release

Standard request form

Tru

st

Development Effort

Current Structure

New Structure

Changing the Trend

Governance Process Implemented Here

Two-Three Week Sprint Cycles

How it Was Implemented: Implementing Agile SDLC

SCRUM Master

Page 14: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 14 | Author: Ijeoma Mbamalu Confidential: NYC – DHS | DSS | HRA

How it was Implemented: Overcoming Roadblocks

PC Provisioning (Dev Team)

Updated Image Validation Checklists

GIT/GITFlow (Training Team)

1-hour Introduction/Walkthrough, ½ Day Official Hands-on Training, Conversion from TFS

Angular & Core Seed (Dev Team)

Unified Seed Generator, Single Artifact Deployment, Zero External Dependencies, Modular Architecture

Core Services (Dev Team)

Friendly GUIs, Multi-Level Logging (File, Airbrake, ELK), Monitoring & Manageability (SolarWinds, HealthCheck)

JIRA (Training Team)

1-hour Introduction/ Walkthrough, ½ Day Official Hands-on Training

Angular & Core Framework (Dev Team)

Unified Confluence Documentation, Hardening, Advanced Usage Examples (Complex Forms, Parallel Processing, Complex Grid)

Angular & Core Seed: “Plug-Ins”

(Dev Team)

IDP/AD Authentication, Integration of: BRE/WF, CI/CT/CT, and Angular JS

CI/CD (DevOps Team)

Unified Confluence Documentation, Application Build/Test/Deploy path and framework of tools

Page 15: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Garter Research 2020 Case Study: How New York City Leverages Digital Government Strategy to Improve Homeless Services

Page 16: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 16 | Author: Ijeoma Genevieve Mbamalu Confidential: NYC – DHS | DSS | HRA

In 2016 NYC Established a Goal to reduce the number of homeless

people living on the streets

DHS uses a combination of agile methodology and Human Center Design to develop StreetSmart

NYC Homeless

NYC 311 Dispatcher

DHS Outreach Dispatcher

DHS Outreach Teams

Key Roles

Challenges

Manual processes for transferring data between systems

Time consuming to coordinate teams

Lots of opportunity for human error

Delayed responses result in missed opportunities

StreetSmart Dashboard

AP

I In

tegratio

n

StreetSmart Mobile App

DHS StreetSmart (Dashboard & Mobile App)

Page 17: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Last Updated: 4/15/2020 5:40 PM Page: 17 | Author: Ijeoma Mbamalu Confidential: NYC – DHS | DSS | HRA

Fireside Chat: Agile Transformation

Page 18: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Fireside Chat - Questions

How are agile transformation efforts conducted in other New York City government agencies?

What are questions public sector organizations and individuals should explore before making a commitment to enterprise-wide agility?

Are there examples of agile transformation pitfalls to be on the look out for?

The journey to an agile organization often starts with sound leadership. What are some of the capabilities a senior leader in a public sector organization attempting agile should posses and/or invest in?

Agile transformation in IT, isn't just a new way of delivering solutions; how should leaders in public sector organizations plan for cost and innovation-driven growth in an agile framework?

Page 19: Delivering Technology in an Agile Framework in the Public · Better integration of consistent UI/UX approaches for application development. Agile: Incremental releases of software

Thank You