Changes

87 bytes added ,  15:22, 6 December 2018
Line 9: Line 9:  
<code>''Explain the business problem or opportunity that needs to be solved in one sentence.''</code>
 
<code>''Explain the business problem or opportunity that needs to be solved in one sentence.''</code>
   −
Current development of Government of Canada computer programs and solutions rely on mixed practices and version control systems specific to each department and agency. By providing a common place to develop and share development projects and solutions, there is an opportunity to:
+
Current development of Government of Canada computer programs and solutions rely on mixed practices and version control systems specific to each department and agency. By providing a common place to develop and share development projects and solutions, there is an opportunity to reuse the same platform across departments in most cases.
 
  −
* Enable teams across the entire government to leverage best practices and tools for the development and reuse of source code in the GC.
  −
  * Smaller departments may not have the financial resources to host and maintain such a development environment; by providing a common place for all to work together, we would be generating economies of scale beyond single departments.
  −
* Automate and scale CI/CD with automation and leveraging corporate level tools like automated scanning of known security vulnerabilities and legal compliance.
  −
* Enterprise standard use of open source components (inbound single version of package)
  −
* Set enterprise wide policies as well as department specific policies (prohibit or authorize use of AGPL, MIT, exceptions, etc.) for software inbound.
  −
* Identify duplicate custom code, reuse existing code and create communities around projects across departments. E.g.: meeting room reservation application from department A could be leveraged across the government and potentially even published as open source.
      
Source code developed by GC employees (software engineering, scientists, researchers,...) to support key programs needs to be available for reuse across departments, and to be scanned for security vulnerabilities.
 
Source code developed by GC employees (software engineering, scientists, researchers,...) to support key programs needs to be available for reuse across departments, and to be scanned for security vulnerabilities.
Line 30: Line 23:  
== Root Cause ==
 
== Root Cause ==
   −
Traditionally, software development is done within departments without a view to reuse the code for other projects, or across departments. Massive online collaboration tools did not exist to easily share source code outside departments and the public.  
+
Traditionally, software development was done within departments without a view to reuse the code for other projects, or across departments. Massive online collaboration tools did not exist to easily share source code outside departments and the public.  
    
The current instance of Gitlab, GCcode, has provided departments with a common place to share their custom code and to experiment quickly without the constraints of a department specific version control system.
 
The current instance of Gitlab, GCcode, has provided departments with a common place to share their custom code and to experiment quickly without the constraints of a department specific version control system.
Line 44: Line 37:  
* help developers share best coding practices  
 
* help developers share best coding practices  
 
* Decrease time and cost to build new solutions
 
* Decrease time and cost to build new solutions
* Reduce costs maintenance cost of source code repositories
+
* Reduce overall maintenance costs for source code repositories by eliminating duplication
 
* Improve continuous integration (CI/CD) practices
 
* Improve continuous integration (CI/CD) practices
 +
* Enable teams across the entire government to leverage best practices and tools for the development and reuse of source code in the GC.
 +
** Smaller departments may not have the financial resources to host and maintain such a development environment; by providing a common place for all to work together, we would be generating economies of scale beyond single departments.
 +
* Automate and scale CI/CD with automation and leveraging corporate level tools like automated scanning of known security vulnerabilities and legal compliance.
 +
* Enterprise standard use of open source components (inbound single version of package)
 +
* Set enterprise wide policies as well as department specific policies (prohibit or authorize use of AGPL, MIT, exceptions, etc.) for software inbound.
 +
* Identify duplicate custom code, reuse existing code and create communities around projects across departments. E.g.: meeting room reservation application from department A could be leveraged across the government and potentially even published as open source.
    
The use of GCcode is aligned with the GC Digital Standards "Work in the open by default" and "Collaborate widely".
 
The use of GCcode is aligned with the GC Digital Standards "Work in the open by default" and "Collaborate widely".