I recently attended a keynote presentation given by Michael Tiemann, Red Hat’s Vice President of Open Source Affairs (listen to Michael Tiemann’s presentation here). Michael's talk focuses on "exonovation" (a word he made up), or innovation from an open community, and how it can make a product even better than a closed, controlled, proprietary effort. Exonovation involves creating a more open, positive, and productive environment, leveraging the innovation of people external to your organization and is a common practice used in the open source development community.
Listening to this presentation as a software engineer for the LDS Church, I could see how exonovation and the community could really benefit the work here at the Church. We have found that as an organization we have many software dependencies, yet we do not have the funds or resources necessary to meet all of these dependencies. Exonovation provides a way for us to extend our resource cap to a possibly unlimited amount.
There are many individuals willing to work towards better Church software. I have heard many people comment on how they would like to be involved in designing or writing software for the Church, and many of these people have written custom software applications for their local ward or stake.
With this knowledge, the Church started down the path of allowing members to contribute to projects. That contribution is now known as community development. We have been working to get all of the necessary components set up for community members to contribute. Information on getting started is available on LDS Tech. Community Services are available to allow developers access to fake membership data. A source code repository and other resources have been provided, and we continue to look for things that can be done to assist the community.
There are many ways that individuals can help, regardless of whether or not they have development skills. A project’s development process requires many different individuals who can work as project managers, designers, database engineers, software developers, testers, technical writers, translators, and more. Not only do we have community members of different nationalities, we also have members of different occupations, lifestyles, talents, interests, etc. From a development standpoint you want this diversity on a project. Each individual can fill a different role and will bring a different perspective.
We need individuals who can do the following:
- Monitor wiki documentation and update formatting, grammar, spelling, etc.
- Come up with project ideas, document project requirements, and manage project resources and status.
- Design the application's flow and layout.
- Develop the application (using the Java architecture provided, or on a new architecture).
- Test the application through manual testing, in which an individual clicks through the application, or automation testing, in which scripts click through the application.
- Record application issues that need to be resolved in our issue tracking system.
Nathan Dickamore is a senior software engineer for the Church.