Skip to content
This repository has been archived by the owner on Apr 12, 2019. It is now read-only.

2018 content update #36

Merged
merged 18 commits into from Jul 20, 2018
Merged

2018 content update #36

merged 18 commits into from Jul 20, 2018

Conversation

lauraGgit
Copy link

@lauraGgit lauraGgit commented Jul 19, 2018

A lot of content changes based off of our growing understanding of this space:

Also close: #34.

@lauraGgit lauraGgit changed the title WIP: 2018 revamp 2018 content update Jul 19, 2018
Copy link
Contributor

@mheadd mheadd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! Just a couple of nitpicky questions.


Unlike other kinds of prototypes, acquisition prototypes are not typically used as a way to obtain user feedback, but rather to understand the mechanics behind a hypothetical user's experience. It should approximate a user’s experience to help identify risk, and to help validate technical decisions.
The government should leverage prototypes to garner obtain user feedback, validate technical decisions, and better understand the organizational barriers to deploying software in modern ways.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does garner or obtain make the most sense here?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, yes, will update.


### Help the buyer develop prototyping capacity

Be sure to assess the capability of the client to continue prototype work after the engagement is over. If you’re not helping the buyer develop their own capacity for using prototypes, you’re probably doing it wrong.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was one of our findings from the AK Medicaid project. Just curious why you eliminated it.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"You're probably doing it wrong" is not a particularly constructive way to frame this finding. I think we could keep it in if we discuss how that can introduce more risk into the project going forward.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I massaged the language a bit and added to the preceding paragraph.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only thing is this is the only page that kind of talks about the "client" as another entity, rather than a lot of the other pages that speak to "you" or at least the state/government- wonder if we want to reframe in what you added?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, good point. This was adapted from another source and it still shows that framing.

@lauraGgit
Copy link
Author

@mheadd
Copy link
Contributor

mheadd commented Jul 19, 2018

Thanks for the PR @lauraGgit!

high-five

Laura Gerhardt and others added 2 commits July 19, 2018 14:26
Added additional sentence about building internal capacity for doing prototypes.
@allalala
Copy link

typo at the bottom of the page. Should read As part of the GSA’s TTS

@lauraGgit
Copy link
Author

@allalala just to clarify which page?

Change framing in "develop prototyping capacity" section.
@lauraGgit lauraGgit requested a review from jposi July 19, 2018 18:53
Copy link

@hannahkane hannahkane left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hope this isn't too annoying. a few typos, but mostly these are style suggestions and can be disregarded if you don't like them

_data/navbar.yml Outdated
@@ -33,7 +38,7 @@ assigned:
show_in_menu: true
show_in_footer: false
-
text: Building Prorotypes
text: Building prorotypes

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: prototypes

@@ -10,36 +10,36 @@ image-credit: https://www.flickr.com/photos/hernanpc/

## What is Agile Development?

Agile development describes a set of principles for building software that allow collaborative, cross-functional teams to accommodate changing user needs and requirements.
Agile development describes a set of principles for building software that allow collaborative, cross-functional teams to accommodate changing user needs and requirements. Agile development alone will not help you build a good product. In fact, many agile projects fail unless they work to intergrate human-centered desgin.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo in last word: design


To help this process, we pair identifying requirements at a higher level (an “epic” in agile terminology) with an ongoing user research process. These epics describe the user need, not the solution. Through the user research process, these epics are turned into a set of increasingly-specific user stories. This is done continuously, so that user stories are ready for the development team no more than a month ahead of when the development team implements them. (For example, a user story might be: “As a caseworker, I want to see all my current cases and next steps so I know what I need to do next, and when I need to do it.” We wouldn't write: “The system shall display the next step next to each case in a grid on the main screen.”)
To help this process, we pair identifying goals at a higher level (an “epic” in agile terminology) with an ongoing user research process. These epics describe the user need, not the solution. For example, a user story might be: “As a caseworker, I want to see all my current cases and next steps so I know what I need to do next, and when I need to do it.” We wouldn't write: “The system shall display the next step next to each case in a grid on the main screen.” Through the user research and usability testing throughout the life of the product development, these epics are turned into a set of increasingly-specific user stories. Each story should be designed, researched, developed and tested within a single sprint. We validate each implemented story with usability testing with real end users, and use the feedback from that work to generate addtional backlog user stories.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo in last sentence: additional


There are three leading causes why IT projects fail: a lack of reliable input from users, incomplete requirements and specifications, and changes in the requirements and specifications. The Standish Group, an IT research firm, publishes an annual report on IT projects, in which they point out that these causes of failure are about the impossibility of “knowing” requirements up front.
We prioritize user stories continuously and do not focus on what is in the development backlog beyond what can be done in a month in the future.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggested rewrite: "...beyond what can be done within the next month."


The traditional “waterfall” method of software development assumes that software can be built once for a large, one-time investment. In practice, this is untrue, because requirements can rarely be fully known and change constantly. Users' needs tend to arise through research and testing, and development teams must discover appropriate solutions by building iteratively and interacting with users regularly.
The traditional “waterfall” method of software development assumes that software can be built once for a large, one-time investment. In practice, this is untrue, because requirements can rarely be fully known and change constantly. The product team's understanding of users' needs arise through research and testing which deepens but shortens your teams forecasting of costs..

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest replacing "constantly" with "regularly," "often," or "frequently." Extra period at end of last sentence.

I don't really understand what "deepens but shortens your teams forecasting of costs" means.


If the logic behind modular procurement is to break down large projects into smaller chunks to reduce risk, employ this same approach when prototyping. Instead of thinking of a prototype as an immutable whole, consider how it can be broken into pieces to address different questions or technical risks.
If the logic behind modular procurement is to break down large projects into smaller chunks to reduce risk, employ this same approach when prototyping. Instead of thinking of a prototype as an immutable whole, consider how it can be broken into pieces to address assumptions about customer value and technical risks. Don't obsess about documentation, but highlight to the what assumption this prototype was meant to assess, and how this tool measured up against those hypothesis.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

last sentence has some extra words I think. "...highlight which assumption this prototype was meant to assess"

also last word should be "hypotheses"


For example, consider using a boilerplate app (or simple demo app) to support development of a Git merging / branching strategy for a project, or to build out a [DevOps pipeline](/devops), particularly for clients that do not have a well-developed DevOps culture.
For example, consider using a boilerplate app (or simple demo app) to support development or to build out a minimal [DevOps pipeline](/devops), can help you see where the bottlenecks to agile development will likely occur before a vendor is brought on.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest: "For example, consider using a boilerplate app (or simple demo app) to support development, or building out a minimal DevOps pipeline to help identify bottlenecks in your process before a vendor is brought on."

One of the goals of Acq engagements (and [18F engagements in general](https://partnership-playbook.18f.gov/7-transfer-projects-back/)) is to impart strategies and techniques to our clients that will allow them to practice modular procurement on their own going forward, and on other projects. We should intentionally include client staff in prototype work so they have an ownership stake in the process and familiarity with how to use prototyping to support future procurements.

### Understand security requirements

It’s important to understand security requirements in the client environment that can impact prototyping work.

Does the client have the policy and technical infrastructure in place to support prototyping? Is a full System Security Plan required to build a prototype that isn’t intended to be deployed to a production environment or require ongoing O&M?
Does you have the policy and technical infrastructure in place to support prototyping? Is a full System Security Plan required to build a prototype that isn’t intended to be deployed to a production environment or require ongoing O&M?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Do you"


Does the client have the technical infrastructure in place to support prototyping? Is test data available for use in building a prototype? Is there an environment where test apps or prototypes can be efficiently deployed?
Does you have the technical infrastructure in place to support prototyping? Is test data available for use in building a prototype? Is there an environment where test apps or prototypes can be efficiently deployed?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Do you"

@@ -12,7 +12,7 @@ image-credit: https://www.flickr.com/photos/butterflysha/

In some cases, if there is a COTS system that will fit your requirements, then there may be an opportunity for cost savings.

#### Fully assess whether commercial off-the-shelf (COTS) solutions fit your projects' needs.
### Fully assess whether commercial off-the-shelf (COTS) solutions fit your projects' needs.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

project's (we're assuming a single project elsewhere)

@jposi jposi merged commit 7e64683 into master Jul 20, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Review / refresh content in Q&A section
5 participants