Planning Your App: Phase2's Process for Getting Started
These days, it’s hard for us to walk across a conference lobby or leave a meeting without someone saying "I have a great idea for an App for OpenPublic." A lot of people are thinking about ideas for Apps or translating an existing Feature into an App. For those of you thinking about creating an App, we want to lay out the internal process we use at Phase2 as a suggested starting point for your own App.
Technically, creating an App for OpenPublic actually follows a very similar process to creating modules for Drupal. The difference is that apps are Features-based and Kit Compliant and often bundle together configuration forms, demo content, and other functionality to ensure that they’re simple to implement with a single click. All this means that the functionality of an App has to be very specific–Apps are best used to solve single, well-defined problems, not to provide frameworks for development or wide-ranging functionality to the distribution.
When you’re trying to create a concise solution to a specific problem, some planning is required. Our planning process has four parts, which we recommend for anyone creating an App:
- Identify the specific audience
- Identify a specific problem
- Identify a concise solution
- Identify a plan of attack
1. Identify the specific audience
To begin, we think about the exact problem we’re trying to solve and who we’re trying to solve it for. Does it solve a problem for administrators or staff? Is it for a non-profit, local, state, or federal organization? Not every app is for every OpenPublic user–if it was, it would be a better fit for OpenPublic’s core installation. So, the first thing to do is to understand the person who will be using it. This includes both the people who will be implementing the app technically and those who will be using it on a day-to-day basis. If it will be used to regularly add content to a site, who will be the person using it? What is their level of knowledge of Drupal, of CMS, and of your app’s specific area of knowledge?
2. Identify a specific problem
Many of our ideas for Apps come from active projects, and the process of "solving a specific problem" is built into our solutions analysis here at Phase2. However, as we look toward more community-generated Apps, it will be important for all of us to engage in more community-generated solutions to the business problems emerging within the group.
Now that we’re launching the community site at community.openpublicapp.com, we’ll all be able to use its features like a documentation wiki and Ideation to help inspire and review ideas.
At this point, it can be useful to look at existing apps and to engage the community to see how the idea fits into the larger picture, and if the App really meets a need in the community.
One way to do this is to take a page from traditional product design, and take a look at existing sites to see how the problem is being solved now:
- How is the data being published?
- What workarounds are people using?
- What third parties are engaged in this solution?
- What’s missing from the current solutions?
- Which steps could be reduced or removed to make the process easier?
These questions can help build a clear understanding of the problem you’re solving. At this point at Phase2, if our team can express the core use case for the App in a one-minute "elevator pitch" tailored for our target audience, we know that we’re on to something.
3. Identify a concise solution
Once we’ve settled on what we’re building and written the requirements we need, we start considering the solution. We start by looking at what we already have and asking ourselves: Is there an existing module that could be used for this App? Have we built this solution for a site before?
Then we look at the solution’s main question: "what is the simplest and most concise way to solve this problem for this audience?" Often, there is more than one way to solve a problem, so understanding what the potential solution set is, and which solution solves the question best is key.
This is the point in the process when we find that it’s helpful to return to the core elevator pitch and user we identified before. In considering the solution, we don’t just consider the app’s main module or function. We instead use a short checklist that considers the whole app’s "experience" for our user:
- Does our solution address the exact problem we identified?
- Does our solution solve any other problems that need to be stripped out or broken up into two or more apps?
- Can our solution be executed technically?
Our goal is to identify the enhancements that will make our App useable and easy to explore. If the solution we see in front of us is as concise and specific as the audience and the problem we’ve identified, we’re on our way to a great app.
4. Create a plan of attack
So, the audience is there. The problem is clear. The solution in fully formed in your mind. Ready to go build? Hang on.
Before you start building, we’d like to ask you to turn back to the community first. Before you build anything, make sure that this solution, for this audience, doesn’t yet exist. If it does, and you have ways to make it better, consider contacting the App’s maintainer to add your enhancements. Remember, part of the reason behind OpenPublic’s Apps structure is to reduce inefficiencies and encourage collaboration in the public sector.
At Phase2, that often means engaging one of our excellent partners. For the Project Mapper app, Development Seed’s outstanding MapBox functionality provided the specific solution necessary for those looking for a way to geolocate information about their organization’s projects. We’d never have considered building our own mapping app–Development Seed already had a much more elegant solution, and all it took was a little collaboration.

There are a lot of ways to create your solution. Start with a few bits of research to see if you can cut down your development time:
- Are there existing community-contributed modules that I could use to build this app?
- Are there other firms or teams considering a similar solution with whom I should collaborate?
- Is there anyone else I need to help effectively build this technical solution?
- Are there third party service providers who I might engage here?
From here, you can build a plan of attack that includes collaboration, partnership, and development.
There is more to come for the OpenPublic community and App Store, but we’re seeing so many good ideas already that we wanted to share our process for going from idea to App. We think OpenGovernment and Public Sector Transparency is a really exciting space for developers and designers to think about, and we can’t wait to see the solutions people are working on.



Comments
How to make distributions that can share apps?
I love this article and want to see many more like it. For me, the most pressing questions about the App Store are: a) How do 3rd parties get their stuff listed (and sold...)? b) How do I make my distribution capable of running app store apps?
It looks to me like Phase 2 is headed towards opening up the app store to 3rd party apps. It's unclear to me whether this will become an actual market where money can change hands.
It's also unclear to me whether the app store will be able to live inside of and serve other distributions.
Looking forward to your upcoming articles!
Robert
Updates on the Apps Module
Robert, great questions, and the answer is a definite "Yes." We will be answering in greater detail soon, but I have some quick answers for you now:
a) Phase2 is currently shaking out the App submission process with some early partners, but, when it's ready, we will have an open submission process for the OpenPublic App Store. We'll definitely announce when we're accepting public submissions, but if you have an app and want to be involved with the alpha testing, please get in touch with us!
b) Phase2 is cleaning up the Apps module for general release, and we'll be integrating it into our other distributions as well. The Apps module allows for developers to create a local "store" so that they can test their applications locally while they are in development. In addition, we want to App module to eventually allow others to plug in additional servers.
With regards to your question about payments, there isn't an immediate plan to handle payments within the OpenPublic app store. We want to make sure that details for App installation and upgrades are completely squared away and that the whole experience is user friendly and solid. However, we do think there is a market for paid apps in the future, and we do do think there are viable models for SaaS and web services charging users a fee outside of the App Store.
Thanks for asking the question, and we'll definitely be sharing our progress on this in the coming weeks.
Post new comment