Difference between revisions of "GC Enterprise Architecture/Playbook"

From wiki
Jump to navigation Jump to search
m
m
 
(49 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
{{OCIO_GCEA_Header}}
 
{{OCIO_GCEA_Header}}
  
<i><big> This is a <b><u>DRAFT COPY</u></b> of the proposed GC EA Playbook. It is a work IN PROGRESS, and has not undergone any review. </big></i>
+
<i><big>This is a <b><u>DRAFT COPY</u></b> of the proposed GC EA Playbook. It is outdated, a work IN PROGRESS, and has not undergone any review. </big></i>
 +
 
 +
<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>
 +
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:
 +
 
 +
1. Read the Playbook all the way through first; and
 +
 
 +
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.
 +
 
 +
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> <span style="font-size: 1.5em;">Where to start </span>
 +
 
 +
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>?".
 +
 
 +
To answer this question, department has to:<br><br>
 +
1. <b>Identify the end goal</b> (i.e. benefits, business outcomes, alignment to strategy/mandate)
 +
*what is it that the department wants to achieve at the end?
 +
*what problem is the department trying to solve?
 +
*what are the benefits being realized?
 +
*what are the measurable business outcomes?
 +
 
 +
2. <b>Figuring out options</b> – if we use this solution:
 +
*how would it affect the outcome?
 +
*how would it affect the existing process?
 +
*how would it affect the other existing systems in the ecosystem?
 +
 
 +
3. <b>Determine the best approach</b>
 +
*would it be the best approach / solution that will fit departmental needs / strategy / mandate?
 +
*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?
 +
 
 +
4. Finally: <b>Does the outcome outweigh the expenses, aka <I>IS IT WORTH IT</I>?</b>
 
<br>
 
<br>
  
<h2> INTRODUCTION - How to use the Playbook</h2><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>.
  
This EA Playbook is intended to help Enterprise Architects build/manage their departmental Enterprise Architecture.
+
<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 own. <br><br><b><u>Fulfill the Government of Canada stakeholder needs</u></b>
The book is organized into chapters as per the B-I-A-T-S+P architecture layers called Plays. We recommend that users:
 
  
1. Read the Playbook all the way through first; and
+
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.
 +
 
 +
Once a department identifies all of its stakeholders, it needs to map them into their roles and responsibilities as well as identify their requirements. From there, the department will need to figure out how to make it easier for the stakeholder to use the business service, which means the department needs to really drill down on the user interface design of their service. This is what digital is all about, i.e. to make it easy for users to consume the GC service.
 +
 
 +
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 optimizing efficiencies.<br>
 +
 
 +
*<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 managers 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 departments can visit to understand and use stakeholder analysis and stakeholder mapping. The following are examples of sites that departments can use to obtain further on stakeholder analysis or mapping:
 +
*[https://www.groupmap.com/map-templates/stakeholder-analysis/index.html GroupMap Stakeholder analysis]
 +
*[https://www.pmi.org/learning/library/stakeholder-analysis-pivotal-practice-projects-8905 PMI Stakeholder Analysis]<br>
 +
 
 +
<!-- COLUMN STARTS: -->
 +
 
 +
<!-- COLUMN 1 STARTS: -->
 +
{| width="100%" cellpadding="5"
 +
 
 +
|- valign="top"
 +
| width="50.0%" style="border: 1px solid lightgray; background-color:#fff; color:#409DE2;" |
 +
[[Image: Stakeholder_analysis.jpg | 500px | center]]
 +
<div style="font-size:1.0em; text-align:center;"> source: PMI</div>
 +
<!-- COLUMN 1 ENDS: -->
 +
 
 +
<!-- COLUMN 2 STARTS: -->
 +
| width="50.0%" style="border: 1px solid lightgray; background-color:#fff; color:#409DE2;" |
 +
[[Image: Stakeholders_power_interest_grid.png| 500px | center]]<br>
 +
<div style="font-size:1.0em; text-align:center;"> source: citoolkit</div>
 +
<!-- COLUMN 2 ENDS: -->
 +
<!-- TABLE ENDS -->|}
 +
<!-- COLUMN ENDS: -->
 +
 
 +
Once the stakeholders have been clearly identified, the department 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. Thus, it would be the responsibilities of a project or program manager to conduct needs-based analysis. This may sound like a lot of work, 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 the departments 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>
 +
 
 +
In identifying the stakeholder, the 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>
  
2. Take an iterative approach to implementing the "Plays"
+
<!-- COLUMN STARTS: -->
  
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.
+
<!-- COLUMN 1 STARTS: -->
 +
{| width="100%" cellpadding="5"
  
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]
+
|- valign="top"
 +
| width="33.3%" style="border: 1px solid lightgray; background-color:#fff; color:#409DE2;" |
 +
[[Image: Stakeholder_Onion_Diagram.png | 300px | center]] <br>
 +
<div style="font-size:1.0em; text-align:center;"> source: edrawsoft</div>
 +
<!-- COLUMN 1 ENDS: -->
  
 +
<!-- COLUMN 2 STARTS: -->
 +
| width="33.3%" style="border: 1px solid lightgray; background-color:#fff; color:#409DE2;" |
 +
<br><br>[[Image: Disability_and_web_accessibility_-_ebsco.png| 300px | center]] <br>
 +
<div style="font-size:1.0em; text-align:center;"> source: ebsco</div>
 +
<!-- COLUMN 2 ENDS: -->
  
<h2> The Plays </h2> <br>
+
<!-- COLUMN 3 STARTS: -->  
 +
| width="33.3%" style="border: 1px solid lightgray; background-color:#fff; color:#409DE2;" |
 +
<br><br>[[Image: Gender-based_analysis_plus_cfc-swc.png| 200px | center]] <br>
 +
<div style="font-size:1.0em; text-align:center;"> source: csc-swc</div>
 +
<!-- COLUMN 3 ENDS: -->  
  
<h3><span style="font-size: 1.5em;"> 1. Business Architecture</span></h3> <br><br>
+
<!-- TABLE ENDS -->|}
 +
<!-- COLUMN ENDS: -->  
  
Business Architecture is where an organization identifies the various services that it suppose to provide externally, as well as the various functions it owns or needs to own internally to support their services to the public. In terms 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><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>
  
<h4><b><u>Fulfill the Government of Canada stakeholder needs</b></u></h4>
+
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, the various channels with 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>
  
As the provider of service to Canadians, it is important for the GC to understand the stakeholders well. The stakeholders in this case can mean their users, their partners (if any), their suppliers (if any), their program or project manager, their implementor, etc. Once a department identify all its stakeholders, it needs to map them into their roles and responsibilities as well as identify their requirements. From there, department will need to figure out how to make it easier for the stakeholder to use the business service, which means department needs to really drill down on the user interface design of their service. This is what digital is all about, to make it easy for the users to consume the GC service.
+
<!-- COLUMN 1 STARTS: -->
 +
{| width="100%" cellpadding="5"
  
There are various sites where department can visit to understand and use stakeholder analysis and stakeholder mapping. The following are examples that department can use:
+
|- valign="top"
* [https://www.groupmap.com/map-templates/stakeholder-analysis/index.html GroupMap Stakeholder analysis]
+
| width="50.0%" style="border: 1px solid lightgray; background-color:#fff; color:#409DE2;" |
* [https://www.pmi.org/learning/library/stakeholder-analysis-pivotal-practice-projects-8905 PMI Stakeholder Analysis]
+
[[Image: P06_Stakeholder-analysis-workflow.jpg | 1200px | center]]  
 +
<div style="font-size:1.0em; text-align:center;"> source: Leaderonomics
 +
</div>
 +
<!-- COLUMN 1 ENDS: -->
 +
<!-- TABLE ENDS -->|}
 +
<!-- COLUMN ENDS: -->
  
While configuring the service, departments should also take into account the policy requirements, including accessibilities, gender based+ analysis and official languages.
+
<h4><b><u>Architect to be Outcome Driven and Strategically Aligned to the Department and to the Government of Canada</u></b></h4>
  
Once the stakeholders are identified, the roles and responsibilities are mapped, and the stakeholder needs are identified and translated into 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 maximize its effectiveness and optimize efficiencies.<br><br>
+
The whole notion of creating a program or project is to support the 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 the mandate. Everything needs to be tied into 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.
  
* <b><I>Clearly identify internal and external stakeholders and their needs for each business service including user centric design </b></I>
+
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 the 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 needs to plan for transitioning to use NextGen when it becomes available.<br>
To understand the stakeholder, it is recommended for program & project manager to conduct stakeholder analysis and create stakeholder mapping for each service being delivered. Users in this case can be Canadians (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 can mean 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 can be the SaaS companies who provide the department with service, vendors, SSC, etc. <br><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 </b></I>
+
<!-- COLUMN STARTS: -->  
  
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>
+
<!-- COLUMN 1 STARTS: -->  
 +
{| width="100%" cellpadding="5"
  
* <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>
+
|- valign="top"
 +
| width="50.0%" style="border: 1px solid lightgray; background-color:#fff; color:#409DE2;" |
 +
[[Image: Whole_Government_Framework.jpg| 500px | center]]
 +
<div style="font-size:1.0em; text-align:center;"> source: GC </div>
 +
<!-- COLUMN 1 ENDS: -->
  
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>
+
<!-- COLUMN 2 STARTS: -->
 +
| width="50.0%" style="border: 1px solid lightgray; background-color:#fff; color:#409DE2;" |
 +
[[Image: ISED_GC_Strategy_alignment.jpg| 500px | center]]
 +
<div style="font-size:1.0em; text-align:center;"> source: ISED </div>
 +
<!-- COLUMN 2 ENDS: -->
 +
<!-- TABLE ENDS -->|}
 +
<!-- COLUMN ENDS: -->  
  
<h4><b><u>Architect to be Outcome Driven and Strategically Aligned to the Department and to the Government of Canada</b></u></h4>
+
*<b><I>Identify which departmental/GC business services, outcomes and strategies will be addressed </I></b>
  
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.
+
In order to ensure a program or project supports the 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 providing an outcome that is aligned to the departmental mandate or GC direction. <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>
+
*<b><I>Establish metrics for identified business outcomes throughout the lifecycle of an investment</I></b>
  
* <b><I>Identify which departmental/GC business services, outcomes and strategies will be addressed </b></i>
+
Another important aspect to ensure alignment to departmental mandate is establishing the metrics for the identified business outcomes. This will ensure that the department has a way to identify its efficiencies or effectiveness in delivering the business services. As technology progresses, the outcomes that were 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 the possibility of leveraging other existing services created by other departments or creating a new project or program. <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 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>
+
*<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>Establish metrics for identified business outcomes throughout the lifecycle of an investment</b></I>
+
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 a program or project can deviate from its short-term goal. <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><br>
+
<h4><b><u>Promote Horizontal Enablement of the Enterprise</u></b></h4>
  
* <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>
+
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.
  
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>
+
*<b><I>Identify opportunities to horizontally-enabled business services and provide cohesive experience to stakeholders</I></b>
  
<h4><b><u> Promote Horizontal Enablement of the Enterprise</b></u></h4>
+
* <b><I>Reuse common business capabilities and processes from across government and private sector</I></b>
* 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
 
* Publish in the open reusable common business capabilities and processes (in the Open Government portal) for others to develop cohesive horizontal enterprise services
 
  
 +
*<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>
  
<h3><span style="font-size: 1.5em;">2. Information Architecture</span></h3> <br><br>
+
<h2><span style="font-size: 1.5em;">Information Architecture</span></h2>
  
<h4><b>Collect data to address the needs of the stakeholders </b></h4>
+
<!-- COLUMN 1 ENDS: -->
* Adopt a needs-based approach to data collection
+
<!-- COLUMN 2 STARTS: -->
** Do your data collection processes include an assessment of existing data assets (e.g. as documented in a data inventory and/or catalogue) to minimize redundancy and duplication? 
 
* Collect only the minimum set of data needed to support a policy, program, service, or other function fulfill the business service
 
** Do you have a mechanism or process in place to ensure that all data collected can be tied to a specific business need (e.g. a policy, program, service, or other operational need) so that you are able to identify excess data? 
 
* Reuse existing data assets and only acquire new data if required
 
** Do your data collection processes include an assessment of existing data assets (e.g. as documented in a data inventory and/or catalogue) to facilitate data reuse?
 
** Do you have a process or mechanism in place to assess and control the quality of existing data assets being considered for reuse?
 
** Do you have a process or mechanism in place to ensure that any reuse of existing data assets complies with privacy and other applicable laws and policies?   
 
* Ensure your data collection methodology, including third party sources, yields high quality data
 
** Do you have a process or mechanism in place to assess and control the quality of data collected?
 
  
<h4><b>Manage data strategically and responsibly</b></h4>
+
<h4><b><u>Collect data to address the needs of the stakeholders</u></b></h4>
* Define and establish clear roles, responsibilities, and accountabilities for data management
+
*'''Assess data requirements based on stakeholder needs'''
** Do you have a framework or policy that sets out your organization’s data governance structure? At a minimum, the structure would list key data roles in the organization (e.g. steward, custodian, analyst, scientist) and define the responsibilities and decision-making authorities associated with each of them.  
+
**Prior to collecting new data, an assessment of existing data assets (e.g. in a data inventory, database, internal data catalog, or other repository) and how they might address stakeholder needs is recommended.
 +
**Data requirements are informational gaps identified in the process of responding a stakeholder need. If it is not met, a data requirement may pose a barrier to informed decision-making, operational needs, or the delivery of a service to a citizen or business.
 +
**A stakeholder in this context is an internal or external client or provider involved in a policy, program, or service that originates in the Government of Canada.
 +
** It will not always be clear whether a data asset meets the need of a stakeholder. A clear understanding and articulation of the business problem (e.g. purpose, objectives or expected outcomes, outputs, etc.) will facilitate this exercise.
 +
*'''Collect only the minimum set of data needed to support a policy, program and service'''
 +
**This procedure can be summarized as 'collect with a purpose'. Rather than determining your data needs ''post-hoc'' – following data collection, that is – it is recommended that data needs are specified in the process of designing the data collection methodology.
 +
** The 'minimum set of data' will vary by data type and business problem. For example, it may be easier to identify the minimum 'threshold' at which collected data will be sufficient to support the administration or delivery of a service. But in a foreign policy context, that threshold may not be clear: what is the minimum set of data needed to support the elaboration of Canada's Feminist International Assistance Policy? In such contexts, the only feasible approach may be to identify what is necessary (as opposed to what is sufficient) to meet the stakeholder need.
 +
** In a program context, data needs may be derived from Performance Information Profiles (PIPs), which include key performance indicators (KPIs) which help program managers assess progress towards targets and broader objectives.
 +
*'''Reuse existing data assets and only acquire new data if required'''
 +
** Following the assessment of existing data assets recommended under the first step, evaluate the reusability of the data deemed relevant to address the stakeholder need. This involves assessing basic aspects of its quality in light of that need. For example, a dataset that may have been timely in the context of its initial usage may be outdated in the new context.
 +
**In addition to quality, privacy and security are important considerations to take into account when evaluating the reusability of a data asset. Not all data is reusable. The reuse of personal information, for example, is restricted under the requirements of the ''Privacy Act''. Further, in some cases, the reuse of data may pose security risks to an organization or to the Government of Canada at large. A risk assessment based on criteria informed by the current policy and legislative environment is recommended to mitigate the risks of data reuse.
 +
*'''Ensure data collected, including from third party sources, are of high quality'''
 +
**Unless data collected (whether by a federal organization or through a third party) or generated meets basic standards of quality, it is not fit for purpose.
 +
**There are various governmental and international approaches to assessing the quality of data. Common dimensions or aspects of quality include relevance, timeliness, consistency, reliability, interpretability, and usability. Specific considerations may be warranted for certain types of data (e.g. geospatial data). The development of a departmental data quality framework to help assess and control the quality of data is recommended. An enterprise-level framework for the Government of Canada, which all federal organizations will be able to adopt, is currently under development.
 +
** A routine process for profiling newly collected or generated data could help maintain the overall quality of data assets. Quality management and assurance, however, is an activity that applies throughout the lifecycle of data – from the point it is collected or generated to that at which it is disposed. Ensuring that data quality is regularly assessed and maintained is among the key responsibilities of a data steward.
  
* Identify and document the lineage of your data assets.
+
<h4><b><u>Manage data strategically and responsibly</u></b></h4>
** Does your data inventory document any information about the lineage of existing data assets? If so, through what process is lineage determined and tracked over time? If not, is this information tracked anywhere else?
+
''Section under development'' (ESP/Bitar)
* Define retention and disposition schedules and perform regular disposition activities (I’m not sure about the last bit: are disposition activities necessarily regular and, if so, according to whose timetable? What is LAC’s GC policy on this?)
 
** Do you have a mechanism or process in place to ensure that retention and disposition schedules are determined (at least provisionally) for data collected? This is particularly relevant in the case of personal data, where timelines are set by the Privacy Act.   
 
* Ensure information and data are managed to enable interoperability, reuse and sharing to the greatest extent possible within and with other across departments across the in government to avoid duplication and maximize utility, while respecting security and privacy requirements
 
** For what data domains and attributes have you developed reference and master data standards?
 
** To what extent does your organization adhere to existing enterprise-level standards for data?
 
** What is the percentage of data shared through information sharing agreements?
 
** To what extent is the data you share with other GC organizations interoperable?
 
** Do you have a process in place to evaluate whether a certain data need can be addressed by requesting data from a GC organization as opposed to collecting it?
 
* Contribute to and/or aligned to Enterprise Data taxonomy and classification structures to manage, store, search and retrieve information and data in all formats (I am uncertain about the reasoning here: is it to ‘manage, store, search, and retrieve’? It seems too broad to be relevant to architecture in particular.)
 
** For what data domains and/or attributes have you developed reference and master data standards?
 
** For what data domains and/or attributes have you supported the development of enterprise-wide data standards?
 
* Ensure that data received from external parties is profiled and validated prior to its use
 
  
<h4><b>Use and share data openly in an ethical and secure manner</b></h4>
+
<h4><b><u>Use and share data openly in an ethical and secure manner</u></b></h4>''Section under development'' (ESP/Bitar)
* Ensure data formatting aligns to existing enterprise and international standards. Where none exist, develop standards in the open with key subject matter experts, in consultation with the Enterprise Data Community of Practice.
 
* Data should be shared openly by default as per the Directive on Open Government and Digital Standards, while adhering to existing enterprise and international standards, including on quality or fitness for purpose.
 
** Do you have a process or mechanism in place to release data assessed for its public value?
 
** What is the percentage of collected and generated data assets that is released or made available to the public?
 
* Ensure that combined data does not risk identification or re-identification of sensitive or personal information
 
** Do you have a risk assessment process or mechanism in place to ensure that combining two or more datasets does not risk compromising the privacy and security of individuals by exposing sensitive or personal information?
 
  
 +
<h2><span style="font-size: 1.5em;">Application Architecture</span></h2>
  
<h3><span style="font-size: 1.5em;">3. Application Architecture</span></h3> <br><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>
  
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>
  
<h4><b><u>Use Open Source Solutions hosted in Public Cloud</b></u></h4><br>
+
While an 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 to or more secure than proprietary solutions.
 +
A misconception with support is that a support contract or license somehow 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 than in proprietary software by the very nature of crowd sourcing reducing the barrier of communication with a single entity or individual. <br>
  
While 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.
+
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>
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>
 
  
*<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</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</b></I>
+
*<b><I> Contribute all improvements back to the communities</I></b>
  
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>
  
*<b><I> Register Open Source software to the [https://canada-ca.github.io/ore-ero/en/index.html Open Resource Exchange]</b></I>
+
*<b><I> Register Open Source software to the [https://canada-ca.github.io/ore-ero/en/index.html Open Resource Exchange]</I></b>
  
Scientific Innovation can occur from exposing Data to interested members of the activists, researchers, students and the public at large.
+
Scientific Innovation can occur from exposing data to interested members of the activists, researchers, students and the public at large.  
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.
  
 +
<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>
 +
*<b><I>Choose a SaaS solution that is extendable </I></b>
 +
*<b><I>Configure SaaS and if customization is necessary extend as Open Source modules</I></b>
 +
<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 APIs so that other systems or other departments can make use of 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 been previously obtained from legacy systems.
 +
 +
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, e.g. mainframe, and the other is an innovative product, e.g. 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>
 +
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.
 +
 +
When creating a container, ensure that each container encompasses a single application and builds the smallest image possible. It is also important to ensure containers are properly versioned and tagged to be able to easily manage them.
 +
 +
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>
  
<h4><b><u>Use Software as a Service (SaaS) hosted in Public Cloud</b></u></h4>
+
*<b><I>Expose services through APIs </I></b>
* <b><I>Choose SaaS that best fit for purpose based on alignment with SaaS capabilities </b></I><br>
+
 
* <b><I>Choose a SaaS solution that is extendable </b></I><br>
+
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.
* <b><I>Configure SaaS and if customization is necessary extend as Open Source modules </b></I><br>
+
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.
 
<br>
 
<br>
  
<h4><b><u>Design for [https://www.gcpedia.gc.ca/wiki/En/GCinterop Interoperability]</b></u></h4>
+
*<b><I>Make the APIs discoverable to the appropriate stakeholders</I></b>
* <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.
 
Ensure containers are properly versioned and tagged.
 
<br><br>
 
  
* <b><I>Expose services through APIs </b></I>
+
When a system has 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).
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.
+
<br>
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.
+
<h4><b><u>Follow [https://www.devsecops.org/blog/2015/2/15/what-is-devsecops DevSecOps] Principles</u></b></h4>
<br><br>
+
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>
  
* <b><I>Make the APIs discoverable to the appropriate stakeholders</b></I><br><br>
+
<!-- COLUMN 1 STARTS: -->  
 +
{| width="100%" cellpadding="5"
  
<b><u>Follow DevSecOps Principles</b></u>
+
|- valign="top"
* <b><I>Use continuous integration and continuous deployments (CI/CD)</b></I>
+
| width="50.0%" style="border: 1px solid lightgray; background-color:#fff; color:#409DE2;" |
* <b><I>Ensure automated testing occurs for security and functionality </b></I>
+
[[Image: DevSecOps_Best_Practices_-_DZone.jpg | left|alt=]] <br><br>
* <b><I>Include your stakeholders as part of DevSecOps process</b></I>
+
<div style="font-size:1.0em; text-align:centre;"> source: Dzone</div>
 +
<!-- COLUMN 1 ENDS: -->
 +
<!-- COLUMN 2 STARTS: -->
 +
<!-- COLUMN 2 ENDS: -->  
 +
<!-- TABLE ENDS -->|}
 +
<!-- COLUMN ENDS: -->  
  
 +
*<b><I>Use continuous integration and continuous deployments (CI/CD)</I></b>
 +
*<b><I>Ensure automated testing occurs for security and functionality </I></b>
 +
*<b><I>Include your stakeholders as part of DevSecOps process</I></b>
  
<h3><span style="font-size: 1.5em;">4. Technology Architecture</span></h3> <br><br>
+
<h2><span style="font-size: 1.5em;">Technology Architecture</span></h2>  
  
 
<h4><b>Use Cloud first</b></h4>
 
<h4><b>Use Cloud first</b></h4>
* Adopt the Use of the GC Accelerators to ensure proper Security and Access Controls
+
*Adopt the use of the GC Accelerators to ensure proper security and access controls
* Enforce this order of preference: Software as a Service (SaaS) first, then Platform as a Service (PaaS), and lastly Infrastructure as a Service (IaaS)
+
*Enforce this order of preference: Software as a Service (SaaS) first, then Platform as a Service (PaaS), and lastly Infrastructure as a Service (IaaS)
* Fulfill Cloud Services through SSC Cloud Brokering Services
+
*Fulfill Cloud Services through SSC Cloud Brokering Services
 
* 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>
* Ensure response times meet user needs, and critical services are highly available
+
*Ensure response times meet user needs, and critical services are highly available
* Support zero-downtime deployments for planned and unplanned maintenance
+
*Support zero-downtime deployments for planned and unplanned maintenance
 
* Use distributed architectures, assume failure will happen, handle errors gracefully, and monitor <u><I>performance and behaviour </I></u> actively
 
* Use distributed architectures, assume failure will happen, handle errors gracefully, and monitor <u><I>performance and behaviour </I></u> actively
* 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
 +
 
 +
===Overview of the GC Enterprise Security Architecture (ESA) Program===
 +
The GC ESA program is a government-wide initiative to provide a standardized approach to developing IT security architecture, ensuring that basic security blocks are implemented across the enterprise as the infrastructure is being renewed. The image on the right shows how the GC ESA program supports the direction the GC is taking with regards to GC IT security.
 +
 
 +
The GC ESA program aims to:
 +
*Ensure more cost-effective, interoperable, resilient and secure IT solutions in support of GC enterprise objectives;
 +
*Maintain availability of GC systems and services while complying with relevant GC legislation and policy instruments;
 +
*Adopt an architecture methodology and approach to ensure common understanding, alignment, and reduce duplication of effort amongst interdepartmental stakeholders;
 +
*Ensure security of information, IT infrastructure and applications with the implementation of consistent security controls which reduces total cost of ownership; and
 +
*Keep risk at acceptable levels.
 +
The GC ESA program will serve as a guide to departments and agencies in planning, implementing, and operating their information systems by offering the necessary framework, tools, and templates to design, evaluate, and build an IT security architecture tailored to their organization, in accordance with Communications Security Establishment’s (CSE) [https://cyber.gc.ca/en/guidance/it-security-risk-management-lifecycle-approach-itsg-33 ITSG-33 – IT Security Risk Management: A Lifecycle Approach] and other security industry best practices in the area of architecture, risk management and compliance.
  
 +
More information can be found here: 
 +
*[https://www.gcpedia.gc.ca/wiki/Government_of_Canada_Enterprise_Security_Architecture_(ESA)_Program; Government of Canada Enterprise Security Architecture (ESA) Program and here:]
 +
*[https://www.gcpedia.gc.ca/gcwiki/images/a/ac/GC_ESA_Description_Document_%28ESADD%29_-_Main_Body.pdf GC ESA Description Document Main Body -- Synopsis]
 +
Additional ESA initiatives can be found by clicking on the embedded link for:
 +
*GC Cloud Reference Architecture;
 +
*[https://www.gcpedia.gc.ca/gcwiki/images/8/86/GC_Zero_Trust_Reference_Architecture.pdf DRAFT GC Zero Trust Security Reference Architecture;]
 +
*[https://www.gcpedia.gc.ca/wiki/ESA_Initiatives Many other ESA Initiatives]
  
<h3><span style="font-size: 1.5em;">5. Security and Privacy Architecture</span></h3> <br><br>
+
===GC Identity, Credential and Access Management (ICAM) ===
 +
Overview of the GC ICAM Program
  
<h4><b>Build Security into the Full System Life Cycle, Across All Architectural Layers</b></h4>
+
The Government of Canada is working towards a digital identity ecosystem for the country that will be used by all levels of government and the private sector to deliver services and issue digital identities to citizens. This means Canadians will be able to seamlessly access services anytime, anywhere and on any device.
* Identify and classify risks associated to the service’s business objectives, goals, and strategy
 
* Design security measures according to business and user needs, risks identified, and security categorization of the information and assets; integrate security across all architectural layers (BIAT)
 
** Maintain focus on users’ ease of use through selection of context-appropriate controls
 
** Apply an information-centric approach to reduce resources’ exposure to threats, and minimize the opportunity for compromise.
 
** Protect data while in transit, in use and at rest using appropriate encryption and protocols. Ensure effective disposition of data per retention schedules, following service sunset.
 
  
* Design systems to not be susceptible to common security vulnerabilities; resilient and can be rebuilt quickly in the event of compromise; and fail secure if the system encounters an error or crashes
+
Included in that work are three important initiatives:
* Reduce human intervention and maximize automation of security tasks and processes
+
*[https://www.gcpedia.gc.ca/wiki/GCpass_-_the_GC_Internal_Centralized_Authentication_Service_(ICAS) GCPass]
** Integrate and automate security testing to validate code and address vulnerabilities prior to deployments
+
*Sign-in-Canada; and
<br>
+
*[https://github.com/canada-ca/PCTF-CCP Pan-Canadian Trust Framework]
 +
<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]<br><!-- FOOTER -->
 +
{| width="100%" cellpadding="10"
 +
 
 +
|- valign="top"
 +
| style="color:#3C6D9E;" |
 +
<!-- COLUMN STARTS: -->
 +
<div style="font-size: 1.8em; text-align:center;">Need help? Contact us.</div>
 +
 
 +
<!-- COLUMN 1 STARTS: -->
 +
{| width="100%" cellpadding="5"
 +
 
 +
|- valign="top"
 +
| width="33.3%" style="border: 1px solid lightgray; background-color:#fff; color:#409DE2;" |
 +
[[Image: Envelope_icon_blue.png  |100px | center]]
 +
<div style="font-size:1.5em; text-align:center; color:white;">{{em|ZZCIOBDP@tbs-sct.gc.ca}}</div>
 +
<!-- COLUMN 1 ENDS: -->
  
<h4><b>Ensure Secure Access to Systems and Services</b></h4>
+
<!-- COLUMN 2 STARTS: -->  
* Identify and authenticate individuals, processes and/or devices to an appropriate level of assurance before granting access to information and services
+
| width="33.3%" style="border: 1px solid lightgray; background-color:#fff; color:#409DE2;" |
* Separate and compartmentalize user responsibilities and privileges; assign the least set of privileges necessary to complete the job
+
[[Image: gccollab_icon_blue.png |100px | center]]
* Constrain service interfaces to authorized entities (users and devices), with clearly defined roles, and only expose the interfaces necessary to operate the service
+
<div style="font-size:1.5em; text-align:center;">[[gccollab:groups/profile/1896301/enenterprise-architecture-community-of-practicefrcommunitu00e9-de-pratique-de-architecture-integru00e9e|GC EA CoP Collab]]</div>
* Make use of modern password guidance, and use GC-approved multi-factor authentication where required to stop unauthorized access
+
<!-- COLUMN 2 ENDS: -->  
(prioritize length over complexity, eliminating expiry, and blacklisting common passwords)
 
<br>
 
  
<h4><b>Maintain Secure Operations</b></h4>
+
<!-- COLUMN 3 STARTS: -->  
* Integrate aggregate outputs from security assessment and authorization activities into security architecture lifecycle processes, to ensure reference artefacts remain relevant and valid
+
| width="33.3%" style="border: 1px solid lightgray; background-color:#fff; color:#409DE2;" |
* Continuously monitor system events and performance in order to detect, prevent, and respond to attacks
+
[[Image: gcconnex_icon_blue.png  |100px | center]]
* Design processes to operate and manage services securely, and establish processes and mechanisms to respond effectively to security events
+
<div style="font-size:1.5em; text-align:center;">[https://gcconnex.gc.ca/groups/profile/7322003/gc-ea-working-group?language=en GC EA Connex]</div>
** Collect transaction logs at infrastructure and application levels to support automated root-cause analysis and performance tuning
+
<!-- COLUMN 3 ENDS: -->
** Include an audit function in information systems. Use a trusted time source and protect audit logs from manipulation
+
<!-- TABLE ENDS -->|}
* Establish processes to monitor security advisories, and apply security-related patches and updates to reduce exposure to vulnerabilities. Apply appropriate risk-based mitigations when patches can’t be applied
 
<br>
 
  
<h4><b> Privacy by Design </b></h4>
+
<!-- COLUMN ENDS: -->  
* Perform a privacy impact assessment (PIA) to support risk mitigation activities when personal information is involved
+
<!-- TABLE ENDS -->|}
* Implement security measures to assure the protection of personal information
+
<!-- end -->
* Take into consideration the <b>[https://www.ryerson.ca/pbdce/certification/seven-foundational-principles-of-privacy-by-design/ 7 Foundational Privacy Design Principles] </b> when designing services
 

Latest revision as of 13:02, 5 July 2022

This is a DRAFT COPY of the proposed GC EA Playbook. It is outdated, a work IN PROGRESS, and has not undergone any review.

INTRODUCTION – How to use the Playbook


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.

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 Service & Digital Target Enterprise Architecture Whitepaper (currently in draft) that will be published soon.
The Playbook is organized into chapters as per the B-I-A-T-S+P architecture layers called Plays. We recommend that users:

1. Read the Playbook all the way through first; and

2. Take an iterative approach to implementing the "Plays"
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.
Please send any comments or suggestion for future updates to | GC EA CoP Collab Site

The Plays

Where to start

When department has an idea, a problem or an issue that needs to be addressed, the main question that needs to be answered is that "Is it worth it?".

To answer this question, department has to:

1. Identify the end goal (i.e. benefits, business outcomes, alignment to strategy/mandate)

  • what is it that the department wants to achieve at the end?
  • what problem is the department trying to solve?
  • what are the benefits being realized?
  • what are the measurable business outcomes?

2. Figuring out options – if we use this solution:

  • how would it affect the outcome?
  • how would it affect the existing process?
  • how would it affect the other existing systems in the ecosystem?

3. Determine the best approach

  • would it be the best approach / solution that will fit departmental needs / strategy / mandate?
  • 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?

4. Finally: Does the outcome outweigh the expenses, aka IS IT WORTH IT?

All these questions need to be considered through the various lenses of architecture layers B-I-A-T-S+P (Business - Information - Application - Technology - Security + Privacy).

Business Architecture


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 own.

Fulfill the Government of Canada stakeholder needs

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.

Once a department identifies all of its stakeholders, it needs to map them into their roles and responsibilities as well as identify their requirements. From there, the department will need to figure out how to make it easier for the stakeholder to use the business service, which means the department needs to really drill down on the user interface design of their service. This is what digital is all about, i.e. to make it easy for users to consume the GC service.

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 optimizing efficiencies.

  • Clearly identify internal and external stakeholders and their needs for each business service including user centric design

To understand their stakeholders, it is recommended for program & project managers 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.

There are various sites where departments can visit to understand and use stakeholder analysis and stakeholder mapping. The following are examples of sites that departments can use to obtain further on stakeholder analysis or mapping:


Stakeholder analysis.jpg
source: PMI
Stakeholders power interest grid.png

source: citoolkit

Once the stakeholders have been clearly identified, the department 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. Thus, it would be the responsibilities of a project or program manager to conduct needs-based analysis. This may sound like a lot of work, 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 the departments 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.

  • Include policy requirement applying to specific stakeholder groups, such as accessibilities, gender based+ analysis, and official languages in the creation of the service

In identifying the stakeholder, the 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.

For further information on Gender Base+ Policy, please refer to Policy Direction to Modernize the GC Sex and Gender Info Practices


Stakeholder Onion Diagram.png

source: edrawsoft


Disability and web accessibility - ebsco.png

source: ebsco


Gender-based analysis plus cfc-swc.png

source: csc-swc
  • Model end-to-end business service delivery to provide quality, maximize effectiveness and optimize efficiencies across all channels (e.g. lean process)

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, the various channels with 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.

P06 Stakeholder-analysis-workflow.jpg
source: Leaderonomics

Architect to be Outcome Driven and Strategically Aligned to the Department and to the Government of Canada

The whole notion of creating a program or project is to support the 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 the mandate. Everything needs to be tied into 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 the 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 needs to plan for transitioning to use NextGen when it becomes available.


Whole Government Framework.jpg
source: GC
ISED GC Strategy alignment.jpg
source: ISED
  • Identify which departmental/GC business services, outcomes and strategies will be addressed

In order to ensure a program or project supports the 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 providing an outcome that is aligned to the departmental mandate or GC direction.

  • Establish metrics for identified business outcomes throughout the lifecycle of an investment

Another important aspect to ensure alignment to departmental mandate is establishing the metrics for the identified business outcomes. This will ensure that the department has a way to identify its efficiencies or effectiveness in delivering the business services. As technology progresses, the outcomes that were 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 the possibility of leveraging other existing services created by other departments or creating a new project or program.

  • 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

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 a program or project can deviate from its short-term goal.

Promote Horizontal Enablement of the Enterprise

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.

  • 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
  • Publish in the open reusable common business capabilities and processes (in the Open Government portal) for others to develop cohesive horizontal enterprise services

Information Architecture


Collect data to address the needs of the stakeholders

  • Assess data requirements based on stakeholder needs
    • Prior to collecting new data, an assessment of existing data assets (e.g. in a data inventory, database, internal data catalog, or other repository) and how they might address stakeholder needs is recommended.
    • Data requirements are informational gaps identified in the process of responding a stakeholder need. If it is not met, a data requirement may pose a barrier to informed decision-making, operational needs, or the delivery of a service to a citizen or business.
    • A stakeholder in this context is an internal or external client or provider involved in a policy, program, or service that originates in the Government of Canada.
    • It will not always be clear whether a data asset meets the need of a stakeholder. A clear understanding and articulation of the business problem (e.g. purpose, objectives or expected outcomes, outputs, etc.) will facilitate this exercise.
  • Collect only the minimum set of data needed to support a policy, program and service
    • This procedure can be summarized as 'collect with a purpose'. Rather than determining your data needs post-hoc – following data collection, that is – it is recommended that data needs are specified in the process of designing the data collection methodology.
    • The 'minimum set of data' will vary by data type and business problem. For example, it may be easier to identify the minimum 'threshold' at which collected data will be sufficient to support the administration or delivery of a service. But in a foreign policy context, that threshold may not be clear: what is the minimum set of data needed to support the elaboration of Canada's Feminist International Assistance Policy? In such contexts, the only feasible approach may be to identify what is necessary (as opposed to what is sufficient) to meet the stakeholder need.
    • In a program context, data needs may be derived from Performance Information Profiles (PIPs), which include key performance indicators (KPIs) which help program managers assess progress towards targets and broader objectives.
  • Reuse existing data assets and only acquire new data if required
    • Following the assessment of existing data assets recommended under the first step, evaluate the reusability of the data deemed relevant to address the stakeholder need. This involves assessing basic aspects of its quality in light of that need. For example, a dataset that may have been timely in the context of its initial usage may be outdated in the new context.
    • In addition to quality, privacy and security are important considerations to take into account when evaluating the reusability of a data asset. Not all data is reusable. The reuse of personal information, for example, is restricted under the requirements of the Privacy Act. Further, in some cases, the reuse of data may pose security risks to an organization or to the Government of Canada at large. A risk assessment based on criteria informed by the current policy and legislative environment is recommended to mitigate the risks of data reuse.
  • Ensure data collected, including from third party sources, are of high quality
    • Unless data collected (whether by a federal organization or through a third party) or generated meets basic standards of quality, it is not fit for purpose.
    • There are various governmental and international approaches to assessing the quality of data. Common dimensions or aspects of quality include relevance, timeliness, consistency, reliability, interpretability, and usability. Specific considerations may be warranted for certain types of data (e.g. geospatial data). The development of a departmental data quality framework to help assess and control the quality of data is recommended. An enterprise-level framework for the Government of Canada, which all federal organizations will be able to adopt, is currently under development.
    • A routine process for profiling newly collected or generated data could help maintain the overall quality of data assets. Quality management and assurance, however, is an activity that applies throughout the lifecycle of data – from the point it is collected or generated to that at which it is disposed. Ensuring that data quality is regularly assessed and maintained is among the key responsibilities of a data steward.

Manage data strategically and responsibly

Section under development (ESP/Bitar)

Use and share data openly in an ethical and secure manner

Section under development (ESP/Bitar)

Application Architecture

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.

Use Open Source Solutions hosted in Public Cloud

While an 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 to or more secure than proprietary solutions. A misconception with support is that a support contract or license somehow 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 than in proprietary software by the very nature of crowd sourcing reducing the barrier of communication with a single entity or individual.

For more info on Open Source, go to the GC webpage on Open Source Software.

  • Select existing solutions that can be reused over custom built

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.

  • Contribute all improvements back to the communities

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.

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.

Scientific Innovation can occur from exposing data to interested members of the activists, researchers, students and the public at large. Define Metadata for your application early in both English and French to support your release to Open Data. Development following the Government of Canada Standards on APIs can allow rapid uptake into Open Data feeds.

Use Software as a Service (SaaS) hosted in Public Cloud

  • Choose SaaS that best fit for purpose based on alignment with SaaS capabilities
  • Choose a SaaS solution that is extendable
  • Configure SaaS and if customization is necessary extend as Open Source modules

Design for Interoperability

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 APIs so that other systems or other departments can make use of 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 been previously obtained from legacy systems.

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, e.g. mainframe, and the other is an innovative product, e.g. 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.

  • Design systems as highly modular and loosely coupled services

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.

When creating a container, ensure that each container encompasses a single application and builds the smallest image possible. It is also important to ensure containers are properly versioned and tagged to be able to easily manage them.

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.

  • Expose services through APIs

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. Ensure that services are accessible via common methodologies and follow the Government of Canada Standards on APIs.

  • Make the APIs discoverable to the appropriate stakeholders

When a system has 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 API Store and the future DxP (Digital Exchange Platform).

Follow DevSecOps Principles

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.



source: Dzone
  • Use continuous integration and continuous deployments (CI/CD)
  • Ensure automated testing occurs for security and functionality
  • Include your stakeholders as part of DevSecOps process

Technology Architecture

Use Cloud first

  • Adopt the use of the GC Accelerators to ensure proper security and access controls
  • Enforce this order of preference: Software as a Service (SaaS) first, then Platform as a Service (PaaS), and lastly Infrastructure as a Service (IaaS)
  • Fulfill Cloud Services through SSC Cloud Brokering Services
  • 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 Performance, Availability, and Scalability

  • Ensure response times meet user needs, and critical services are highly available
  • Support zero-downtime deployments for planned and unplanned maintenance
  • Use distributed architectures, assume failure will happen, handle errors gracefully, and monitor performance and behaviour actively
  • 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

Security Architecture

Input from Cyber, Sept 23, 2020

Overview of the GC Enterprise Security Architecture (ESA) Program

The GC ESA program is a government-wide initiative to provide a standardized approach to developing IT security architecture, ensuring that basic security blocks are implemented across the enterprise as the infrastructure is being renewed. The image on the right shows how the GC ESA program supports the direction the GC is taking with regards to GC IT security.

The GC ESA program aims to:

  • Ensure more cost-effective, interoperable, resilient and secure IT solutions in support of GC enterprise objectives;
  • Maintain availability of GC systems and services while complying with relevant GC legislation and policy instruments;
  • Adopt an architecture methodology and approach to ensure common understanding, alignment, and reduce duplication of effort amongst interdepartmental stakeholders;
  • Ensure security of information, IT infrastructure and applications with the implementation of consistent security controls which reduces total cost of ownership; and
  • Keep risk at acceptable levels.

The GC ESA program will serve as a guide to departments and agencies in planning, implementing, and operating their information systems by offering the necessary framework, tools, and templates to design, evaluate, and build an IT security architecture tailored to their organization, in accordance with Communications Security Establishment’s (CSE) ITSG-33 – IT Security Risk Management: A Lifecycle Approach and other security industry best practices in the area of architecture, risk management and compliance.

More information can be found here: 

Additional ESA initiatives can be found by clicking on the embedded link for:

GC Identity, Credential and Access Management (ICAM)

Overview of the GC ICAM Program

The Government of Canada is working towards a digital identity ecosystem for the country that will be used by all levels of government and the private sector to deliver services and issue digital identities to citizens. This means Canadians will be able to seamlessly access services anytime, anywhere and on any device.

Included in that work are three important initiatives:


GC Digital Identity ICAM Reference Architecture

Guideline on Identity Assurance

Need help? Contact us.
Envelope icon blue.png
Gccollab icon blue.png
Gcconnex icon blue.png