Changes

m
no edit summary
Line 4: Line 4:  
<br>
 
<br>
   −
<h2> INTRODUCTION - How to use the Playbook</h2><br>
+
<h2> INTRODUCTION - How to use the Playbook</h2><br>This EA Playbook is intended to serve as best practices for GC Architects in developing or managing their enterprise architecture within their department. It contains the thought process behind why the GC EA Assessment Framework is created the way they are, why select topics were chosen over others and how its content will impact how a project/program is assessed. <br>
 
  −
This EA Playbook is intended to serve as best practices for GC Architects in developing or managing their enterprise architecture within their department. It contains the thought process behind why the GC EA Assessment Framework is created the way they are, why select topics were chosen over others and how its content will impact how a project/program is assessed. <br>
  −
 
  −
 
   
The scope of the EA Playbook focuses on the assessment piece, which is looking for evidence on where the project/program sits in the overall GC Target Architecture (currently in draft) and how it aligns to the GC direction. It also complements the [https://docs.google.com/document/d/19ZCSC32ZRXm_A4eC1OdA5dcXvJMEuwqt2RKteGeaUE0/edit# Service & Digital Target Enterprise Architecture Whitepaper] (currently in draft) that will be published soon. <br>
 
The scope of the EA Playbook focuses on the assessment piece, which is looking for evidence on where the project/program sits in the overall GC Target Architecture (currently in draft) and how it aligns to the GC direction. It also complements the [https://docs.google.com/document/d/19ZCSC32ZRXm_A4eC1OdA5dcXvJMEuwqt2RKteGeaUE0/edit# Service & Digital Target Enterprise Architecture Whitepaper] (currently in draft) that will be published soon. <br>
  −
   
The Playbook is organized into chapters as per the B-I-A-T-S+P architecture layers called Plays. We recommend that users:
 
The Playbook is organized into chapters as per the B-I-A-T-S+P architecture layers called Plays. We recommend that users:
   Line 17: Line 11:     
2. Take an iterative approach to implementing the "Plays"<br>
 
2. Take an iterative approach to implementing the "Plays"<br>
  −
   
In this playbook, we are introducing various external links and external examples as another source of reference to help with the understanding of each of the concepts introduced in the EA Assessment Framework as well as providing best practices.
 
In this playbook, we are introducing various external links and external examples as another source of reference to help with the understanding of each of the concepts introduced in the EA Assessment Framework as well as providing best practices.
    
This Playbook is a living document, intended to evolve over time as Enterprise Architects in the GC community grow and mature. The Playbook also evolves as new solutions are introduced to the GC Enterprise Architecture landscape. Thus, your feedback would be greatly appreciated.<br>
 
This Playbook is a living document, intended to evolve over time as Enterprise Architects in the GC community grow and mature. The Playbook also evolves as new solutions are introduced to the GC Enterprise Architecture landscape. Thus, your feedback would be greatly appreciated.<br>
 +
Please send any comments or suggestion for future updates to [[gccollab:groups/profile/1896301/enenterprise-architecture-community-of-practicefrcommunitu00e9-de-pratique-de-architecture-integru00e9e|| GC EA CoP Collab Site]]
    +
<h2> The Plays </h2> <br><span style="font-size: 1.5em;">Where to start </span>
   −
Please send any comments or suggestion for future updates to [https://gccollab.ca/groups/profile/1896301/enenterprise-architecture-community-of-practicefrcommunitu00e9-de-pratique-de-architecture-integru00e9e | GC EA CoP Collab Site]
  −
  −
  −
<h2> The Plays </h2> <br>
  −
  −
<h3><span style="font-size: 1.5em;"> Where to start </span></h3> <br>
      
When department has an idea, a problem or an issue that needs to be addressed, the <b>main</b> question that needs to be answered is that "<b><u>Is it worth it</u></b>?".
 
When department has an idea, a problem or an issue that needs to be addressed, the <b>main</b> question that needs to be answered is that "<b><u>Is it worth it</u></b>?".
Line 35: Line 23:  
To answer this question, department has to:<br><br>
 
To answer this question, department has to:<br><br>
 
1. <b>Identify the end goal</b>, ie. benefits, business outcomes, alignment to strategy/mandate
 
1. <b>Identify the end goal</b>, ie. benefits, business outcomes, alignment to strategy/mandate
* what is it that the department wants to achieve at the end ?
+
* what is it that the department wants to achieve at the end?
* what problem is the department trying to solve ?
+
* what problem is the department trying to solve?
* what are the benefits being realized ?
+
* what are the benefits being realized?
* what are the measurable business outcomes ?
+
* what are the measurable business outcomes?
    
2. <b>Figuring out options</b> - if we use this solution:  
 
2. <b>Figuring out options</b> - if we use this solution:  
* how would it affect the outcome ?
+
* how would it affect the outcome?
* how would it affect the existing process ?
+
* how would it affect the existing process?
* how would it affect the other existing systems in the ecosystem ?  
+
* how would it affect the other existing systems in the ecosystem?
    
3. <b>Determine the best approach</b>
 
3. <b>Determine the best approach</b>
* would it be the best approach / solution that will fit departmental needs / strategy / mandate ?
+
* would it be the best approach / solution that will fit departmental needs / strategy / mandate?
* would the approach / solution align with the GC Direction ?  
+
* would the approach / solution align with the GC Direction?
* how would the new solution fit in the whole IT landscape within the department and the GC ?  
+
* how would the new solution fit in the whole IT landscape within the department and the GC?
   −
4. Finally: <b>Does the outcome outweigh the expenses, aka <I>IS IT WORTH IT</I> ?</b>
+
4. Finally: <b>Does the outcome outweigh the expenses, aka <I>IS IT WORTH IT</I>?</b>
<br><br>
+
<br>
    
All these questions need to be considered through the various lenses of architecture layers <b>B-I-A-T-S+P (Business - Information - Application - Technology - Security + Privacy)</b>.
 
All these questions need to be considered through the various lenses of architecture layers <b>B-I-A-T-S+P (Business - Information - Application - Technology - Security + Privacy)</b>.
   −
<br><br>
+
<h2><span style="font-size: 1.5em;">Business Architecture</span></h2> <br>Business Architecture is where an organization identifies the various services that it needs to provide externally, as well as the various functions it owns or needs to own internally to support their services to the public. In the context of GC Enterprise Business Architecture, this is where the Government of Canada identifies the various departments, the services they provide to Canadians and the functions they owns. <br><br><b><u>Fulfill the Government of Canada stakeholder needs</u></b>
   −
<h2><span style="font-size: 1.5em;">Business Architecture</span></h2> <br>
  −
  −
Business Architecture is where an organization identifies the various services that it needs to provide externally, as well as the various functions it owns or needs to own internally to support their services to the public. In the context of GC Enterprise Business Architecture, this is where the Government of Canada identifies the various departments, the services they provide to Canadians and the functions they owns. <br><br>
  −
  −
<h4><b><u>Fulfill the Government of Canada stakeholder needs</u></b></h4>
  −
<br>
      
As the provider of service to Canadians, it is important for the GC to understand its stakeholders well. The stakeholders in this case may be its users, its partners (if any), its suppliers (if any), its program or project manager, its developer, etc.  
 
As the provider of service to Canadians, it is important for the GC to understand its stakeholders well. The stakeholders in this case may be its users, its partners (if any), its suppliers (if any), its program or project manager, its developer, etc.  
Line 70: Line 52:  
While configuring a service, departments should also take into account the policy requirements, including accessibilities, gender based+ analysis and official languages.
 
While configuring a service, departments should also take into account the policy requirements, including accessibilities, gender based+ analysis and official languages.
   −
Once the stakeholders are identified, the roles and responsibilities are mapped, and the stakeholder needs are identified and translated into a business service, the department can then model a complete quality end-to-end business service that provides the best digital experience to its users while also maximizing its effectiveness and optimize efficiencies.<br><br>
+
Once the stakeholders are identified, the roles and responsibilities are mapped, and the stakeholder needs are identified and translated into a business service, the department can then model a complete quality end-to-end business service that provides the best digital experience to its users while also maximizing its effectiveness and optimize efficiencies.<br>
    
* <b><I>Clearly identify internal and external stakeholders and their needs for each business service including user centric design </I></b>
 
* <b><I>Clearly identify internal and external stakeholders and their needs for each business service including user centric design </I></b>
To understand their stakeholders, it is recommended for program & project manager to conduct stakeholder analysis and create stakeholder mapping for each service being delivered. Users of a business service can be the Canadian general public (in terms of service the department provides), employees (if the service also applicable to the departmental employees, or if the employees is the one implementing the service), or others. Partners of a business service can be other departments or organizations that consume the departmental service, provide data to the department, or those who are building the system/program with the department. Suppliers of a business service can be the SaaS companies who provide the department with service, vendors, SSC, etc. <br><br>
+
To understand their stakeholders, it is recommended for program & project manager to conduct stakeholder analysis and create stakeholder mapping for each service being delivered. Users of a business service can be the Canadian general public (in terms of service the department provides), employees (if the service also applicable to the departmental employees, or if the employees is the one implementing the service), or others. Partners of a business service can be other departments or organizations that consume the departmental service, provide data to the department, or those who are building the system/program with the department. Suppliers of a business service can be the SaaS companies who provide the department with service, vendors, SSC, etc. <br>
    
There are various sites where department can visit to understand and use stakeholder analysis and stakeholder mapping. The following are examples of sites that department can use to obtain further on stakeholder analysis or mapping:
 
There are various sites where department can visit to understand and use stakeholder analysis and stakeholder mapping. The following are examples of sites that department can use to obtain further on stakeholder analysis or mapping:
Line 98: Line 80:  
<!-- COLUMN ENDS: -->  
 
<!-- COLUMN ENDS: -->  
   −
<br><br>
     −
Once the stakeholders have been clearly identified, we would need to do some research into what their needs are. Remember, some stakeholders may not know what their needs are, or they may not be able to articulate their needs are. Thus, it would be the responsibilities of a project or program manager to conduct needs based analysis. This may sounds like a lot of work, and it may be is, however, it is a very important step to be carried out as it will provide an understanding of what kind of service is actually required, how effective the current service is, how to improve the delivery of the service so that it will be more useful - more effective. To do this correctly we need feedback from the right stakeholders to create a good design that is easy to use and works well. This method is called user centric design.<br><br>
+
Once the stakeholders have been clearly identified, we would need to do some research into what their needs are. Remember, some stakeholders may not know what their needs are, or they may not be able to articulate their needs are. Thus, it would be the responsibilities of a project or program manager to conduct needs based analysis. This may sounds like a lot of work, and it may be is, however, it is a very important step to be carried out as it will provide an understanding of what kind of service is actually required, how effective the current service is, how to improve the delivery of the service so that it will be more useful - more effective. To do this correctly we need feedback from the right stakeholders to create a good design that is easy to use and works well. This method is called user centric design.<br>
    
* <b><I>Include policy requirement applying to specific stakeholder groups, such as accessibilities, gender based+ analysis, and official languages in the creation of the service </I></b>
 
* <b><I>Include policy requirement applying to specific stakeholder groups, such as accessibilities, gender based+ analysis, and official languages in the creation of the service </I></b>
   −
In identifying the stakeholder, department needs to ensure that it is being inclusive and includes all stakeholder groups. Things to consider when designing a business service are accessibilities, official languages and gender based+ analysis to ensure the business service created will be comprehensive to all stakeholder groups. They are important to be considered as these stakeholders have specific requirements that need to be met as well.<br><br>
+
In identifying the stakeholder, department needs to ensure that it is being inclusive and includes all stakeholder groups. Things to consider when designing a business service are accessibilities, official languages and gender based+ analysis to ensure the business service created will be comprehensive to all stakeholder groups. They are important to be considered as these stakeholders have specific requirements that need to be met as well.<br>
   −
For further information on Gender Base+ Policy, please refer to [https://www.canada.ca/en/treasury-board-secretariat/corporate/reports/summary-modernizing-info-sex-gender.html Policy Direction to Modernize the GC Sex and Gender Info Practices] <br><br>
+
For further information on Gender Base+ Policy, please refer to [https://www.canada.ca/en/treasury-board-secretariat/corporate/reports/summary-modernizing-info-sex-gender.html Policy Direction to Modernize the GC Sex and Gender Info Practices] <br>
    
<!-- COLUMN STARTS: -->  
 
<!-- COLUMN STARTS: -->  
Line 133: Line 114:  
<!-- TABLE ENDS --> |}
 
<!-- TABLE ENDS --> |}
 
<!-- COLUMN ENDS: -->  
 
<!-- COLUMN ENDS: -->  
<br><br>
      
* <b><I>Model end-to-end business service delivery to provide quality, maximize effectiveness and optimize efficiencies across all channels (e.g lean process)</I></b>
 
* <b><I>Model end-to-end business service delivery to provide quality, maximize effectiveness and optimize efficiencies across all channels (e.g lean process)</I></b>
   −
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>
+
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>
    
<!-- COLUMN 1 STARTS: -->  
 
<!-- COLUMN 1 STARTS: -->  
Line 150: Line 130:  
<!-- TABLE ENDS --> |}
 
<!-- TABLE ENDS --> |}
 
<!-- COLUMN ENDS: -->  
 
<!-- COLUMN ENDS: -->  
<br><br>
      
<h4><b><u>Architect to be Outcome Driven and Strategically Aligned to the Department and to the Government of Canada</u></b></h4>
 
<h4><b><u>Architect to be Outcome Driven and Strategically Aligned to the Department and to the Government of Canada</u></b></h4>
Line 156: Line 135:  
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. The mandate can be broken down into Strategic Outcomes. A project or program may indirectly support a mandate, however, the derivative outcome it produces may still be able to be tied into one of the strategic outcomes which support departmental mandate. Everything needs to be tied in to the mandate, or one of the strategic outcomes, and everything needs to be measurable. If a department is not sure how a program or project is supporting its mandate or its strategic outcome, 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. The mandate can be broken down into Strategic Outcomes. A project or program may indirectly support a mandate, however, the derivative outcome it produces may still be able to be tied into one of the strategic outcomes which support departmental mandate. Everything needs to be tied in to the mandate, or one of the strategic outcomes, and everything needs to be measurable. If a department is not sure how a program or project is supporting its mandate or its strategic outcome, 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>
    
<!-- COLUMN STARTS: -->  
 
<!-- COLUMN STARTS: -->  
Line 176: Line 155:  
<!-- TABLE ENDS --> |}
 
<!-- TABLE ENDS --> |}
 
<!-- COLUMN ENDS: -->  
 
<!-- COLUMN ENDS: -->  
<br><br>
      
* <b><I>Identify which departmental/GC business services, outcomes and strategies will be addressed </I></b>
 
* <b><I>Identify which departmental/GC business services, outcomes and strategies will be addressed </I></b>
   −
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>
+
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>
    
* <b><I>Establish metrics for identified business outcomes throughout the lifecycle of an investment</I></b>
 
* <b><I>Establish metrics for identified business outcomes throughout the lifecycle of an investment</I></b>
   −
Another important aspect to ensure alignment to departmental mandate is establishing the metrics for the identified business outcomes. This will ensure department have a way to identify its efficiencies or effectiveness in delivering the business services. As technology progresses, the outcomes that was once achieved by the program or project may become invalid or insufficient to support the departmental mandate or GC Direction. At this time, it would be prudent to re-visit the effectiveness of the program or project and explore possibility of leveraging other existing service created by other department or creating a new project or program. <br><br>
+
Another important aspect to ensure alignment to departmental mandate is establishing the metrics for the identified business outcomes. This will ensure department have a way to identify its efficiencies or effectiveness in delivering the business services. As technology progresses, the outcomes that was once achieved by the program or project may become invalid or insufficient to support the departmental mandate or GC Direction. At this time, it would be prudent to re-visit the effectiveness of the program or project and explore possibility of leveraging other existing service created by other department or creating a new project or program. <br>
    
* <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</I></b>
 
* <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</I></b>
   −
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>
+
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>
   −
<h4><b><u> Promote Horizontal Enablement of the Enterprise</u></b></h4>
+
<h4><b><u>Promote Horizontal Enablement of the Enterprise</u></b></h4>
    
By having a common business capability terminology, it becomes easier to figure out if one solution is essentially a duplicate of another solution. It also becomes easier to find out if a department has obtained a solution to enable a business capability, and thus, the same solution may be leveraged to solve similar problem in another department. This horizontal enablement across departments would support reduction in IT spending through achieving economy of scale in procuring the same licenses. It would also support better collaboration between departments and easier data exchange.
 
By having a common business capability terminology, it becomes easier to figure out if one solution is essentially a duplicate of another solution. It also becomes easier to find out if a department has obtained a solution to enable a business capability, and thus, the same solution may be leveraged to solve similar problem in another department. This horizontal enablement across departments would support reduction in IT spending through achieving economy of scale in procuring the same licenses. It would also support better collaboration between departments and easier data exchange.
      
* <b><I>Identify opportunities to horizontally enabled business services and provide cohesive experience to stakeholders</I></b>
 
* <b><I>Identify opportunities to horizontally enabled business services and provide cohesive experience to stakeholders</I></b>
  −
      
* <b><I>Reuse common business capabilities and processes from across government and private sector</I></b>
 
* <b><I>Reuse common business capabilities and processes from across government and private sector</I></b>
      
* <b><I>Publish in the open reusable common business capabilities and processes (in the Open Government portal) for others to develop cohesive horizontal enterprise services</I></b>
 
* <b><I>Publish in the open reusable common business capabilities and processes (in the Open Government portal) for others to develop cohesive horizontal enterprise services</I></b>
      
<h2><span style="font-size: 1.5em;">Information Architecture</span></h2>
 
<h2><span style="font-size: 1.5em;">Information Architecture</span></h2>
Line 233: Line 206:  
<h4><b><u>Use and share data openly in an ethical and secure manner</u></b></h4>''Section under development'' (ESP/Bitar)
 
<h4><b><u>Use and share data openly in an ethical and secure manner</u></b></h4>''Section under development'' (ESP/Bitar)
   −
<h2><span style="font-size: 1.5em;">Application Architecture</span></h2> <br><br>
+
<h2><span style="font-size: 1.5em;">Application Architecture</span></h2>  
   −
Application Architecture consists of understanding and designing the various applications within a department, how they tie in to the business service supporting the departmental mandate, where they are located in the architecture landscape of the department as well as the GC, how they interact with each other and with their users, the zoning requirements, etc. Application Architecture focuses less on internal mechanics and specific programming and more on overall design on how data is consumed and created by the system. It views the interactions between applications, databases, middleware to ensure scalability, reliability, availability and manageability. <br><br>
     −
<h4><b><u>Use Open Source Solutions hosted in Public Cloud</u></b></h4><br>
+
Application Architecture consists of understanding and designing the various applications within a department, how they tie in to the business service supporting the departmental mandate, where they are located in the architecture landscape of the department as well as the GC, how they interact with each other and with their users, the zoning requirements, etc. Application Architecture focuses less on internal mechanics and specific programming and more on overall design on how data is consumed and created by the system. It views the interactions between applications, databases, middleware to ensure scalability, reliability, availability and manageability. <br>
 +
 
 +
<h4><b><u>Use Open Source Solutions hosted in Public Cloud</u></b></h4>
 +
 
    
While Open Source Solution (OSS) is not a silver bullet, several common misconceptions are used as arguments against Open Source software: A misconception with security is that with the code out of the eyes of the public that it prevents successful attacks and lowers liability, however in reality Security Best practices state that 'System security should not depend on the secrecy of the implementation or its components', and as Open Source development relies and hardening (or improving the security) of code it is often equal or more secure then proprietary solutions.
 
While Open Source Solution (OSS) is not a silver bullet, several common misconceptions are used as arguments against Open Source software: A misconception with security is that with the code out of the eyes of the public that it prevents successful attacks and lowers liability, however in reality Security Best practices state that 'System security should not depend on the secrecy of the implementation or its components', and as Open Source development relies and hardening (or improving the security) of code it is often equal or more secure then proprietary solutions.
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>
   −
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>
+
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>
    
*<b><I> Select existing solutions that can be reused over custom built</I></b>
 
*<b><I> Select existing solutions that can be reused over custom built</I></b>
   −
It is important to reduce the duplication of effort that has occurred due to segmented mandates, and increase collaboration and sharing across Departments and Agencies. Crown Corporations, Provincial and Municipal Governments as well as the Public at large who can benefit from new and innovative products and services based off of creations from the Government.<br><br>
+
It is important to reduce the duplication of effort that has occurred due to segmented mandates, and increase collaboration and sharing across Departments and Agencies. Crown Corporations, Provincial and Municipal Governments as well as the Public at large who can benefit from new and innovative products and services based off of creations from the Government.<br>
    
*<b><I> Contribute all improvements back to the communities</I></b>
 
*<b><I> Contribute all improvements back to the communities</I></b>
Line 254: Line 229:  
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].
 
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>
    
*<b><I> Register Open Source software to the [https://canada-ca.github.io/ore-ero/en/index.html Open Resource Exchange]</I></b>
 
*<b><I> Register Open Source software to the [https://canada-ca.github.io/ore-ero/en/index.html Open Resource Exchange]</I></b>
Line 261: Line 236:  
Define Metadata for your application early in both English and French to support your release to [https://open.canada.ca/en/open-data| Open Data].
 
Define Metadata for your application early in both English and French to support your release to [https://open.canada.ca/en/open-data| Open Data].
 
Development following the Government of Canada Standards on APIs can allow rapid uptake into Open Data feeds.
 
Development following the Government of Canada Standards on APIs can allow rapid uptake into Open Data feeds.
  −
<br>
      
<h4><b><u>Use Software as a Service (SaaS) hosted in Public Cloud</u></b></h4>
 
<h4><b><u>Use Software as a Service (SaaS) hosted in Public Cloud</u></b></h4>
 
* <b><I>Choose SaaS that best fit for purpose based on alignment with SaaS capabilities </I></b><br>  
 
* <b><I>Choose SaaS that best fit for purpose based on alignment with SaaS capabilities </I></b><br>  
 
* <b><I>Choose a SaaS solution that is extendable </I></b><br>
 
* <b><I>Choose a SaaS solution that is extendable </I></b><br>
* <b><I>Configure SaaS and if customization is necessary extend as Open Source modules </I></b><br>
+
* <b><I>Configure SaaS and if customization is necessary extend as Open Source modules</I></b>
<br>
  −
 
   
<h4><b><u>Design for [https://www.gcpedia.gc.ca/wiki/En/GCinterop Interoperability]</u></b></h4>
 
<h4><b><u>Design for [https://www.gcpedia.gc.ca/wiki/En/GCinterop Interoperability]</u></b></h4>
    
As the GC is transitioning to new technology and as more departments start to work together, interoperability becomes a key important factor in ensuring stability and continuity of a program. Self-discipline must be instilled to always publish and maintain API so that other systems or other departments can make use and leverage the work that is already done without duplication of work and re-inventing the wheel. It can also maintain precious data flow that has previously obtained from legacy system.
 
As the GC is transitioning to new technology and as more departments start to work together, interoperability becomes a key important factor in ensuring stability and continuity of a program. Self-discipline must be instilled to always publish and maintain API so that other systems or other departments can make use and leverage the work that is already done without duplication of work and re-inventing the wheel. It can also maintain precious data flow that has previously obtained from legacy system.
   −
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>
+
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>
 
  −
* <b><I>Design systems as highly modular and loosely coupled services</I></b><br>
      +
* <b><I>Design systems as highly modular and loosely coupled services</I></b>
 
A good system design starts from building a small simple independent function. Focus on smallest unit of purpose, and develop a single function. The small single function can then become a building block for a larger more complicated function, and be combined with other simple functions to finally create a service. Having a simple independent function also means that it be reused to create another complicated function. Thus, it is very important to build a function that is small and simple enough to make it highly modular.  
 
A good system design starts from building a small simple independent function. Focus on smallest unit of purpose, and develop a single function. The small single function can then become a building block for a larger more complicated function, and be combined with other simple functions to finally create a service. Having a simple independent function also means that it be reused to create another complicated function. Thus, it is very important to build a function that is small and simple enough to make it highly modular.  
   Line 283: Line 253:     
When one is at the point of starting to create multiple services, it is important to make sure the services are loosely coupled. This way, even the services can also be re-used, either by other projects, programs or even other departments.
 
When one is at the point of starting to create multiple services, it is important to make sure the services are loosely coupled. This way, even the services can also be re-used, either by other projects, programs or even other departments.
<br><br>
+
<br>
    
* <b><I>Expose services through APIs </I></b>
 
* <b><I>Expose services through APIs </I></b>
    
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.  
 
Ensure that services are accessible via common methodologies, and follow the Government of Canada Standards on APIs.
 
Ensure that services are accessible via common methodologies, and follow the Government of Canada Standards on APIs.
<br><br>
+
<br>
    
* <b><I>Make the APIs discoverable to the appropriate stakeholders</I></b>
 
* <b><I>Make the APIs discoverable to the appropriate stakeholders</I></b>
    
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).
 
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>
+
<br>
    
<h4><b><u>Follow [https://www.devsecops.org/blog/2015/2/15/what-is-devsecops DevSecOps] Principles</u></b></h4>
 
<h4><b><u>Follow [https://www.devsecops.org/blog/2015/2/15/what-is-devsecops DevSecOps] Principles</u></b></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.  
 
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.  
<br><br>
+
<br>
    
<!-- COLUMN 1 STARTS: -->  
 
<!-- COLUMN 1 STARTS: -->  
Line 314: Line 284:  
<!-- TABLE ENDS --> |}
 
<!-- TABLE ENDS --> |}
 
<!-- COLUMN ENDS: -->  
 
<!-- COLUMN ENDS: -->  
<br><br>
  −
      
* <b><I>Use continuous integration and continuous deployments (CI/CD)</I></b>
 
* <b><I>Use continuous integration and continuous deployments (CI/CD)</I></b>
Line 321: Line 289:  
* <b><I>Include your stakeholders as part of DevSecOps process</I></b>
 
* <b><I>Include your stakeholders as part of DevSecOps process</I></b>
   −
 
+
<h2><span style="font-size: 1.5em;">Technology Architecture</span></h2>  
<h2><span style="font-size: 1.5em;">Technology Architecture</span></h2> <br><br>
      
<h4><b>Use Cloud first</b></h4>
 
<h4><b>Use Cloud first</b></h4>
Line 330: Line 297:  
* Enforce this order of preference: Public cloud first, then Hybrid cloud, then Private cloud, and lastly non-cloud (on-premises) solutions
 
* Enforce this order of preference: Public cloud first, then Hybrid cloud, then Private cloud, and lastly non-cloud (on-premises) solutions
 
* Design for cloud mobility and develop an exit strategy to avoid vendor lock-in
 
* Design for cloud mobility and develop an exit strategy to avoid vendor lock-in
<br>
      
<h4><b>Design for Performance, Availability, and Scalability</b></h4>
 
<h4><b>Design for Performance, Availability, and Scalability</b></h4>
Line 338: Line 304:  
* Establish architectures that supports new technology insertion with minimal disruption to existing programs and services
 
* Establish architectures that supports new technology insertion with minimal disruption to existing programs and services
 
* Control Technical Diversity - design systems based on modern technologies and platforms already in use
 
* Control Technical Diversity - design systems based on modern technologies and platforms already in use
      
<h2><span style="font-size: 1.5em;">Security Architecture</span></h2>Input from Cyber, Sept 23, 2020
 
<h2><span style="font-size: 1.5em;">Security Architecture</span></h2>Input from Cyber, Sept 23, 2020
Line 372: Line 337:  
<br>[https://gcdocs.tbs-sct.gc.ca/gcdocs/llisapi.dll?func=ll.gettz&OTDS&NextURL=https%3A%2F%2Fgcdocs%2Etbs%2Dsct%2Egc%2Eca%2Fgcdocs%2Fllisapi%2Edll%3Ffunc%3Dll%26objaction%3Doverview%26objid%3D34328350 GC Digital Identity ICAM Reference Architecture]
 
<br>[https://gcdocs.tbs-sct.gc.ca/gcdocs/llisapi.dll?func=ll.gettz&OTDS&NextURL=https%3A%2F%2Fgcdocs%2Etbs%2Dsct%2Egc%2Eca%2Fgcdocs%2Fllisapi%2Edll%3Ffunc%3Dll%26objaction%3Doverview%26objid%3D34328350 GC Digital Identity ICAM Reference Architecture]
   −
[https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=30678&section=html Guideline on Identity Assurance]
+
[https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=30678&section=html Guideline on Identity Assurance]<br><!-- FOOTER -->
 
  −
<br><!-- FOOTER -->
   
{| width="100%" cellpadding="10"  
 
{| width="100%" cellpadding="10"  
   Line 407: Line 370:     
<!-- COLUMN ENDS: -->  
 
<!-- COLUMN ENDS: -->  
<!-- TABLE ENDS --> |}
+
<!-- TABLE ENDS -->|}
 
<!-- end -->
 
<!-- end -->