Reporting on the Digital Strategy
Benjamin J. Balter
Presented 8/29/12 at the Drupal4Gov conference
About Me
Presidential Innovation Fellow working on Project MyGov
Digital Strategy within Office of the US Chief Information Officer
Business Process Automation on White House SoftWare Automation and Technology (SWAT) Team
New Media at the Federal Communications Commission
* Views are my own
Roadmap*
How We Got Here
Reporting How To
What’s Next?
*Minimal code involved, scout’s honor!
How We Got Here
\[photo via [facilitybikeclub](http://www.flickr.com/photos/facilitybikeclub/3197419294/lightbox/) ]
As we were sitting down to draft the digital strategy, it dawned on us, why create tomororow's government, and requrie it to be realized through yesterday's methods
Today, OMB enforces much of its policies via only 24 of the CFO act agencies
What if enforcement and reporting were to go from analysts to APIs, without that physical limitation, we could scale endefinetly.
21st century reporting for a 21st century plan
1st concept... release the strategy's action items as an API so that agencies could dynamically build against it
2nd concept... build a bare-bones open-source tool that help lower the lift for agencies to comply with reporting requirements. Encourage collaboration.
concept three... put the schema and software on GitHub, where agencies (and the public) could fork and contribute
The Generator
Lower the level of effort required by agencies
Simple, web-based form to enter reporting information
Generates XML, JSON, and bare-bones HTML representations of report
Returned to user as a single zip file
Report can later be updated by uploading JSON file and regenerating
Schema: http://github.com/GSA/digital-strategy/
XML
<?xml version="1.0"?>
<report>
<agency> DOD</agency>
<generated> 2012-08-22 13:09:26</generated>
<items>
...
<item id= "2.1.1" >
<parent> 2.1</parent>
<text> Paragraph on customer engagement approach</text>
<due> 90 days</due>
<due_date> 2012/08/21</due_date>
<fields>
<field>
<type> textarea</type>
<name> 2-1-1-customer-engagement-approach</name>
<label> Paragraph on customer engagement approach</label>
<options/>
<value> The Department of Defense (DoD) engages customers using a variety of methods. DoD interfaces with service providers and customers to help identify which services are the most popular and possible high priority candidates for API conversion. The DoD datasets on data.gov provide further insight on what information customers are currently accessing for possible API conversion. The DoD Open Government page at http://open.dodlive.mil/ has been updated to allow external customers to provide input as to which datasets should be available through a Web API. Customer feedback will be included with resource availability and budget constraints to prioritize the services made available via Web APIs.</value>
</field>
</fields>
<multiple/>
</item>
</items>
</report>
This is the XML output as created by the generator. It describes each step, and the agency's progress on that step.
JSON
{
"agency" : "DOC" ,
"generated" : "2012-08-23 13:17:54" ,
"items" : [
{
"id" : "2.1.1" ,
"parent" : "2.1" ,
"text" : "Paragraph on customer engagement approach" ,
"due" : "90 days" ,
"due_date" : "2012\/08\/21" ,
"fields" :[
{
"type" : "textarea" ,
"name" : "2-1-1-customer-engagement-approach" ,
"label" : "Paragraph on customer engagement approach" ,
"options" :[],
"value" : "In addition to informal discussions with internal and external stakeholders, we have posted an entry on our blog (http:\/\/www.commerce.gov\/blog\/2012\/08\/08\/commerce-department-needs-your-input-digital-strategy) soliciting feedback. We have also used a Facebook poll and daily tweets to drive traffic. Several stories have been written about our outreach and have also driven traffic to the blog post."
}
],
"multiple" : false
}
]
}
This is a JSON representation of that same XML output. (Why JSON > XML, even though .gov's love XML)
Action Items API
https://raw.github.com/gsa/digital-strategy/1/agencies.json
{
"generator_version" : "1.1" ,
"generated" : "2012-08-13 17:36:18" ,
"api_version" : 1 ,
"items" : [
{
"id" : "2.1" ,
"parent" : null ,
"text" : "Engage with customers to identify at least two existing major customer-facing services that contain high-value data or content as first-move candidates to make compliant with new open data, content, and web API policy." ,
"due" : "90 Days" ,
"due_date" : "2012\/08\/21" ,
"fields" :[
{
"type" : "select" ,
"name" : "2-1-status" ,
"label" : "Overall Status" ,
"options" :[
{ "label" : "Not Started" , "value" : "not-started" },
{ "label" : "In Progress" , "value" : "in-progress" },
{ "label" : "Completed" , "value" : "completed" }
]
}
],
"multiple" : false
}
]
}
Raw, action items pseudo-API that generator uses to make form and create XML/JSON files
Slash Digitalstrategy
agency.gov/digitalstrategy/
- HTML
agency.gov/digitalstratey.html
- HTML (alternative)
agency.gov/digitalstratey.json
- JSON
agency.gov/digitalstratey.xml
- XML
Where final files would live on the agency's web presense
Agency List API
https://raw.github.com/gsa/digital-strategy/1/items.json
{
"generator_version" : "1.1" ,
"generated" : "2012-08-13 17:36:18" ,
"api_version" : "1.0.1" ,
"agencies" : [
{
"name" : "Administration for Children and Families" ,
"id" : "ACF" ,
"url" : "http:\/\/www.acf.hhs.gov\/"
},
{
"name" : "Administration on Aging" ,
"id" : "AOA" ,
"url" : "http:\/\/www.aoa.gov\/"
}
]
}
With a list of all 1000x agency domains, and knowing each domain has a `/digitalstrategy.json` file, a developer could build a crawler, e.g., to find all APIs opened up as a result of the DGS, or to create a list of all agencies' open strategies, etc.
And?
Did I mention it's on GitHub? DoC already forked and contributed... please do the same! No really, please!
What’s Next?
Schema
Initial goal was strong proof-of-concept
Ease of use for agency, not developer
— 2.0 —
Just the facts, ma’am
Object (not action-item) oriented
A Model for Good Governance
Radical Transparency
Where else can you get a character level changelog with who changed what when?
Cross-Agency Collaboration
First time in history, IMHO
API-First Implementations
Expose an API, then work backwards; think like a machine
Citizen-Driven Innovation
Two apps showing the power of APIs. Report agencies' progress on the digital strategy, and were built within days of the strategy's release.