Innovation through Nonprofit Software Development
10:45-12:15
How
have nonprofits developed and adapted software tools to meet their needs? This
session will focus on discussing 3-6 case studies of nonprofit software
initiatives which involve: single organizations and collaboration between
organizations details on what worked and what didn't relating to technical staff
and managing limited or extensive levels of participation elements of open
source and closed source projects and how nonprofits addressed gaps between
their skills and managing technology projects. Suggestions on future practices
will also be offered.
Takeaways
-some
good stories of pitfalls and ways to avoid them
-advantages and disadvantages of various approaches
Panelists:
Sara Schnadt Office of Cultural Planning at Department of Cultural Affairs,
Phil Klein www.penpixel.com , Katrin
Verclas on FOSS solutions.
Format:
*
Intro/goals -- 5 min
* who's here... npo
*
Polls/audience interaction - 10
have you done a
software project
experience
-- good, bad, ugly, mixed
points of pain
innovated?
if not why not?
(maybe
we can do a spectrogram)
Sessions:
15
min
-Sara Schnadt --til 11:15
-Phil Klein --til 11:30
-Katrin Verclas --til 11:45
*
discussion/Q&A
Phil’s
15 minutes:
It all comes down to working wisely, working with the
right other people and organizations, in good and viable ways, and working well
together -- in a few words, good project management and collaboration.
Distribute
cost, risk, participation and benefits as widely as possible.
Run
your software on the web to open your organization & world to others.
If
your building only for your single organization; the costs will seem high and
real benefits hard to gain—get over the myth of your absolute uniqueness (when
it comes to your software needs) and get the benefits of tools build for 2 or
more, or a network of organizations like yours.
If
you do Build for your org exclusively, share results and code with others.
Build
collaboratively with other orgs, and share the benefits
Build
tools that enable the work of others to benefit your org or project.
Use
tools built by others in new ways to benefit your org & reach your goals.
Build
your tools to be useful in ways you can’t predict -- design to open up, not
close off, user possibilities (and possible users).
Beware!
There are lots of disincentives to collaborate – it’s a minefield.
NPODevelopers, NPOSandbox, Social Source, some attempts to get funders to consider how
projects could yield benefits beyond a narrow scope, are all examples of failed efforts at
collaboration.
Some common problems with Collaboration
inadequate incentives for participation by all key participants
the added cost and energy need to communicate between organizations can be high.
lack of trust or resources can keep project goals out of reach.
risk of designing for an abstracted or generalized user rather than for real users that you know
ownership poorly defined can detract from accountability and make ongoing support challenging.
Models for collaboration on software tools
Partnerships between organizations
establish partnerships between organizations & participants
compare project goals
identify shared vision
build trust and strong communication channels, shared ground rules
identify & allocate resources
coordinate timeline
define and set project roles and responsibilities, and ownership terms clearly
agree on your exit strategies
Involve Volunteers in your project
Use a funded project manager who knows how to manage software projects, and who delegates tasks to paid and/or volunteer project team members.
This can be done in an open source manner or not.
Select tasks for volunteers that match their ability and commitment
Package the tasks (as small as possible) to make participation most feasible.
Volunteers can do much work, but can have limits to their expertise, ability to do complex or extensive work, and are usually less reliable that paid project participants.
See Johnathan Peizer's papers, especially http://www2.soros.org/internet/ideology.htm http://www2.soros.org/internet/
Open Source projects
Use some combination of the following (more is better as these components enhance the benefit of each other) open source project management tools
a code repository
recruit a development team. Choose a development leader
Make sure that user input is thoroughly included, and that project management include non-technical issues as well as technical issues.
Make sure you address your user interface needs carefully
Research any existing projects you want to build upon carefully.
Good
suggestions at: http://www.omidyar.net/group/issues-tech/news/7/
from Zach Rosen: snip:
Choose a platform (Zope / Drupal etc.)
There are hardly any good code-bases / web-app platforms adopted or developed by or for the public sector. This is a serious problem. Just about every funded OSS project I know of under development right now is being built on different code base. Most are starting from scratch. This is wasteful and inneficient. Before you start coding your app from scratch ask yourself "Do I want to be an open source product or a platform?" If you want to be a platform, by all means go for it. If you want to be a product then choose some one elses platform.
Integration trumps interoperability
Two different code-bases will never cleanly coexist. You can push things out to web-services and you can make tons of API's, but in the end the users will demand a unified interface and the developers will balk at kludgey duct tape. You can surely make it work - but eventually the unified platform will win. Not that I am a promponent of "one platform rules them all". I think healthy competition between platforms is extremely important. But I wish folks would spend more time evaluating their options before they start making a heap of code all on their own.
Portability is important
Having an app that installs in less than ten minutes on any $7 a month hosting environment is a powerful thing. The harder it is to dive into your code / environment the harder it will be to get developers to build on top of it. Code that is designed to be hosted only in an ASP environment is much harder to dive into than code that is designed for end user / developers. You can build platforms that are designed for single install environments but that can be hosted in an ASP environment (We are at civicspacelabs.org). Why not have the best of both worlds?
Open Source doesn't end with the liscense
Open source is a methadology and a culture. In the open source methadology you must always try to build on others work and avoid forking. Re-creating a product / platform from scratch is the same thing as forking. Web-apps aren't any different than compiled code in this manner. Open-sourced code that no body can easily re-use isn't much better than closed source code. Your gift to the open-source ecology is missplaced if it is not build on top of other peoples work and cannot be built upon in turn.
Suggestions: