public StakeholderEngagement(Level[] levels)
 {
     Level level1 = levels[0];
     Level level2 = levels[1];
     Level level3 = levels[2];
     se = new Area
     {
         GUID = Guid.NewGuid(),
         Name = "Engagement Strength",
         Description = "todo",
         SubAreas = new List<SubArea> {
                 new SubArea{ GUID=Guid.NewGuid(), Code="RM", Name="Relationship Management", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="RM.1.1", Description="Team knows the onsite team counterparts in person and maintains a good social engagement over social media.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="RM.1.2", Description="A representative (external to the team) keeps contact with the product owner at least once a month to get a pulse of the project delivery.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="RM.2.1", Description="Distributed teams physically meet each other at least yearly.", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="RM.2.2", Description="Team get engaged in proposing/discussing potential business strategies, feature implementations, technology enhancements, etc. outside the given work scope.", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="RM.3.1", Description="Mechanisms are in place to provide direct feedback to other co-teams from the local team at least quarterly.", Level = level3},
                         new Practice{ GUID=Guid.NewGuid(), Code="RM.3.2", Description="Team maintains either an average of customer satisfaction > 85% or a rating better than the last 2 appraisals.", Level = level3}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="PA", Name="Product Assistance", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.1.1", Description="All team members are able to explain the technical details of the complete release cycle of the product (from code commits to end-user delivery).", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.1.2", Description="Team takes part in launching procedures of the new market releases and participates in celebrations with the onsite counterparts.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.2.1", Description="Team is aware of the competitive products in the market and comparative strengths/weaknesses.", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.3.1", Description="Team is supportive in preparing and distributing product marketing material such as promotional videos, social media posts, etc.", Level = level3},
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.3.2", Description="Team contributes to the technical goodwill of the ISV through relevant industrial activities such as maintaining a team blog, contributing to open source, etc.", Level = level3}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="SI", Name="Service Introduction", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="SI.1.1", Description="Product owners and onsite decision makers are aware of the value added service portfolio offered by 99X Technology.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="SI.2.1", Description="Team keeps continuous dialogues with specialized service teams to identify possible value additions to the product.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="SI.2.2", Description="Proof of concept work is done to identify applicability of at least two additional services.", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="SI.3.1", Description="Apart from core services team has utilized 3 or more additional services from 99X Technology in the project.", Level = level3},
                     }
                 },
                new SubArea{ GUID=Guid.NewGuid(), Code="OS", Name="Organizational Sharing", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="OS.1.1", Description="Takes part in interest groups that uses similar technologies. Assist other teams with technology expertise and reviews.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="OS.1.2", Description="Contribute with knowledge sharing posts in company social media such as blogs, yammer, etc.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="OS.2.1", Description="Conduct at least 1 techtalk per quarter within the company covering something that the team can share from the project.", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="OS.3.1", Description="Contribute with knowledge articles in company wiki, preferably on organizational specific procedures and practices.", Level = level3},
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="CS", Name="Community Sharing", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="CS.1.1", Description="All team members actively maintain their  linkedIn profiles with more than 90% completion.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="CS.1.2", Description="Each member maintains a blog with activities available during the period of  last 3 months.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="CS.2.1", Description="Team members should be active in tech/business forums with a reasonable reputation.", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="CS.2.2", Description="Team members have contributed as resource personnel in university activities and/or CSR activities during the last quarter.", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="CS.3.1", Description="Some team members maintain side projects as personal open source contributions to the industry. ", Level = level3},
                         new Practice{ GUID=Guid.NewGuid(), Code="CS.3.2", Description="Team members have participated in industrial sessions, meetups, seminars, etc. as speakers during the last 6 months.", Level = level3}
                     }
                 },
             }
     };
 }
 public BusinessFocus(Level[] levels)
 {
     Level level1 = levels[0];
     Level level2 = levels[1];
     Level level3 = levels[2];
     bf = new Area
     {
         GUID = Guid.NewGuid(),
         Name = "Businesss Focus",
         Description = "todo",
         SubAreas = new List<SubArea> {
                 new SubArea{ GUID=Guid.NewGuid(), Code="PA", Name="Persona Awareness", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.1.1", Description="Team has identified different personas of end users and such information is explicitly declared and validated with the PO.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.1.2", Description="Every team member should be able to do a product/module elevator pitch explaining USP and UVP.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.2.1", Description="Team is aware of the details of at least few real users who are using the system to have an idea of real user lifestyle.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.2.2", Description="New features are prioritized based on the applicability and importance to the personas. Methods such as MoSCoW are used to ensure prioritization of feature requests.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.3.1", Description="Important stakeholders (not users) are known and categorized based on their “power” and “interest” levels (e.g. power-interest grid).", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.3.2", Description="Actions are taken to satisfy the needs of different stakeholders of the project.", Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="HI", Name="Hypothesis Invalidation", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="HI.1.1", Description="Team is equipped with a wireframing/prototyping tool. Prototypes can be shared, modified and discussed easily in a group context (preferably including end users).", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="HI.2.1", Description="Assumptions upon the major feature success depends are identified. Implementation plan is made to test these hypotheses through progressive MVPs.", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="HI.3.1", Description="Important features will be accompanied with the expected usage estimations. Methods for measuring feature usage/effectiveness are a part of the feature spec itself.", Level = level3},
                         new Practice{ GUID=Guid.NewGuid(), Code="HI.3.2", Description="Team is able to perform split tests, feature fakes, etc. to gain better insight in to real user preferences through statistical means. ", Level = level3}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="FD", Name="Feature Delivery", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="FD.1.1", Description="Team is aware of the coming up release milestones and rough estimations are in place indicating the viable feature scopes.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="FD.1.2", Description="Demonstrations to the stakeholders are carried out in a systematic manner with the records of the demo available.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="FD.2.1", Description="Deployment to staging is done at every iteration and demonstrations are carried out only through staging environments.", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="FD.3.1", Description="Production deployments are repeatedly done (in an agreed interval) to keep the platform up to date, even if there is no market demand for new feature releases.", Level = level3},
                         new Practice{ GUID=Guid.NewGuid(), Code="FD.3.2", Description="Releases are decoupled from deployments. Features can be dark launched using feature toggles.", Level = level3},
                         new Practice{ GUID=Guid.NewGuid(), Code="FD.3.3", Description="Team is able to measure the delivery effectiveness of an iteration in comparison with other iterations.", Level = level3}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="OA", Name="Operational Analytics", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="OA.1.1", Description="Product is equipped with a tracking tool which can analyze not just page access, but also the process flow actions of the user.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="OA.1.2", Description="Public facing web interfaces should be accompanied with a broad visitor analysis tool which can capture visitor details such as demography, browser, language, etc.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="OA.2.1", Description="User process flow information are analyzed to optimize the business process funnels for improved usability. Evidences of such improvements are available.", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="OA.3.1", Description="All major screens of the application has a click tracking tool integrated, generating heat maps and other relevant reports. Usability is improved based on such feedback.", Level = level3}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="UE", Name="User Experience", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="UE.1.1", Description="All major prototypes (wireframes) and peer tested preferably by team members, members from other teams, etc.", Level = level1},                                
                         new Practice{ GUID=Guid.NewGuid(), Code="UE.2.1", Description="Performance of the application is statistically analyzed to identify the critical path and actions are taken to maximize the user perception of speed.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="UE.3.1", Description="Application is usability tested with real users and behaviour is recorded for further analysis. Improvements are identified and added as backlog items.", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="UE.3.2", Description="All major screens are rated for usability on different user experience aspects and the improvement plan is maintained.", Level = level3 }
                   }
                 },
             }
     };
 }
 public TeamBuilding(Level[] levels)
 {
     Level level1 = levels[0];
     Level level2 = levels[1];
     Level level3 = levels[2];
     tb = new Area
     {
         GUID = Guid.NewGuid(),
         Name = "Team Building",
         Description = "todo",
         SubAreas = new List<SubArea> {
                 new SubArea{ GUID=Guid.NewGuid(), Code="MB", Name="Model Bootstrap", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="MB.1.1", Description="Team should have a clear understanding of the SPEG model and should be able to demonstrate this.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="MB.1.2", Description="Team should have a activity backlog (a roadmap) with specific tasks demonstrating how it plans to progress through the SPEC model.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="MB.1.3", Description="Team should produce evidence that meetings has happened in every iteration to monitor the progress of the SPEC backlog.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="MB.1.4", Description="Team should produce evidence to support their claims for completed tasks in order to be certified under a particular practice.", Level = level1 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="TC", Name="Team Culture", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="TC.1.1", Description="Team has a plan to ensure newcomers to the team are absorbed to their team culture successfully with a high positive note.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="TC.1.2", Description="Team has carried out explicit activities to improve peer bonding of the team continuously", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="TC.2.1", Description="Internal team satisfaction survey is conducted quarterly and results are discussed within the team to take improvement actions.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="TC.2.2", Description="All team members are aware of cross cultural aspects. Members are able the explain the means of neutralizing such differences in a distributed work environment.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="TC.3.1", Description="Members are aware of travel information to the counterpart countries. They possess reasonable knowledge of social practices in conversations, dining, clothing, etc.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="TC.3.2", Description="Team is knowledgeable of the important information such as history, geology, politics, sports, etc. of the counterpart countries.", Level = level1 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="BO", Name="Blue Oceans", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="BO.1.1", Description="Individuals have explicitly identified one or many project-domain (technology or business) focus areas for the coming year.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="BO.1.2", Description="Team is aware of the project-domain blue oceans selected by the peers and related activities performed by them recently.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="BO.2.1", Description="Individuals have quarterly goals defined on the project-domain blue oceans and have progressed through the plan accordingly.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="BO.3.1", Description="Project members has selected a industry-domain blue ocean for the coming year and his/her related contributions are clearly visible during last quarter. ", Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="PF", Name="Peer Feedback", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="PF.1.1", Description="Team conducts retrospectives where team members provide feedback on the iteration progress. Identified improvements are actioned upon and reviewed.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="PF.2.1", Description="Team conducts offline surveys/assessments (possibly anonymous) where every member would provide feedback to others in the team at least quarterly. ", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="PF.3.1", Description="Team conducts one-on-one peer feedback sessions where each member suggesting at least 2 improvement areas for the other at least quarterly.", Level = level3}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="CL", Name="Continuous Learning", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="CL.1.1", Description="Team should maintain a training backlog/improvement plan for the members and be in sync with the organizational training department.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="CL.1.2", Description="Establish mechanisms to share domain and technical knowledge within the team continuously.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="CL.2.1", Description="Team should have a knowledge base preferably in the form of a wiki with live documentation maintained in it.", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="CL.2.2", Description="Team should establish mechanisms to continuously acquire domain knowledge from the onsite counterparts.", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="CL.2.3", Description="Information regarding day-today activities of the team is continuously shared across everyone in the distributed team in real-time. ", Level = level2}
                     }
                 },
             }
     };
 }
 public BusinessFocusNew(Level[] levels)
 {
     Level level1 = levels[0];
     Level level2 = levels[1];
     Level level3 = levels[2];
     bf = new Area
     {
         GUID = Guid.NewGuid(),
         Name = "Businesss Focus",
         Description = "todo",
         SubAreas = new List<SubArea> {
                 new SubArea{ GUID=Guid.NewGuid(), Code="PA", Name="Persona Awareness", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.1.1", Description="The team has a plan to identify the different personas of the end user and such information is explicitly defined.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.1.2", Description="Team carry out discussions with the product owner to validate identified personas every 6 months.",Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.2.1", Description="New features are prioritized based on the applicability to the personas.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.3.1", Description="TStakeholders are categorized based on their “power” and “interest” levels over the system being developed (power-interest grid).", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.3.2", Description="Actions are taken to satisfy the needs of stakeholders in different grid quadrants.", Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="HI", Name="Hypothesis Invalidation", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="HI.1.1", Description="Team is equipped with a wireframing/prototyping tool and the prototypes can be shared, modified and discussed easily in a group context (preferably including end users).", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="HI.3.1", Description="In major feature (epic) implementations, assumptions upon the feature success is based on are identified and prioritized as per the risk of failure. Development plan is made to test these hypotheses through progressive MVPs.", Level = level3},
                         new Practice{ GUID=Guid.NewGuid(), Code="HI.3.2", Description="Team is able to perform split tests, feature fakes to gain insight in to real preferences of users in statistical means. ", Level = level3}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="FD", Name="Feature Delivery", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="FD.1.1", Description="Team is aware of the total identified epic backlog and is analyzed depending on the importance (preferably using a method such as MoSCoW analysis)", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="FD.1.2", Description="Team is aware of the next market release milestone and rough estimations are in place indicating the viable feature scope.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="FD.2.1", Description="Staging deployments are done after every iteration and demonstrations are carried out only through the staging environment.", Level = level2},
                         new Practice{ GUID=Guid.NewGuid(), Code="FD.3.1", Description="Team is able to deliver to production every quarter minimally. Production releases are repeatedly done (in an agreed interval) to keep the platform up to date, even if there is no demand for new features.", Level = level3},
                         new Practice{ GUID=Guid.NewGuid(), Code="FD.3.1", Description="Releases are decoupled from deployments. Features can be dark launched using feature toggles.", Level = level3}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="OA", Name="Operational Analytics", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="OA.1.1", Description="Product is equipped with a tracking tool that can analyze not just page access, but also the process flow of the user. This information should be analyzed to optimize the business process funnels.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="OA.1.2", Description="Public facing web interfaces should be tracked with a broad visitor analysis tool that lets identifying demography, browser, language, etc.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="OA.2.1", Description="All major screens of the application has a click tracking tool integrated, which can generate a heat maps. Usability of the application is improved based on the feedback of such maps.", Level = level2}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="UE", Name="User Experience", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="UE.1.1", Description="All major prototypes (wireframes) received by the designers are peer tested preferably by members from other teams.",Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="UE.2.1", Description="All major prototypes (wireframes) received by the designers are peer tested preferably by members from other teams.",Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="UE.2.2", Description="Performance of the application is statistically analyzed through critical path analysis and actions are taken to maximize the rendering speed.",Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="UE.3.1", Description="Application is usability tested with real users and behaviour is recorded for further analysis. Improvements are identified and added as backlog items.",Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="UE.3.2", Description="All major screens are rated for usability on different user experience aspects and actions are taken to improve the usability  through an improvement plan.",Level = level3 }                             
                     }
                 },
             }
     };
 }
 public BusinessFocus(Level[] levels)
 {
     Level level1 = levels[0];
     Level level2 = levels[1];
     Level level3 = levels[2];
     bf = new Area
     {
         GUID = Guid.NewGuid(),
         Name = "Businesss Focus",
         Description = "todo",
         SubAreas = new List<SubArea> {
                 new SubArea{ GUID=Guid.NewGuid(), Code="PA", Name="Persona Awareness", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.1.1", Description="The team has a plan to identify the different personas of the end user.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.2.1", Description=" The team has a plan to implement the ideas gathered", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.2.2", Description=" The team has a feedback mechanism on the different usage patterns", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.3.1", Description="The team has a plan to incorporate the different feedback received", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.3.2", Description="The team has incorporated this loop into the day to day planning and product roadmap", Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="HV", Name="Hypothesis Validation", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="HV.1.1", Description="desc11", Level = level1}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="FM", Name="Feature Measures", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="FM.1.1", Description="desc11", Level = level1}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="MR", Name="Micro Releases", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="MR.1.1", Description="desc11", Level = level1}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="UT", Name="Usability Testing", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="UT.1.1", Description="No(or less) focus on Usability (Product Engineering with no usability testing. Focus is mainly towards the system centric assuming users of the product are dumb (or user same as us)).", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="UT.1.2", Description=" Usage of Stereotypes, prototypes are used to validate the concerns", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="UT.2.1", Description="User Analysis & Profiling (The mindset that Product will be used by users (who do not necessarily same as us) and list the users of the Product and their characteristics) Analysis on actual users, Creating user profiles, Choosing user profiles for testing", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="UT.2.2", Description=" Selecting the testing scenarios (What to be tested) Choosing the testing purpose(s), Determining the objective(s), Choosing the type of test(s), Selecting the Task(s) based on cost/complexity/Priority, Test scenario/Time Matrix", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="UT.3.1", Description=" Test Preparation:Choosing the testing order, Listing the required testing materials, Have a team comprising actual users, Preparing test plans & environments.", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="UT.3.2", Description="Conducting the test Observe and record the test results", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="UT.3.3", Description="Analyze the test data Collect data into findings, Analyse(determine cause, severity & changes to the product), Report the findings", Level = level3 },
                     }
                 },
             }
     };
 }
 public TeamBuilding(Level[] levels)
 {
     Level level1 = levels[0];
     Level level2 = levels[1];
     Level level3 = levels[2];
     tb = new Area
     {
         GUID = Guid.NewGuid(),
         Name = "Team Building",
         Description = "todo",
         SubAreas = new List<SubArea> {
                 new SubArea{ GUID=Guid.NewGuid(), Code="MB", Name="Model Bootstrap", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="MB.1.1", Description=" Team should have a clear understanding of the SPEG model", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="MB.1.2", Description=" Team should have a detail Activity backlog (Team Road map) with specific tasks created ", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="MB.1.3", Description=" Team should have a weekley meeting to show to progress of the backlog ", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="MB.1.4", Description=" Team should have clearly marked the completed tasks with evidence", Level = level1 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="TC", Name="Team Culture", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="TC.1.1", Description="Team has a plan to ensure newcomers to the team are absorbed to their team culture successfully ", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="TC.1.2", Description="Regular team culture improvement activities are carried out within team", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="TC.1.3", Description=" Team member birthdays are celebrated within the team", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="TC.1.4", Description=") Every achievement of team members(no matter how big or small) are celebrated by the team", Level = level1 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="BO", Name="Blue Oceans", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="BO.1.1", Description=" Individuals have explicitly identified his/her blue ocean for the coming year ", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="BO.1.2", Description="Team is aware of the blue oceans selected by the peers", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="BO.2.1", Description="Individuals have quarterly goals defined", Level = level2 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="PF", Name="Peer Feedback", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="PF.1.1", Description="desc11", Level = level1}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="CL", Name="Continuous Learning", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="CL.1.1", Description="desc11", Level = level1}
                     }
                 },
             }
     };
 }
 public StakeholderEngagement(Level[] levels)
 {
     Level level1 = levels[0];
     Level level2 = levels[1];
     Level level3 = levels[2];
     se = new Area
     {
         GUID = Guid.NewGuid(),
         Name = "Stakeholder Engagement",
         Description = "todo",
         SubAreas = new List<SubArea> {
                 new SubArea{ GUID=Guid.NewGuid(), Code="CS", Name="Community Sharing", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="CS.1.1", Description="desc11", Level = level1}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="PA", Name="Product Assistance", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="PA.1.1", Description="desc11", Level = level1}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="RM", Name="Relationship Management", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="RM.1.1", Description="desc11", Level = level1}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="SI", Name="Service Introduction", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="SI.1.1", Description="desc11", Level = level1}
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="OS", Name="Organizational Sharing", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="OS.1.1", Description="desc11", Level = level1}
                     }
                 },
             }
     };
 }
 public EngineeringDiscipline(Level[] levels) {
     Level level1 = levels[0];
     Level level2 = levels[1];
     Level level3 = levels[2];
     ed = new Area
     {
         GUID = Guid.NewGuid(),
         Name = "Engineering Discipline",
         Description = "todo",
         SubAreas = new List<SubArea> {
                 new SubArea{ GUID=Guid.NewGuid(), Code="VQ", Name="Visible Quality", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.1.1", Description="A unit testing framework is integrated to the solution. Team has the ability of test execution at least upon build time.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.1.2", Description="Code quality is analyzed automatically at the development environment (IDE). A common ruleset used for analysis is shared across the team members.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.1.3", Description="Team understands the test-pyramid roles played by different test types . Tooling and infrastructure for the same is agreed and is being built.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.2.1", Description="Critical areas of the system are covered with unit, integration and functional tests as applicable. ", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.2.2", Description="Continuous Integration is in place and tests are automatically executed upon builds. Commits are stopped if a test/build is broken, until fixed.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.2.3", Description="Central code quality analysis tool is integrated to monitor continuously. Overall quality indicators follow upward trend during current quarter.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.3.1", Description="Team is aware and practices of TDD in developing new code modules. All new code written is testable with proper dependency handling techniques.", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.3.2", Description="Acceptance tests for new features are automated and maintained as a regression test suite. Coverage levels are incrementing over time.", Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="AD", Name="Agility in Design", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.1.1", Description="Refactoring and standardization (generalization) needs are identified (preferably through automation). A backlog for managing technical debt is maintained by the team.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.1.2", Description="System design is modular where changes in one module is minimally impacting others. Team members are able to explain the modularity of the system at different levels.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.1.3", Description="Contexts in which the product may operate are identified. Designs are in place to meet required compatibility needs (form-factors, devices, browsers, etc.).", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.2.1", Description="All third-party libraries are continuously kept upgraded such that dependencies would not make the product legacy at any point of the time. ", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.2.2", Description="Non-functional requirements for cross cutting architectural aspects (security, globalization, etc.) are identified and maintained in a form of a backlog. ", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.3.1", Description="The team is in favor of deferred decisions uses delaying techniques such as abstractions. A log of deferred decisions is maintained and actioned appropriately.", Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="PS", Name="Production Stability", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.1.1", Description="Product should have the performance criteria defined for critical use cases. Testing performed should verify the adherence.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.1.2", Description="Security architecture of the product is explicitly defined and validated against possible threats.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.2.1", Description="Team is aware of scalability limits of the production system. Average load of the production environment is being monitored continuously.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.2.2", Description="Periodic performance assessments are scheduled and practiced on the staging/production environment. Actions are taken on the issues identified.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.2.3", Description="Periodic security assessments are scheduled and practiced on the production/staging environment. Actions are taken on the vulnerabilities found.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.3.1", Description="Critical components of the production system are covered with health monitoring techniques. Notifications are raised upon anomalies.", Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="SP", Name="Software Productization", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.1.1", Description="Product has the capabilities of catering to globalization needs (language, currency, date/time, numbers, etc.).", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.1.2", Description="Look and feel (theming) of the product is cleanly decoupled from the structure of the user interface and can be configured as needed.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.1.3", Description="User interface is decomposed into components and strategies to handle actions (buttons, toolbars, menus), notifications, progression, error-handling, navigation, etc. are in place.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.1.4", Description="Product is capable of exposing services for integration. API layer is clearly identified and exposed business entities are modeled according to the best practices.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.2.1", Description="Strategy for multi-tenancy is clearly identified and necessary isolation means are in place.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.2.2", Description="The designs for billing and licensing features of the product are available and reporting/accounting required for such are in place.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.2.3", Description="Product is made modular such that it is possible to configure different editions catering different market needs if required.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.3.1", Description="Features required for presale needs such as demo versions, trial periods, etc. are considered and implemented as necessary.", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.3.1", Description="Service APIs are versioned and strategy is in place for maintaining the service API.", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.3.1", Description="Product is designed to have extensibility through the means of plugins, configurations, etc.", Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="DA", Name="Delivery Automation", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.1.1", Description="Any code change may trigger a build, and any successful build can be deployed to staging automatically. ", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.1.2", Description="Data migrations are performed automatically as a part of release process.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.2.1", Description="All code is integrated daily and all artifacts required to compile a release are version controlled together with code.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.2.2", Description="Any change to CSM artifacts should be linked to a task for traceability purposes.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.2.3", Description="Delivery pipeline is orchestrated. Releases are repeatable and has the ability to rollback.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.3.1", Description="Development, staging, production environments can be automatically provisioned. All artifacts, configurations required are version controlled.", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.3.2", Description="Acceptance test results, release notes and audit trails are automatically generated.", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.3.3", Description="Database versioning/upgrading is decoupled from code versioning. Database migrations lead the code deployments in staging as well as in production.", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.3.4", Description="Team has the ability to push a release to production on demand, with just a 3 day notice.", Level = level3 }
                     }
                 },
             }
     };
 }
 public EngineeringDiscipline(Level[] levels) {
     Level level1 = levels[0];
     Level level2 = levels[1];
     Level level3 = levels[2];
     ed = new Area
     {
         GUID = Guid.NewGuid(),
         Name = "Engineering Discipline",
         Description = "todo",
         SubAreas = new List<SubArea> {
                 new SubArea{ GUID=Guid.NewGuid(), Code="VQ", Name="Visible Quality", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.1.1", Description="An unit testing framework is integrated to the solution and ability of the test execution upon project build time", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.1.2", Description="Code quality is analyzed automatically and results are made available to the team members.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.1.3", Description="Team has a plan to implement a ‘test pyramid’ with different test types. Tooling and infrastructure for the same is agreed and being built.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.1.4", Description="Team should have a knowledge base built in a wiki with proper documentation", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.2.1", Description="Critical areas of the system are covered with unit, performance, integration and security tests. Tests are automatically executed and pipeline is stopped if broken", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.2.2", Description="Team is aware of TDD and practicing the same whenever applicable. All new code modules developed are testable.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.3.1", Description="Acceptance tests for new features are automated", Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="AD", Name="Agility in Design", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.1.1", Description="A backlog for technical debt management is existing.  Refactoring needs are identified in planning meetings and added to the backlog", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.1.2", Description="Code module complexity is automatically analyzed and steps are taken to refactor the high complexity modules", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.1.3", Description=" System design is modular where changes in one module is minimally impacting others. All team members are knowledgeable to explain the modularity of the system.(DI)", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.1.4", Description="Team is acknowledged about the best suited design patterns used for the solution.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.2.1", Description="desc21", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.3.1", Description="desc31", Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="PS", Name="Production Stability", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.1.1", Description="Team is aware of scalability limits of the production system. Average load of the production environment is being monitored continuously.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.1.2", Description="Periodic security/performance assessments are scheduled and practiced on the production environment. Actions are taken on the vulnerabilities found.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.2.1", Description=" Critical components of the production system are covered with system monitoring and notifications are raised upon anomalies.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.3.1", Description="desc31", Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="SP", Name="Software Productization", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.1.1", Description=" The designs for billing and licensing features of the product are available and reporting required for such is in place", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.2.1", Description=" Look and feel of the product is configurable. Depending on the needs theming, white-labeling features are availabl", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.2.2", Description="Product is made modular such that it is possible to configure different editions catering different market needs.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.2.3", Description="desc23", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.3.1", Description="desc31", Level = level3 },
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="DA", Name="Delivery Automation", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.1.1", Description=" Any code changes should trigger a build, and any successful build can be deployed to staging automatically. Releases are repeatable.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.1.2", Description=" Database changes and migrations are performed automatically as a part of release process", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.2.1", Description=" All code is integrated daily and artifacts required to create a deployment are version control together with code", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.2.2", Description=" Delivery pipeline is orchestrated. Ability to rollback releases, components versioned separately,", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.3.1", Description=" Deployment/development environments are automatically provisioned. All artifacts, configurations required to provision environments are version controlled.", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.3.2", Description=" Features can be dark launched, AB tested and effectiveness can be statistically decided", Level = level3 },
                     }
                 },
             }
     };
 }
 public EngineeringDisciplineNew(Level[] levels) {
     Level level1 = levels[0];
     Level level2 = levels[1];
     Level level3 = levels[2];
     ed = new Area
     {
         GUID = Guid.NewGuid(),
         Name = "Engineering Discipline",
         Description = "todo",
         SubAreas = new List<SubArea> {
                 new SubArea{ GUID=Guid.NewGuid(), Code="VQ", Name="Visible Quality", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.1.1", Description="An unit testing framework is integrated to the solution and ability of the test execution upon project build time", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.1.2", Description="Code quality is analyzed automatically and results are made available to the developer. Ruleset used for analysis is shared across the team members.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.1.3", Description="Team has a plan to implement a ‘test pyramid’ with different test types. Tooling and infrastructure for the same is agreed and being built.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.1.4", Description="Team should have a knowledge base preferably in the form of a wiki with live documentation in it.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.1.5", Description="Pre - major release non functional test execution and  results made available to the team", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.2.1", Description="Critical areas of the system are covered with unit, integration and UI tests as applicable. Team has defined the acceptable coverage levels and ensures increment over time.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.2.2", Description="Continuous Integration is in place and tests are automatically executed upon builds. Production line is stopped if a test is broken, until it’s fixed.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.2.3", Description="Integrated code analysis (inspection) tool kit to monitor the code quality centrally", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.3.1", Description="Team is aware of TDD and practicing in writing new code modules. All new code written is testable with pragmatic dependency handling techniques.", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.3.2", Description="Acceptance tests for new features are automated and maintained as a regression test suite. ",Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="VQ.3.3", Description="Code quality analysis framework integrated with the CI (For automated documentation)",Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="AD", Name="Agility in Design", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.1.1", Description="A backlog for technical debt management is existing.  Refactoring needs are identified through automation and added to the backlog", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.1.2", Description="System design is modular where changes in one module is minimally impacting others. Team members are able to explain the modularity of the system at different levels.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.1.3", Description="Team has identified different contexts in which the product may operate and plans to meet required compatibility needs.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.1.4", Description="Team is acknowledged about the best suited design patterns used for the solution.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.2.1", Description="Product has the capability to support different form factors (devices/browsers) and required boilerplate code is in place.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.2.2", Description="Architecture is evolved over time and such design refactoring needs (generalizing the specialized feature designs) are identified and treated regularly.", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.3.1", Description="All third-party libraries are continuously kept upgraded such that dependencies would not make the product legacy at any point of the time. Proper use of a package manager can be demonstrated whenever applicable.",Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="AD.3.2", Description="The team is in favor of deferred decisions uses delaying techniques such as abstractions. A log of deferred decisions is maintained and visited frequently to see if the ‘last responsible moment’ is reached in any of the items.",Level = level3 },
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="PS", Name="Production Stability", 
                     Practices= new List<Practice> {
                         //1.1 was not defined below are the old ones
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.1.1", Description="Team is aware of scalability limits of the production system. Average load of the production environment is being monitored continuously.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.1.2", Description="Periodic security/performance assessments are scheduled and practiced on the production environment. Actions are taken on the vulnerabilities found.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.2.1", Description="Team is aware of scalability limits of the production system. Average load of the production environment is being monitored continuously.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.2.2", Description="Periodic performance assessments are scheduled and practiced on the production environment.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.2.3", Description="Periodic security assessments are scheduled and practiced on the production environment. Actions are taken on the vulnerabilities found.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="PS.3.1", Description="Critical components of the production system are covered with system health monitoring. Notifications are raised upon possible anomalies.", Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="SP", Name="Software Productization", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.1.1", Description="Product has a framework capable of catering to globalization needs (language, currency, date/time, numbers, etc.).", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.1.2", Description="Look and feel of the product is decoupled from the structure of the user interface and can be changed easily as needed.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.1.3", Description="Strategy for multi-tenancy is clearly identified and necessary isolation means are in place.", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.2.1", Description="The designs for billing and licensing features of the product are available and reporting/accounting required for such are in place.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.2.2", Description="Product is made modular such that it is possible to configure different editions catering different market needs.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="SP.3.1", Description="Features required for presale needs such as demo versions, trial periods, etc. are designed and implemented as necessary.", Level = level3 }
                     }
                 },
                 new SubArea{ GUID=Guid.NewGuid(), Code="DA", Name="Delivery Automation", 
                     Practices= new List<Practice> {
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.1.1", Description="Any code changes should trigger a build, and any successful build can be deployed to staging automatically.", Level = level1},
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.1.2", Description="Data migrations are performed automatically as a part of release process", Level = level1 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.2.1", Description="All code is integrated daily and artifacts required to create a deployment are version control together with code", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.2.2", Description="Delivery pipeline is orchestrated. Releases are repeatable and has ability to rollback releases.", Level = level2 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.3.1", Description="Development environments can be automatically provisioned. All artifacts, configurations required are version controlled.", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.3.2", Description="Staging and production environments are automatically provisioned. All artifacts, configurations required are version controlled.", Level = level3 },
                         new Practice{ GUID=Guid.NewGuid(), Code="DA.3.3", Description="Database versioning/upgrading is decoupled from code versioning. Database migrations lead the code deployments in staging as well as in production.", Level = level3 }
                     }
                 },
             }
     };
 }