Changes

Jump to navigation Jump to search
no edit summary
Line 100: Line 100:  
* <b><I>Model end-to-end business service delivery to provide quality, maximize effectiveness and optimize efficiencies across all channels (e.g lean process)</b></I>
 
* <b><I>Model end-to-end business service delivery to provide quality, maximize effectiveness and optimize efficiencies across all channels (e.g lean process)</b></I>
   −
Modeling business service delivery end-to-end will provide better digital experience to the stakeholders. It will also help provide better understanding of what components are required to create a service, what various channels which a service can be delivered, as well as individual areas that can be improved to maximize effectiveness and optimize efficiencies of the overall service. Modeling end-to-end business service delivery will expand the horizon and knowledge of the implementer of the business service and will ensure each part of the service delivery is considered and its impact to changes  <br><br>
+
Modeling business service delivery end-to-end will provide better digital experience to the stakeholders. It will also help provide better understanding of what components are required to create a service, what various channels which a service can be delivered, as well as individual areas that can be improved to maximize effectiveness and optimize efficiencies of the overall service. Modeling end-to-end business service delivery will expand the horizon and knowledge of the implementer of the business service and will ensure each part of the service delivery and its impact to the service are considered. <br><br>
    
<!-- COLUMN 1 STARTS: -->  
 
<!-- COLUMN 1 STARTS: -->  
Line 117: Line 117:  
<h4><b><u>Architect to be Outcome Driven and Strategically Aligned to the Department and to the Government of Canada</b></u></h4>
 
<h4><b><u>Architect to be Outcome Driven and Strategically Aligned to the Department and to the Government of Canada</b></u></h4>
   −
The whole notion of creating a program or project is to support departmental mandate. Thus, it needs to be clear what mandate a program or project is supporting, how it supports it and measure how effective it is in supporting the mandate. A project or program may indirectly support a mandate, however, its derivative outcome may still be able to be tied into a mandate. Everything needs to be tied in to the mandate and everything needs to be measurable. If a department is not sure how a program or project is supporting its mandate, or how it can be measured, then perhaps the program or project may not be required to begin with.
+
The whole notion of creating a program or project is to support departmental mandate. Thus, it needs to be clear what mandate a program or project is supporting, how the outcome of the program or project supports the mandate and measure how effective it is in supporting the mandate. A project or program may indirectly support a mandate, however, its derivative outcome may still be able to be tied into a mandate. Everything needs to be tied in to the mandate and everything needs to be measurable. If a department is not sure how a program or project is supporting its mandate, or how it can be measured, then perhaps the program or project may not be required to begin with.
    
A system or solution that is the end result of a program or project also needs to strategically align to the direction of the Government of Canada. For example, if we know at the end the GC will be going to the cloud, then program or project needs to at least have a plan in place on how to migrate it to the cloud whenever its ready. Another example, if we know at the end the GC will be using NextGen, then all HR related interim functionality need to plan for transitioning to use NextGen when it becomes available. <br><br>
 
A system or solution that is the end result of a program or project also needs to strategically align to the direction of the Government of Canada. For example, if we know at the end the GC will be going to the cloud, then program or project needs to at least have a plan in place on how to migrate it to the cloud whenever its ready. Another example, if we know at the end the GC will be using NextGen, then all HR related interim functionality need to plan for transitioning to use NextGen when it becomes available. <br><br>
Line 143: Line 143:  
* <b><I>Identify which departmental/GC business services, outcomes and strategies will be addressed </b></i>
 
* <b><I>Identify which departmental/GC business services, outcomes and strategies will be addressed </b></i>
   −
In order to ensure a program or project supports departmental mandate, it is important to identify which services, outcomes or strategies will be addressed at the conclusion of the program or project. This will ensure the program or project has a vision of what it is trying to accomplish in relation to the departmental mandate. Thus, whenever the program or project needs to small deviation from its original short-term goal, it will have a limit on how much it can deviate before it is no longer aligned to the departmental mandate or GC direction. <br><br>
+
In order to ensure a program or project supports departmental mandate, it is important to identify which services, outcomes or strategies will be addressed at the conclusion of the program or project. This will ensure the program or project has a vision of what it is trying to accomplish in relation to the departmental mandate. Thus, whenever the program or project needs to do a small deviation from its original short-term goal, it will have a limit on how much it can deviate before it is no longer provide an outcome that is aligned to the departmental mandate or GC direction. <br><br>
    
* <b><I>Establish metrics for identified business outcomes throughout the lifecycle of an investment</b></I>
 
* <b><I>Establish metrics for identified business outcomes throughout the lifecycle of an investment</b></I>
Line 151: Line 151:  
* <b><I>Translate business outcomes and strategy into business capability implications in the GC Business Capability Model to establish a common vocabulary between business, development, and operation</b></I>
 
* <b><I>Translate business outcomes and strategy into business capability implications in the GC Business Capability Model to establish a common vocabulary between business, development, and operation</b></I>
   −
One of the benefit or translating business outcomes and strategy into business capabilities is to provide a common ground between business community and IT community. <br><br>
+
One benefit of translating business outcomes and strategy into business capabilities is to provide a common ground between business community and IT community. Once a common ground is reached, it would be easier to communicate what can be achieved, and how much tolerance can a program or project deviates from its short-term goal. <br><br>
    
<h4><b><u> Promote Horizontal Enablement of the Enterprise</b></u></h4>
 
<h4><b><u> Promote Horizontal Enablement of the Enterprise</b></u></h4>
 
* Identify opportunities to horizontally enabled business services and provide cohesive experience to stakeholders
 
* Identify opportunities to horizontally enabled business services and provide cohesive experience to stakeholders
 +
 
* Reuse common business capabilities and processes from across government and private sector
 
* Reuse common business capabilities and processes from across government and private sector
 +
 
* Publish in the open reusable common business capabilities and processes (in the Open Government portal) for others to develop cohesive horizontal enterprise services
 
* Publish in the open reusable common business capabilities and processes (in the Open Government portal) for others to develop cohesive horizontal enterprise services
   Line 226: Line 228:  
A misconception with support is that a support contract or license some how ensures that the proprietary system will receive improvements and patches, but in reality there is no obligation for a vendor to do so, while Open Source software survives by having a vibrant and helpful support community. Average resolution of issues are solved faster then in proprietary software by the very nature of crowd sourcing reducing the barrier of communication with a single entity or individual. <br><br>
 
A misconception with support is that a support contract or license some how ensures that the proprietary system will receive improvements and patches, but in reality there is no obligation for a vendor to do so, while Open Source software survives by having a vibrant and helpful support community. Average resolution of issues are solved faster then in proprietary software by the very nature of crowd sourcing reducing the barrier of communication with a single entity or individual. <br><br>
   −
For more info on Open Source, read our [https://github.com/canada-ca/Open_First_whitepaper Open First Whitepaper]. <br><br>
+
For more info on Open Source, go to the GC webpage on [https://www.canada.ca/en/government/system/digital-government/open-source-software.html Open Source Software]. <br><br>
    
*<b><I> Select existing solutions that can be reused over custom built</b></I>
 
*<b><I> Select existing solutions that can be reused over custom built</b></I>
Line 236: Line 238:  
Major benefits can occur not just from publishing the Software, but in developing Guidance the quality of software increases, while publishing Lessons Learned, White Papers and any other technical documentation can assist others in the future by providing templates and baselines.
 
Major benefits can occur not just from publishing the Software, but in developing Guidance the quality of software increases, while publishing Lessons Learned, White Papers and any other technical documentation can assist others in the future by providing templates and baselines.
   −
For assistance in how to do this, you can view the TBS Guidance on Open Source Publishing.
+
For assistance in how to do this, you can view the [https://www.canada.ca/en/government/system/digital-government/open-source-software/guide-for-publishing-open-source-code.html TBS Guidance on Open Source Publishing].
    
Setting up shared teams for common problems where Developers from multiple departments can produce better solutions. Virtual Teams using open tools can enable rapid development in absence of collocation.<br><br>
 
Setting up shared teams for common problems where Developers from multiple departments can produce better solutions. Virtual Teams using open tools can enable rapid development in absence of collocation.<br><br>
Line 255: Line 257:     
<h4><b><u>Design for [https://www.gcpedia.gc.ca/wiki/En/GCinterop Interoperability]</b></u></h4>
 
<h4><b><u>Design for [https://www.gcpedia.gc.ca/wiki/En/GCinterop Interoperability]</b></u></h4>
 +
 +
The most important use of interoperability is it provides the ability to communicate between one system to another without the need of manual intervention. It doesn't matter if one system is built with one platform, eg. UNIX/LINUX, and the other system is built with another platform, eg. Windows, "OR" if one system is legacy, eg. Mainframe, and the other is an innovative product, eg. machine learning. With interoperability, these different systems can communicate with one another, thereby enabling efficiency and/or effectiveness of a solution. Interoperability can also enable easier communication between one department to another, thereby creating better collaboration and automation exchange of data.<br><br>
 +
 
* <b><I>Design systems as highly modular and loosely coupled services</b></I><br>
 
* <b><I>Design systems as highly modular and loosely coupled services</b></I><br>
 +
 
Focus on smallest unit of purpose, and developing a single function. Ensure containers contain a single application, and build the smallest image possible.
 
Focus on smallest unit of purpose, and developing a single function. Ensure containers contain a single application, and build the smallest image possible.
 
Ensure containers are properly versioned and tagged.
 
Ensure containers are properly versioned and tagged.
Line 261: Line 267:     
* <b><I>Expose services through APIs </b></I>
 
* <b><I>Expose services through APIs </b></I>
 +
 
Do not hide services under assumptions that someone would not find value in a service - often innovation can be bred from exposed services beyond it's original plan.
 
Do not hide services under assumptions that someone would not find value in a service - often innovation can be bred from exposed services beyond it's original plan.
 
Follow the 'eat your own dogfood' mantra - in that all functionality should be a service that you consume.
 
Follow the 'eat your own dogfood' mantra - in that all functionality should be a service that you consume.
Line 266: Line 273:  
<br><br>
 
<br><br>
   −
* <b><I>Make the APIs discoverable to the appropriate stakeholders</b></I><br><br>
+
* <b><I>Make the APIs discoverable to the appropriate stakeholders</b></I>
 +
 
 +
When a system have an API that is discoverable, it opens up its window to the world of endless possibilities, collaboration and better outcomes for the whole GC. One way to make an API discoverable is by publishing it to the [https://api.canada.ca/en/homepage#all-apis API Store] and the future DxP (Digital Exchange Platform).
 +
<br><br>
 +
 
 +
<h4><b><u>Follow DevSecOps Principles</b></u></h4>
 +
The purpose and intent of DevSecOps is to build on the mindset that "everyone is responsible for security" with the goal of safely distributing security decisions at speed and scale to those who hold the highest level of context without sacrificing the safety required.
 +
 
 +
Click [https://www.devsecops.org/blog/2015/2/15/what-is-devsecops here] for some good read about DevSecOps. <br><br>
   −
<b><u>Follow DevSecOps Principles</b></u>
   
* <b><I>Use continuous integration and continuous deployments (CI/CD)</b></I>
 
* <b><I>Use continuous integration and continuous deployments (CI/CD)</b></I>
 
* <b><I>Ensure automated testing occurs for security and functionality </b></I>
 
* <b><I>Ensure automated testing occurs for security and functionality </b></I>
514

edits

Navigation menu

GCwiki