Being the leader of any open source project involves both technical and non-technical responsibilities to foster a community of invested contributors and users. Specific tasks include day to day organization and development, project management, public relations, and providing prompt and effective feedback to contributors. Web services offered to the community by IMA will be used to facilitate these tasks. The following is a brief description of our policies:
Lean Six Sigma quality concepts commonly known as Continuous Process Improvement have been shown to greatly increase the chance of success in software development projects but the correlation is not always obvious. A traditional Software Development Life Cycle (SDLC) does not incorporate quality aspects until the end of the project cycle. Common terms include unit testing, system testing, integration testing, design reviews, and code reviews but these too often come in after there is already a deliverable. IMA plans to incorporate Lean Six Sigma quality concepts in its SDLC translating requirements gathering, systems specification, software development, software testing, rollout, and maintenance phases into corresponding tollgates in every stage of the project life rather than at the end of the SDLC.
A key component often missing from open source projects is “useful” documentation. IMA considers this component a cornerstone of research and development projects. All documentation must be easy to use and update making the software easy to use and update. This will expand the user base and contributions to the open source code. In the case of additional module development using lean six sigma concepts, requirements are defined via documentation. This facilitates a document-driven development approach that documents features first then develops the features rather than developing features then documenting them at the end of the SDLC.
These concepts drive IMA’s systems engineering approach to developing an efficient quality sustaining engineering plan that meets community and customer requirements. There are some standard aspects of open source projects IMA will incorporate.
As part of the maintenance of any repository, there are a few files of documentation kept in the top-level directory:
README file that provides a summary of the project and its goals
CONTRIBUTING file with contribution policies and procedures
LICENSE file which defines the license that will be strictly enforced and encourage more contributions
Additional documentation will also be publicly available online via IMA’s resources provided to the community and Working Groups. In many cases, the level of detail will be determined by those Working Groups which are IMA’s internal customers and in some cases by external customer project requirements. Examples may include one or more of the following:
A general guide to introduce users to the project
Tutorials to walk people through different use cases
FAQs to address frequently asked questions that users may have
Troubleshooting guides to help users resolve problems
An API reference to provides users with a quick way to look up API information
Release notes with known bugs to let users know what to expect in each release
Planned features to keep track of and explain what is coming up in the future
Video walkthroughs to provide users with a multimedia approach to our software
Most documentation will be written as though it were to a collaborator who needs to be brought up to speed on the current project. This will encourage potential contributors to make pull requests to the project.
Issue tracking is a second key component IMA considers a cornerstone. Specifically, this is a way for users to track or report bugs. It is also a way for users to request new features to be added to the code base. Organizing and prioritizing issues will help IMA develop a good road map of upcoming work augmenting the planned roadmap which contains scheduled release dates.
Because any user can file an issue on an open source project, not all issues will be users reporting bugs or making feature requests. IMA may receive questions via the issue tracker tool or may receive requests for smaller enhancements to the user interface.
The IMA Working Group Category structure streamlines the often chaotic issue tracking seen in open source projects. It provides a structured way to organize issues more efficiently and to be communicative with the users who are creating the issue reports. Most importantly, it promotes collaboration and growth. Users requesting feature requests can then be directed to a relevant Working Group category and become an invested contributor.
Responses to issues or feature requests will often involve referring a user to existing documentation or identify a need for documentation to be developed. In all cases, IMA has a policy of courtesy to keep interactions professional even when questions do not represent concrete tasks. Policies for interaction will be defined publicly for all IMA resources so that all users have the same expectation of conduct.
Style guides will be publicly available and reviewed to keep open source code consistent and readable throughout. Code that is easy to understand through comments and clear and consistent usage will facilitate greater participation and reduce costs. Attributions will also be included via styles for code contributors.
IMA will also adhere to the three basic principles of open source software communities:
Transparency: Every line of open source code IMA develops or stewards will be made available for inspection and comment by the community which in turn must adhere to the terms of the particular open source license, using the software only as those terms allow, reflecting their transparency. This includes grid owners who participate in development.
Participation: If a community member is using open source software and deriving real benefit from its existence, then participating by providing time or money should be seen as basic and reasonable reciprocity. IMA believes in and will set processes in place to encourage community participation through its hybrid structure.
Collaboration: Helping others in the community advances the project and its usefulness for everyone which is the common goal. IMA will facilitate collaboration through its web tools provided as well as its leadership in core Working Groups.
Software Development and Engineering Services
The Infinite Metaverse Alliance (IMA) will provide Software Development and Engineering Services. IMA’s duties within software development includes all aspects of planning, design, construction, and testing. Our staff will participate and lead in developing projects using Agile methodologies as defined and deployed through Open Project for members and staff engaged in Working Groups.
IMA’s software development procedures will include the definition of terms, Change Management, and correct code documentation.
Requirements will be documented using templates that are based on industry best practices, including:
- Software Requirements Specification (SRS),
- Requirements Traceability Matrix (RTM)
- Use Cases.
IMA will provide architectural structures supporting Information Assurance objectives and DoDAF Architectural initiatives and IMA will develop and deliver DoDAF 2.0 compliant views depicting:
Overview and summary information documents
- High Level Operational Concept Graphics
- Operational Node Connectivity Descriptions
- Organizational Relationships Charts
- Operational Activity Models
Software Engineering Processes
IMA will follow a unified process for all software development. In addition, IMA will also apply processes that our stakeholders have defined for use during their software development or policies, such as the Software Engineering Process (SEP).
Testing begins with a description of the outcomes requirements as defined by stakeholders and within the security capabilities of the code being used. Our engineers will ensure all system requirements are quantified to meet the requirements of bounds checking, scalability, and functional testing. These will be regularly verified throughout the development and test cycles.
IMA will use industry standard tools to perform testing to ensure that all ADA regulations are adhered to, including: Quick Test Pro, AccVerify, the JAWS screen reader, and other methods of verifying compliance.
This includes the Government-wide Section 508 accessibility program including standards compliance through research and implementation of best practices, agency Section 508 program criteria, and any associated state programs like Virginia’s criteria for its Section 508 Accessibility from the Office of Information and Technology.