"...Within 90 days of the date of this memorandum, create a page on its website, located at www.[agency].gov/digitalstrategy, to publicly report progress in meeting the requirements of the Strategy in a machine-readable format....
...implement the requirements of the Strategy within 12 months of the date of this memorandum and comply with the timeframes for specific actions specified therein"
3 months to get a "machine-readable" status report on implementing an API?
Then, complete the implementation in 12 months?
If it takes 3 months for an agency to get a status report up, how long will it take them to implement said API? Government work, sheesh....
3 months to get a "machine-readable" status report on implementing an API?
2 weeks for the director of each agency to delegate someone to be responsible for this. 2 weeks for said responsible person to figure out what an API is. 6 weeks for them to go around to everybody in the agency asking "are you doing any APIs yet?". 3 weeks to take the feedback and turn it into a semi-coherent report.
They need to be sure they 1) are exposing everything they need to be exposing, 2) are hiding everything they need to be hiding, 3) are ready to handle potentially significant load, and 4) are robust against attack. Each of these is a little harder and/or a little more important in government than in a start-up (your start-up is probably less likely to get an informant killed because they posted the wrong thing than, say, DOJ), and 1 and 2 especially involve more than technical work - processes need to be set up to actually get the data where it needs to go in the first place. I'd love it if it could be faster, but I don't think 15 months is at all absurd.
Actually, that's just project management 101. The fact that it's government work doesn't make the steps to delivery any different than anywhere else, just the subject matter. Or, it shouldn't be any different -- though I know some claim otherwise.
You need to do 1, 2, 3, and 4 regardless of where you are, yes, but my point was that each of those is larger (in scope or import) in the context of a large, long running government agency than in the context of a startup or small company.
Remember that this has to accommodate the agency in the worst situation. The alternative would be to give separate deadlines for each agency in the memo, but that may be hard to determine from the outside (after all, "what are you going to do, how, and when?" is the first thing he's asking for) and you still have to wait for the last one to have your "Hey, everyone, there's data! Have at!" press conference.
I get where you're going, but it doesn't change the equation.
This is basically a conversation about project scope and management. Assuming this is more complex simply because it's a government agency is flawed thinking, though. I can certainly perceive complexity due to expectations or maybe the participants themselves (I've worked with some fed agencies), but that should have zero bearing on addressing the project itself.
But in reference to some of the specifics of how this is different (sensitive data, system load, system attacks, worst-case-scenario) -- this is begging for an iterative project approach as opposed to a waterfall basis. In spite of the fact that these aren't unique issues to government agencies, the context of addressing those issues might be (I have some idea of the technical capacities of our government.) I can accept there may be a learning curve in this project, but believing this project yields unique problems that haven't been dealt with elsewhere -- respectfully, that's just wrong.
If this is all very new to these federal agencies, that simply suggests a smaller initial scope that can grow after multiple iterations. Teams can learn about requirements, refine their APIs, shore up their operation, etc. Not to over-simplify, but this is basic project management.
Again, the context of the government's perview may be different than little-startup-dot-com, but the process of getting from A to B isn't really all that different.
They'll simply report they haven't been able to implement the report, someone will get a slightly lower evaluation score and life.gov will go on as usual.
My best guess is that in the initial 3 months they wont be doing just the page, they will be outlining the efforts in order to comply in the next 12 months with the executive order, buy any hardware they must buy, and delegate any work to any branches they might need to
I'd like to see you hire an entire department's worth of people, wait for them to devise an API for your agency, code it, provision server space and servers, and deploy in 12 months!
I get that this is a rhetorical question, stated in such a manner to imply I have insufficient context of the real requirements of this project and cannot gauge the size and complexity of it. But, I've got a full cup of coffee, so I will take a shot to see if I can address this impossible situation.
- hire an entire department's worth of people
The worst approach I can imagine is to start this project by hiring new, dedicated people. This project only succeeds by incorporating it into the very fabric of an agency's operation. Remember, new work must go on even after this API is in place. Hiring a dedicated group that somehow has to reverse-out everything the agency does going forward for purposes of external API access is a recipe for failure. Separate teams will already be at odds with each other; better to leverage the existing teams, as their the ones in best position to understand the context of how external access to their operations should function.
- wait for them to devise an API for your agency
I'm not sure if this refers to a lack of understanding the requirements, or to a lack of competency on the part of the team itself, but the presumed outcome is late delivery. If it's complex requirements, that simply suggests a basic, iterative project where scope is managed tightly and the duration is rather short (allows the team to learn as the project moves along.) If the suggestion is competency on the part of the team, hiring/contracting a few competent individuals to align with team leaders on the project has worked well for past projects. In either case, proper management of the project approach can address issues of timeline.
- code it
This goes to team capability, but also to an understanding about integration. Again, solvable problem based on the team capacity. If this suggests a unique code stack that's not already available elsewhere, I'd need to understand the justification. Project management 101.
- provision server space and servers
This implies the technical operations of our agency are fully-loaded, or can't address this in a reasonable timeframe, or purchasing requires some inordinate amount of lead time, or some other unknown reason. If the suggestion is that dependencies exist that threaten the timeline, those dependencies should be mitigated. Again, project management 101.
- deploy
This is a physical step of pushing bits live, so automation tends to make this a quick step. In my project, we thought about deployment actions when we determined how to devise our API. At this point, deployment is an operational aspect -- not a how-do-we-do-this function. This project doesn't proceed without understanding this step.
Disclaimer: I've actually done this type of project work for significant operations of size and complexity. I've also worked with a few federal agencies, so I have some familiarity with the lay of the land.
It's really not that daunting of a project. I would respectfully suggest that you re-consider your own presumptions, as there are a lot of ways to address this type of work.
are you kidding? an "entire department worth of people"? uh, how about 1 consultant for a few months and it can be hosted on an existing server. this is an api to provide access to data that already exists, not a rocketship to the moon.
3 months to get a "machine-readable" status report on implementing an API?
Then, complete the implementation in 12 months?
If it takes 3 months for an agency to get a status report up, how long will it take them to implement said API? Government work, sheesh....