-
Notifications
You must be signed in to change notification settings - Fork 0
Software Development Procedures
Draft Software Development Policies and Procedures
SlashRoots Foundation
"To be able to choose between proprietary software packages is to be able to choose your master. Freedom means not having a master. And in the area of computing, freedom means not using proprietary software." - Richard Stallman
Revisions
| Author | Change Description | Date | Approval |
| M. Budram | Original Draft Document Created | Dec. 5, 2014 | |
| M. McNaughton | Revision and Suggestions | Dec. 29, 2014 | |
| M. Budram | Inclusion of Narration | Jan. 7, 2015 | |
The purpose of this section is to create processes that can allow for the establishment of new code or make allowances for changes in an existing code-base. A variety of methodologies exist, but it is the position of SlashRoots that we seek to utilize Agile Processes as it promotes efficient communication, generates maintainable source code, and produces software that is implemented to specification.
So Johnny Appleseed just joined the engineering staff of SlashRoots. He’s fresh out of school and wants to dive right in but at SlashRoots we focus heavily on collaboration and designing for users. This requires adhering to the 5 main design steps:
-
Clear, Concise and Complete Documentation
-
Well maintained and formatted code
-
Ensuring highly resilient and robust code by thoroughly testing
-
Sharing and collaboration using code versioning tools
-
Operating in a secure environment
These tools are the common tools across the developers at SlashRoots:
IDE
pyCharm (MacOS X, Windows, Linux) [https://www.jetbrains.com/pycharm/]
wing (Windows, Linux)
[http://wingware.com/]
Database
Postgresql [http://www.postgresql.org/]
Project Management
Asana [https://app.asana.com/]
Team Chat / Virtual Office
Slack [http://slashroots.slack.com/]
Version Control
Git / git-core / gitk
Github [http://github.com]
SourceTree (MacOS X, Windows) [http://www.sourcetreeapp.com/]
Tortoise Git (Windows, Linux) [https://code.google.com/p/tortoisegit/]
As part of the onboarding process of the SlashRoots Labs the engineer will be provided with an @slashroots.org email address that gives you access to all documentation and resources housed and managed by Google.
In order to enhance the collaboration effort of the team we utilize Slack. Slack is a team communication tool that aggregates most software development tools into one centralized application. This reduces the effort to quickly and effectively show project updates, request meetings and find related notes/documents. This tool aggregates information from the slashroots google drive, Asana project planning tool and versioning applications such as Git.
As a SlashRoots engineer it is important that you actively contribute to open-source projects. Therefore you should have already created an online-based profile for Github. This profile will be used to contribute to SlashRoot’s open-source projects and adds to your own personal credentials as an engineer!
SlashRoots utilizes the Google document facility to manage all documents including (but not limited to):
-
Business Development
-
Grants
-
Project Requirements/Information
-
Proposals
This would be a good point for Johnny to get up-to-speed with the operations of the SlashRoots Foundation. The development team uses an Agile approach to software development and as a result any changes made to various prototypes during development phases must be reflected by the requirements docs of the project. At all times the project information must remain current.
Using the Google Drive facility ensures that all revisions and changes are tracked and can be monitored to ensure quality and integrity of the document. This is essential when distributing information to third parties.
The research framework is a living document that defines your research themes and questions, but its focus will evolve and narrow over time, first as feedback is gathered from stakeholders, and then even more so over the course of field research.
While not a record of insights or findings, it is reflective of an increasingly sophisticated understanding of
the context, honing in closer to the actual truth as the research unfolds. Over time, more targeted and more detailed questions arise.
In practice, priorities tend to shift from what was originally put on paper. All practitioners know about
the importance of flexibility and striking a balance between planning and operations. The research framework creates a way to adjust to shifting donor and stakeholder priorities, while also keeping the on-the-ground realities in focus.
