Search

What is PI Planning and its importance in SAFe®?

PI Planning or Program Increment Planning can be said to be the heartbeat of the Agile Release Train(ART). Even more precisely, it sets the tracks for the train to ensure that all rail cars(scrum teams that are a part of ART) travel in the same direction. It is similar to Iteration planning in crum. It is an extension of Iteration planning under a bigger umbrella i.e ART.  PI Planning sessions are regularly scheduled activities held during the year where various teams within the same Agile Release Train (ART) collaborate to agree with a common vision, discuss functionality, prepare the roadmap and define cross-team dependencies. It's a fixed timebox for planning , designing, and validating a complete system, showing value, and having quick feedback.  When you first follow SAFe, chances are, it will start with PI Planning. This is because it forms the basis for the Scaled Agile FrameworkTM. The PI Planning ceremony is the foundation of your transformation and the driver for SAFe. We will take a deep dive into PI planning in detail in this article and understand its importance in SAFe.What is SAFe®?Before understanding SAFe ,let’s first understand what Scrum is. Scrum is an iterative product creation approach focusing on a regular production cadence. It relies on cross-functional teams, a set of ceremonies, and certain specific supporting roles to help drive these deliveries.SAFe is an extension of Scrum at the larger organizational level. SAFe or the Scaled Agile FrameworkTM is a set of principles and strategies designed to help deliver resilience to all departments and levels of the organization. The system is designed to enhance visibility, coordination and cooperation which will result in improved efficiency , better outcomes and faster delivery.Image SourceIntroduction to Program Increment :PI Planning is particularly useful for agile companies of large scale. Let 's look at some figures, to understand the effect. Some bigger companies , for example, may have 300-400 teams and 5,000 developers. These teams may never have spoken to each other before, in the old way of working until a crucial issue forced them to collaborate.Previously, coordination would have been at the level of the leadership team, and they would have had several levels of managers in between who would trickle down details, but the people on the teams would never speak to each other. There would always be a constant struggle to work on the biggest projects for money, budget, and opportunities.Projects had a habit of overlapping - one team would release something which would then break something in the project of another team. PI Preparation is the first time that many of these very large businesses have joined their teams in a space or on the same call to speak to each other. They are given the opportunity to nut out those crucial talks about who is working on what. When you enter a code or a code repository, you need to know how it can affect another team. You may also need to do some work to allow another team to work first (and vice versa) on their feature.An ART (agile release train) is a shared objective accomplished by the soul of the different teams that work together. In very large companies, there can be three trains working together, and that is the reason why the teams need to step back every eight to 12 weeks and make sure that they continue to work towards the overall vision and company goals.Here’s what PI Planning enforces:CommunicationVisibilityCollaborationAs a result, teams can more easily get work done, deliver more updates in less time, and remain on budget.Executing the PI /Agenda- It is very important to understand the steps involved in executing PI. Let's try to understand the same:1) Preparation: It will cover the prerequisites for successful PI.Organization preparation : PI meetings are supposed to be arranged well in advance, and it is important to call into account all the stakeholders and leaders involved in the program. Usually, large organizations arrange this as a quarterly meeting, which helps to talk about the end of the preceding quarter and to set all in order for the start of the next quarter.Content preparation: For the launch the preparation on the aim and the vision has to be made well in advance. This should be drilled into the team from day one, which is done by the Company owners and the leaders of the projects who are in the best position to do so.  Facility preparation: A spacious room that is twice the size of the amount of people should be prepared, where the employees are able to walk around and ask other employees questions.2) Agenda:Setting the agenda is very important and should be mapped out at the outset. Motivational speakers should be called in, who can take time to remember the successes of the last PI. Always provide some time for introductions through ice breaking games. It is important that the teams get to know each other, so that they can work well together. All these can be helpful in work teambuilding and bringing a social aspect to the case.Here is an example of an agenda from ScaledAgileFramework.com. It outlines the critical steps for a successful case.Day OneBusiness Background – The background of the business is  provided by a senior management member or a company owner who offers insights on business performance and on how they are able to keep up with market demands and customer needs.Product / Solutions Strategy- The Project management will outline the company vision for the next PI. The salient features that will help achieve these targets will be defined by the company management.Architecture Vision & Development Practices – Next, the Systems Architect or IT department will talk about the systems and architectural vision for infrastructure upgrades that will help increase market time and will affect growth during the upcoming PI. Process changes associated with Agile that would improve speed and communication will be discussed.Preparation Background & Lunch – After this, it is the turn of the Release Train Engineer (RTE) to explain the planning process for PI and what the teams and the general meeting are required to do. The planned results for the meeting will be discussed, and any questions from the Team will be addressed.Team breakouts- Teams will meet around the boards (analogue or digital) to measure their pace for each iteration and look at their backlogs and what needs to be progressed to help the functionality outlined in the vision. They will apply their draft plans to review and provide input to all the teams. They'll need to recognize and mitigate possible threats and addictions.Draft Plan Review- During this time-boxed meeting, teams will deliver their draft plans and receive input from product owners, company owners,  stakeholders and other teams. They may use the feedback to fine-tune their drafts before consulting the management. They will also discuss possible issues to be addressed by the management.Review by Management and Problem Solving- Draft plans would also raise problems with design, scale, and people and resource constraints. Only the management renegotiation and future features may often solve these problems. The RTE (Release Train Engineer) organizes this meeting and stakeholders and business owners must come out of the meeting with a new set of goals or features for the teamsDay 2 AgendaProgram Adjustments- At the start of the day,  changes or decisions taken at the problem-solving meeting by management and stakeholders will be considered. Teams are apprised of these changes and decisions and priorities may be revisited. These adjustments will be put on the board of the company so that all departments can take a look and reorganize themselves.Breakouts- During breakouts, teams take the changes back to their discussion meeting and come back to the program board with their PI targets. Company owners may assign values to each of the goals and rate them for execution. At this stage, teams will get a clearer sense of their targets in the context of the iterations ahead.Final Plan Review and Lunch- Finally, each team will carry their plans to the front and present them. Threats and dependencies will be listed out at the finish of the presentation. While this is not the time to try and fix those problems, the various plans are posted to allow the teams to review and get inputs from others.Program Risks-All teams listed their risks and dependencies in the preceding phase. Now that all the goals are written, the teams will tackle each risk in turn and decide whether they can be resolved. The risks fall into one of below categories:Resolved- The teams conclude after discussion that the topic is no longer a problem.  Owned – Someone on the train takes ownership of the item to work on a later resolution of the issue.  Accepted – Certain threats are simply facts or future issues that need to be acknowledged and embraced.  Mitigated- Teams will strategize together to mitigate a risk item's effects. The solution or fix is implemented.Trust Vote – Once all the challenges and targets are discussed and addressed, the teams can vote on their conviction that the target can be achieved in the coming PI. The Trust vote is a quintessential vote, when team members can hold up one to five fingers in a show of hands. Anything that is less than a three-finger ballot should be re-looked at. The team member who has an issue with that particular goal would need to give more clarity, so that the teams can fix it. Once the issue has been resolved, the target of achieving a vote of confidence for the coming PI is again put to vote.Retrospective – The RTE will have a brief retrospective on the PI Planning case at the very end of the meeting to collect input about what was going well for the case, and what needs to be modified or enhanced for the next event.Day 18:00am - 9:00amBusiness context9:00am - 10:30amProduct/solution vision10:30am - 11:30amArchitecture vision & development practice11:30am - 1:00pmPlanning context & lunch1:00pm - 4:00pm Team breakouts4:00pm - 5:00pmDraft plan review5:00pm - 6:00pmManagement review & problem solvingDay 28:00am - 9:00amPlanning adjustment9:00am - 11:00amTeam breakouts11:00am - 1:00pmFinal plan review & lunch1:00pm - 2:00pmProgram risks2:00pm -2:15pmConfidence vote2:15pm - X:XXPMPlan rework (if needed)When readyPlanning retrospective & moving forwordThis plan may be ideal for you or you can change it according to the needs of your team. Distributed teams, very large ARTs, and other factors can require the schedule to be modified in a creative way. You will find some sessions require more time, while others may need to be shortened. If it's your first PI Planning experience, try the regular agenda, get input from your team and play with different formats.PI Output- The output which comes out from PI planning is as follows :Smart goals are set by each participating team.The program manager updates the program board based on PI output. The feature list is accepted by each participating team.The new release date for features is aligned between teams.Dependencies of roles (between teams and other ARTs) are set.Milestones are noted down.Planning for PI offers many business advantages including:  Setting up face-to - face contact with the stakeholders and all team members – It is critical to keep everybody focused on the event.  Establishing the social network depends on the ART – The purpose of icebreakers and team-building games is to help instill trust and collaboration even for remote team members.Matching progress on business goals with the business background, vision, and priorities of the Team and Program PI – Everyone comes together so that they feel like a part of the process and are able to grasp the vision of the organization.Finding similarities and promoting cross-team and cross-ART communication – Many people who have been virtually in touch are now able to put a face to a name. When resolving concerns, dependencies and threats, it's important for everyone to feel comfortable reaching out for support and finding out how the teams can work together.Quick decision making –No need to worry if they have received your text or wait for someone to get back to you when everyone is together. Rather than days or weeks, discussions and decisions take place in minutes or hours.When is PI Planning held?Many businesses think that the correct period of time for an increment is 8-12 weeks (which adds up to 4-6 x 2-week iterations).  Some firms keep PI Planning quarterly, for example:  Q1 PI: December  Q2 PI: March  Q3 PI: June  Q4 PI: September  But timing and duration depend on how long each phase of the program is planned to last. The positive thing about PI Organizing activities is that they happen regularly on a set timetable, so you can plan well in advance for them. That means there is plenty of notice from teams and business owners to ensure they can turn up for the case.What is a pre-PI Planning event and when is it needed?Since the two-day PI Preparation case obviously is just not enough, pre-planning events may be required. These exist for a very good purpose  -to make sure the ART is synchronized before PI Preparation is carried out within the wider Solution Train. It's all about synchronizing with the other ARTs to ensure that the answer moves in the right direction, along with the organization. What normally happens is that key people from the Solution Train, along with members from the ARTs and related suppliers get together. Here are some of the people you'll find at such an organizing event :  Solution Train EngineerSolution ManagementSolution Architect/EngineeringSolution System TeamRelease Train EngineersProduct ManagementSystem Architects/EngineersCustomersThey'll look at the top Project Backlog, Project Goal, Vision, and Solution Roadmap capabilities. It's a lot like PI Preparation, but at a higher level, through the solution as a whole and not just the individual work. The event begins with each ART summing up its previous increment and achievements in order to set the context. A senior executive would then brief the attendees on the current situation before Project Management addresses the new vision of the project and any improvements from what had previously been discussed.Remote Teams must be engaged and accountableThe Agile Manifesto says, "A face-to - face interaction is the most effective and efficient method of conveying information to and within a development team."  Keeping the members of the remote team involved and focused on the planning tasks can be challenging indeed. A range of video conference services are available on the market that allow teams not only to carry out video conferencing with individual members, but also to interact with local teams with cameras. Everyone can see and communicate with one another in the same way as if they were all seated in a conference room together.  Applications like Zoom / Web ex / Google Meet /Microsoft Team offer video conferencing facilities for teams and can be used for group sessions for PI preparation. Remote participants can be asked to keep their cameras on so they can be seen.ConclusionWithin the grand scale of today's development environment, teams are often divided across geographies. Team members who are going to be on-the-spot can attend the PI meeting in person, but entire groups might not be ready to participate from the same location. Remote teams should be able to collaborate and give their feedback, in order for SAFe to develop.In such cases, RTEs and company owners need to think outside the box as online technologies evolve. They must prepare to organize and train teams to use these technology resources for effective collaboration.  The more frequently the teams use the tools, the simpler it'll be to use them for major events like PI Preparation and alternative iteration conferences and ceremonies. For answers to questions, often teams operating within the same building will profit from providing a remote source of knowledge and a common source of truth within the organization. It can also help to encourage team members to know their stakeholders and product managers, so that at the right time the right people can answer the right questions.Teams who are able to meet this challenge will benefit from the largest pool of skills and expertise, and can get set to reap the highest chance of success in this fast-paced industry.
What is PI Planning and its importance in SAFe®?
Ashish
Ashish

Ashish Kumar

Senior Technology Specialist

Ashish is working as a Senior Technology Specialist in leading financial bank has more than 13 years of experience in developing enterprise applications

Posts by Ashish Kumar

What is PI Planning and its importance in SAFe®?

PI Planning or Program Increment Planning can be said to be the heartbeat of the Agile Release Train(ART). Even more precisely, it sets the tracks for the train to ensure that all rail cars(scrum teams that are a part of ART) travel in the same direction. It is similar to Iteration planning in crum. It is an extension of Iteration planning under a bigger umbrella i.e ART.  PI Planning sessions are regularly scheduled activities held during the year where various teams within the same Agile Release Train (ART) collaborate to agree with a common vision, discuss functionality, prepare the roadmap and define cross-team dependencies. It's a fixed timebox for planning , designing, and validating a complete system, showing value, and having quick feedback.  When you first follow SAFe, chances are, it will start with PI Planning. This is because it forms the basis for the Scaled Agile FrameworkTM. The PI Planning ceremony is the foundation of your transformation and the driver for SAFe. We will take a deep dive into PI planning in detail in this article and understand its importance in SAFe.What is SAFe®?Before understanding SAFe ,let’s first understand what Scrum is. Scrum is an iterative product creation approach focusing on a regular production cadence. It relies on cross-functional teams, a set of ceremonies, and certain specific supporting roles to help drive these deliveries.SAFe is an extension of Scrum at the larger organizational level. SAFe or the Scaled Agile FrameworkTM is a set of principles and strategies designed to help deliver resilience to all departments and levels of the organization. The system is designed to enhance visibility, coordination and cooperation which will result in improved efficiency , better outcomes and faster delivery.Image SourceIntroduction to Program Increment :PI Planning is particularly useful for agile companies of large scale. Let 's look at some figures, to understand the effect. Some bigger companies , for example, may have 300-400 teams and 5,000 developers. These teams may never have spoken to each other before, in the old way of working until a crucial issue forced them to collaborate.Previously, coordination would have been at the level of the leadership team, and they would have had several levels of managers in between who would trickle down details, but the people on the teams would never speak to each other. There would always be a constant struggle to work on the biggest projects for money, budget, and opportunities.Projects had a habit of overlapping - one team would release something which would then break something in the project of another team. PI Preparation is the first time that many of these very large businesses have joined their teams in a space or on the same call to speak to each other. They are given the opportunity to nut out those crucial talks about who is working on what. When you enter a code or a code repository, you need to know how it can affect another team. You may also need to do some work to allow another team to work first (and vice versa) on their feature.An ART (agile release train) is a shared objective accomplished by the soul of the different teams that work together. In very large companies, there can be three trains working together, and that is the reason why the teams need to step back every eight to 12 weeks and make sure that they continue to work towards the overall vision and company goals.Here’s what PI Planning enforces:CommunicationVisibilityCollaborationAs a result, teams can more easily get work done, deliver more updates in less time, and remain on budget.Executing the PI /Agenda- It is very important to understand the steps involved in executing PI. Let's try to understand the same:1) Preparation: It will cover the prerequisites for successful PI.Organization preparation : PI meetings are supposed to be arranged well in advance, and it is important to call into account all the stakeholders and leaders involved in the program. Usually, large organizations arrange this as a quarterly meeting, which helps to talk about the end of the preceding quarter and to set all in order for the start of the next quarter.Content preparation: For the launch the preparation on the aim and the vision has to be made well in advance. This should be drilled into the team from day one, which is done by the Company owners and the leaders of the projects who are in the best position to do so.  Facility preparation: A spacious room that is twice the size of the amount of people should be prepared, where the employees are able to walk around and ask other employees questions.2) Agenda:Setting the agenda is very important and should be mapped out at the outset. Motivational speakers should be called in, who can take time to remember the successes of the last PI. Always provide some time for introductions through ice breaking games. It is important that the teams get to know each other, so that they can work well together. All these can be helpful in work teambuilding and bringing a social aspect to the case.Here is an example of an agenda from ScaledAgileFramework.com. It outlines the critical steps for a successful case.Day OneBusiness Background – The background of the business is  provided by a senior management member or a company owner who offers insights on business performance and on how they are able to keep up with market demands and customer needs.Product / Solutions Strategy- The Project management will outline the company vision for the next PI. The salient features that will help achieve these targets will be defined by the company management.Architecture Vision & Development Practices – Next, the Systems Architect or IT department will talk about the systems and architectural vision for infrastructure upgrades that will help increase market time and will affect growth during the upcoming PI. Process changes associated with Agile that would improve speed and communication will be discussed.Preparation Background & Lunch – After this, it is the turn of the Release Train Engineer (RTE) to explain the planning process for PI and what the teams and the general meeting are required to do. The planned results for the meeting will be discussed, and any questions from the Team will be addressed.Team breakouts- Teams will meet around the boards (analogue or digital) to measure their pace for each iteration and look at their backlogs and what needs to be progressed to help the functionality outlined in the vision. They will apply their draft plans to review and provide input to all the teams. They'll need to recognize and mitigate possible threats and addictions.Draft Plan Review- During this time-boxed meeting, teams will deliver their draft plans and receive input from product owners, company owners,  stakeholders and other teams. They may use the feedback to fine-tune their drafts before consulting the management. They will also discuss possible issues to be addressed by the management.Review by Management and Problem Solving- Draft plans would also raise problems with design, scale, and people and resource constraints. Only the management renegotiation and future features may often solve these problems. The RTE (Release Train Engineer) organizes this meeting and stakeholders and business owners must come out of the meeting with a new set of goals or features for the teamsDay 2 AgendaProgram Adjustments- At the start of the day,  changes or decisions taken at the problem-solving meeting by management and stakeholders will be considered. Teams are apprised of these changes and decisions and priorities may be revisited. These adjustments will be put on the board of the company so that all departments can take a look and reorganize themselves.Breakouts- During breakouts, teams take the changes back to their discussion meeting and come back to the program board with their PI targets. Company owners may assign values to each of the goals and rate them for execution. At this stage, teams will get a clearer sense of their targets in the context of the iterations ahead.Final Plan Review and Lunch- Finally, each team will carry their plans to the front and present them. Threats and dependencies will be listed out at the finish of the presentation. While this is not the time to try and fix those problems, the various plans are posted to allow the teams to review and get inputs from others.Program Risks-All teams listed their risks and dependencies in the preceding phase. Now that all the goals are written, the teams will tackle each risk in turn and decide whether they can be resolved. The risks fall into one of below categories:Resolved- The teams conclude after discussion that the topic is no longer a problem.  Owned – Someone on the train takes ownership of the item to work on a later resolution of the issue.  Accepted – Certain threats are simply facts or future issues that need to be acknowledged and embraced.  Mitigated- Teams will strategize together to mitigate a risk item's effects. The solution or fix is implemented.Trust Vote – Once all the challenges and targets are discussed and addressed, the teams can vote on their conviction that the target can be achieved in the coming PI. The Trust vote is a quintessential vote, when team members can hold up one to five fingers in a show of hands. Anything that is less than a three-finger ballot should be re-looked at. The team member who has an issue with that particular goal would need to give more clarity, so that the teams can fix it. Once the issue has been resolved, the target of achieving a vote of confidence for the coming PI is again put to vote.Retrospective – The RTE will have a brief retrospective on the PI Planning case at the very end of the meeting to collect input about what was going well for the case, and what needs to be modified or enhanced for the next event.Day 18:00am - 9:00amBusiness context9:00am - 10:30amProduct/solution vision10:30am - 11:30amArchitecture vision & development practice11:30am - 1:00pmPlanning context & lunch1:00pm - 4:00pm Team breakouts4:00pm - 5:00pmDraft plan review5:00pm - 6:00pmManagement review & problem solvingDay 28:00am - 9:00amPlanning adjustment9:00am - 11:00amTeam breakouts11:00am - 1:00pmFinal plan review & lunch1:00pm - 2:00pmProgram risks2:00pm -2:15pmConfidence vote2:15pm - X:XXPMPlan rework (if needed)When readyPlanning retrospective & moving forwordThis plan may be ideal for you or you can change it according to the needs of your team. Distributed teams, very large ARTs, and other factors can require the schedule to be modified in a creative way. You will find some sessions require more time, while others may need to be shortened. If it's your first PI Planning experience, try the regular agenda, get input from your team and play with different formats.PI Output- The output which comes out from PI planning is as follows :Smart goals are set by each participating team.The program manager updates the program board based on PI output. The feature list is accepted by each participating team.The new release date for features is aligned between teams.Dependencies of roles (between teams and other ARTs) are set.Milestones are noted down.Planning for PI offers many business advantages including:  Setting up face-to - face contact with the stakeholders and all team members – It is critical to keep everybody focused on the event.  Establishing the social network depends on the ART – The purpose of icebreakers and team-building games is to help instill trust and collaboration even for remote team members.Matching progress on business goals with the business background, vision, and priorities of the Team and Program PI – Everyone comes together so that they feel like a part of the process and are able to grasp the vision of the organization.Finding similarities and promoting cross-team and cross-ART communication – Many people who have been virtually in touch are now able to put a face to a name. When resolving concerns, dependencies and threats, it's important for everyone to feel comfortable reaching out for support and finding out how the teams can work together.Quick decision making –No need to worry if they have received your text or wait for someone to get back to you when everyone is together. Rather than days or weeks, discussions and decisions take place in minutes or hours.When is PI Planning held?Many businesses think that the correct period of time for an increment is 8-12 weeks (which adds up to 4-6 x 2-week iterations).  Some firms keep PI Planning quarterly, for example:  Q1 PI: December  Q2 PI: March  Q3 PI: June  Q4 PI: September  But timing and duration depend on how long each phase of the program is planned to last. The positive thing about PI Organizing activities is that they happen regularly on a set timetable, so you can plan well in advance for them. That means there is plenty of notice from teams and business owners to ensure they can turn up for the case.What is a pre-PI Planning event and when is it needed?Since the two-day PI Preparation case obviously is just not enough, pre-planning events may be required. These exist for a very good purpose  -to make sure the ART is synchronized before PI Preparation is carried out within the wider Solution Train. It's all about synchronizing with the other ARTs to ensure that the answer moves in the right direction, along with the organization. What normally happens is that key people from the Solution Train, along with members from the ARTs and related suppliers get together. Here are some of the people you'll find at such an organizing event :  Solution Train EngineerSolution ManagementSolution Architect/EngineeringSolution System TeamRelease Train EngineersProduct ManagementSystem Architects/EngineersCustomersThey'll look at the top Project Backlog, Project Goal, Vision, and Solution Roadmap capabilities. It's a lot like PI Preparation, but at a higher level, through the solution as a whole and not just the individual work. The event begins with each ART summing up its previous increment and achievements in order to set the context. A senior executive would then brief the attendees on the current situation before Project Management addresses the new vision of the project and any improvements from what had previously been discussed.Remote Teams must be engaged and accountableThe Agile Manifesto says, "A face-to - face interaction is the most effective and efficient method of conveying information to and within a development team."  Keeping the members of the remote team involved and focused on the planning tasks can be challenging indeed. A range of video conference services are available on the market that allow teams not only to carry out video conferencing with individual members, but also to interact with local teams with cameras. Everyone can see and communicate with one another in the same way as if they were all seated in a conference room together.  Applications like Zoom / Web ex / Google Meet /Microsoft Team offer video conferencing facilities for teams and can be used for group sessions for PI preparation. Remote participants can be asked to keep their cameras on so they can be seen.ConclusionWithin the grand scale of today's development environment, teams are often divided across geographies. Team members who are going to be on-the-spot can attend the PI meeting in person, but entire groups might not be ready to participate from the same location. Remote teams should be able to collaborate and give their feedback, in order for SAFe to develop.In such cases, RTEs and company owners need to think outside the box as online technologies evolve. They must prepare to organize and train teams to use these technology resources for effective collaboration.  The more frequently the teams use the tools, the simpler it'll be to use them for major events like PI Preparation and alternative iteration conferences and ceremonies. For answers to questions, often teams operating within the same building will profit from providing a remote source of knowledge and a common source of truth within the organization. It can also help to encourage team members to know their stakeholders and product managers, so that at the right time the right people can answer the right questions.Teams who are able to meet this challenge will benefit from the largest pool of skills and expertise, and can get set to reap the highest chance of success in this fast-paced industry.
5443
What is PI Planning and its importance in SAFe®?

PI Planning or Program Increment Planning can be s... Read More

What Is Iteration Planning and How to Do It Effectively?

Iteration planning is considered as the lifeline of Agile framework and plays an important role in the cadence delivery of the product in incremental releases. It is very critical to do iteration planning effectively to ensure we remain productive and add business value with each sprint. An Iteration Preparation Meeting is a crucial ceremony during an IT project development stage for every Agile team that uses Scrum. It's where the team gets together in the next Iteration to chat about work and is structured to help provide a consistent focus and direction for the work ahead. Iteration Planning (Overview)Iteration planning is one of the important ceremonies in the Agile framework. The aim of iteration planning is to set a few high-level goals for what to achieve during the iteration, to create a sufficiently comprehensive plan detailing who needs to do what to achieve those goals, and to determine how to measure what you have achieved. Iteration planning is usually conducted at the start of an iteration with the entire team in a group, including key stakeholders, generally lasting one to a few hours. It means that the whole team knows what needs to be achieved, and they are committed to the results of the team.  In certain cases, it is preferred to allow a smaller subset of individuals, such as the project manager, an architect and an analyst to meet in advance with a draft iteration plan. For the team to complete the collection of top-ranked product backlog products, the iteration planning plays an important role. Based on the duration of iteration and team velocity, this is a time-boxed arrangement. A crucial feature of an iteration is to concentrate the team on a measurable benefit that is deliverable in the short term. To make sure that you do not lose concentration on what to achieve during the iteration, document 1-5 high-level targets. Usually, for each iteration, the project plan may specify one or more goals, and those goals are used as a starting point. If you need to explain the goals when you prepare your iteration, do so. Inputs to IP & Planning the Iteration :   The IP goals are typically based on the following factors: Critical risks not yet mitigated: Iteration priorities also involve the most significant risks being pushed down.  The time allocated to the iteration: Iterations are timeboxed, so the Project Manager must ensure that the iteration priorities are achievable in relation to the time and resources allocated to the iteration.  The highest priority features: To ensure that the essential features of the application are built and checked early on, specifications are prioritized. Iteration Planning Steps- Before starting, make sure, the user story in the product backlog have been sized by the team and a relative story point value has been assigned. The product backlog is stacked to reflect the product owner 's preferences. For these rated backlog products, there is a general understanding of the acceptance requirements. Per iteration, there is an iteration plan that can describe who will execute the work item for how long a time.  Since iterations are time-boxed, by calculating how many hours of real work can be taken on, we need to consider how big our 'box' is. Let's say you have 6 team members, and you have 15 working days in your iteration, and you can do 5 real hours of work per person and day on average. This will earn you 6x15x5h = 450 real work hours. Notice that only 4-6 hours of actual project work every day is done by the average team member, with the remainder being consumed by e-mails, meetings, and other routine tasks not specifically related to the project. For all the high-priority items in the Work Items List, the team can then review and amend priorities to ensure that a significant work item is not skipped, which will otherwise fall far below the list of what can be taken on in this iteration. The essential features for a product backlog item for the purpose of iteration planning are:  The iteration is small enough to be done.  We can check whether it was correctly implemented or not. There are two steps in designing the contents of an iteration: deciding how many user stories will fit into the iteration, then breaking down those stories into assignments and appointing owners. Sizing refers to a user story's relative reach, which is normally performed in relative points. When it is first developed, during backlog refining sessions, and before the planning meeting, the team regularly estimates the size of a user story. The team should know what story at the top of the backlog will fit into the iteration by the time preparation starts. Estimation refers to the breakdown of tasks into a user narrative. When the steps taken to produce a user story are established, an hourly estimate is provided for each mission. This figure keeps the team updated on how close it is to completing a mission. The team also recognizes how many task hours each member of the team has available in the iteration (known as capacity) to avoid overburdening of individuals. In planning sprints, there are two general approaches: velocity-driven planning and capacity-driven planning. Velocity driven Sprint Planning  Let 's start with velocity-driven sprint planning since it's the simplest to explain. Velocity-driven sprint preparation is based on the idea that in the next sprint, the amount of work a team can perform is approximately equal to what they have done in previous sprints. This implies, of course, that the team is working on similar work from sprint to sprint, consistent sprint lengths, and so on, such as a constant team size. Each of these assumptions is usually true and violations of the assumptions are easily recognized that is, the team knows this in advance when a sprint switches from 10 to nine working days, as in the case of a holiday.The following are the phases in velocity-driven sprint planning:  Determine the historical average velocity for the team.  Select the number of items for the product backlog equal to that velocity.Most teams stop there. Others include an extra step:  Identify the activities involved in the user stories chosen to see if it feels like the correct amount of work.  And there will be some teams moving even further to:  Estimate the assignments to see if the task total is in line with previous sprints. Capacity driven planning The product owner, the Scrum Master and all members of the agile team are involved in a capacity-driven sprint planning meeting. The product owner brings into the meeting the top-priority product backlog items and presents them to the team, usually beginning with a summary of the high-priority items collection.After a high-priority item has been selected, team members discuss the work involved and determine the activities needed to produce the product backlog item. The hours for each item would also be approximately calculated by most teams. These figures are tentative since the figures can only be used to impact the number of items that are brought into the sprint and the product backlog. Estimates do not need to be accurate to do so. Do not ask or expect a team to think about any job that will be completed during the sprint. That is not only unlikely, it is needless, too.The team members ask themselves, "Should we commit to this?" after they have defined tasks and approximately calculated the hours for that one product backlog item. When the team decides that a product backlog item can be shipped, they pick another item and repeat the procedure. And they continue to repeat it until anyone says that they are unable to commit to the product backlog item chosen. If someone is unable to complete the item in the sprint, team members can normally address the situation and see if someone else is available to help. Maybe a DBA with rudimentary JavaScript expertise will assist an exhausted developer of JavaScript. You may have noted that no story point or velocity has played a role in the process so far. Although I still recommend providing rapid, high-level estimates of product backlog items in story points.  Iteration Planning Attendees: These are the below attendees for IP ceremonies: Scrum Master: The scrum master serves as an agile distribution team facilitator.  Product Owner: The product owner deals with the comprehensive view and approval conditions of the product backlog.  Agile Team : Agile implementation determines their objectives and sets the estimates of effort necessary for the commitment to be met. Iteration Planning Agenda : The following is an example agenda for iteration planning:  Measure the iteration's available team capacity.  Discuss each story, discuss extensive acceptance requirements, and use story points to provide estimates.  When the team runs out of capacity, preparation ends. Determine and settle on the objectives for iteration. All should be committed to their goals.  Criteria for acceptance are created through dialogue and cooperation with the product owner and other stakeholders. The Product Owner may adjust the rating of the story based on the story's estimates. Velocity Calculation Velocity is a measure of the amount of work that a team can do during a single sprint and is Scrum 's main metric. Velocity is determined by summing the points for all completely completed User Stories at the end of the Sprint. Dividing the total number of story points completed by the number of sprints includes the real velocity. For instance, if a total of 70 points were achieved by the development team over two sprints, the actual velocity of the team will be 35 points per sprint. Capacity planning The agile team quantifies their capacity to do work. Each member of the team decides their availability, considers time off and other possible responsibilities. Other standing responsibilities, such as maintenance, are also taken into account in this operation, which is distinct from the creation of new stories. Using their historical velocity as a starting point, the team makes changes to assess the actual potential for the iteration based on the unavailable time and team members. Story Analysis & EstimationThe team backlog is checked once the team capacity has been identified. Each story, covering relative difficulty, scale, complexity, ambiguity, technical challenges, and requirements for acceptance, is addressed. In order to maintain a common understanding of the individual behavior of each story, teams also use Behavior-Driven Production (BDD). Finally, for the story, the team agrees to a size estimate. Usually, there are also other types of stories on the team backlog, including enablers that might represent infrastructure work, POC, and architectural improvements, as well as work and defect refactoring. They also prioritize and estimate these things. In Scrum, the estimation of the story point of the team, and the resulting velocity, is usually a local and independent matter. The fact that a small team might estimate their velocity to be 50 in such a way, while another larger team estimates that their velocity is 13, is typically not a concern. However, in SAFe, the calculation of the story point must be standardized, so that assessments of features or epics that require the help of several teams are based on the same concept of the story point, allowing a common economic decision-making basis Relative Estimating, Velocity, Capacity, and Normalizing Story Point Estimating- In order to reasonably estimate a story, Agile teams use story points. With relative estimation, the size (expected effort) is compared to another story for each story. An eight-point story, for instance, is four times the effort of a two-point story. The pace of the team is equivalent to the historical average of all completed stories per iteration. The starting point for estimating the potential of a team for a future iteration is velocity. Knowing the skill of a team helps with preparation and helps to restrict Work in Process (WIP). Teams should not take on more stories than their previous pace would imply. Velocity, which is also forecast in story points, is also used to estimate how long it takes to deliver features or epics. Develop/commit to Iteration GoalsWhen the iteration backlog is known, the team turns its focus to synthesizing one or more iteration priorities that outline the work in that iteration that the team intends to achieve. They are based on the iteration backlog from the PI planning case, as well as the team and program PI goals. The closer the PI planning session is to the IP version, the more likely the PI targets will stay unchanged. When the potential of the team has been met, no more stories are taken from the team backlog in terms of committed stories. At this point, the product owner and the team settle on the final list of stories that will be chosen, and the iteration priorities will be revisited and reaffirmed. The entire team then agrees to the objectives of the iteration, and for the duration of the iteration, the nature of the work remains set. Guidelines for Effective IP Some tips for holding an iteration planning meeting are given below: Keep an eye of duration of this event. It should be timeboxed to 4 or less hours. It should be organized by the team and for the team alone. We should keep a check on the historical velocity of team before over-committing the team’s capacity. Source. ConclusionIt is important to ensure that the way you will assess progress at the end of the iteration is transparent to all team members and other stakeholders. The obvious criterion for success should be that you can verify the implemented features. Iteration preparation, either on the first day or a week before the iteration starts, should be performed once per iteration. You should give about 12 hours to finish the process as a facilitator, but there is really no fixed time, it's all about whatever works for your team. Most notably, have fun and remember to celebrate the previous success of Iteration! 
6522
What Is Iteration Planning and How to Do It Effect...

Iteration planning is considered as the lifeline... Read More

AngularJS: Top Use Cases and Reasons to Opt for This Tool

AngularJS represents a structural framework for dynamic web applications. It is an open-source, JavaScript-based front-end web platform primarily developed by Google and a consortium of individuals and companies to solve many of the challenges faced in the development of single-page applications.   AngularJSAngularJS offers flexibility in coding like no other framework due to its simple design architecture. In terms of simplicity, it helps beginners to get started and make improvements to their application projects easily. AngularJS also handles heavy web applications that are exceptionally well loaded with features and components. It allows you to use HTML as your template language and allows you to extend the syntax of HTML to clearly and succinctly express the components of your application. The data binding and dependency injections ensure that we do not need to write a big chunk of code which otherwise we would have ended in writing. And all happens inside the browser making it a perfect partner for any application. The next layer data binding frameworks gains popularity due to strong demand. The foremost known ones are: AngularJS KnockoutJS BackboneJS DurandalJS JavaScriptMVC AngularJS overview AngularJS is a platform and framework that uses HTML and TypeScript to build single-page client applications. The below diagram will give you fair idea of difference in traditional page life cycle vs Single page life cycle : AngularJS overviewThe AngularJS application is written using typescript. It introduces core and optional features when you import a collection of TypeScript libraries into your applications. The architecture of an AngularJS application is based on some fundamental principles. The basic building blocks are NgModules which provide the component compilation background. NgModules compile the related code into functional sets; a collection of NgModules define an AngularJS application. An AngularJS application often has at least one root module that enables bootstrapping, and usually has a lot more feature modules. We will not go into details as this is out of scope of this article but to give you better understanding of an AngularJS application ,let's look at below example where we are trying to calculate area of rectangle :  Area:     Width:     Breadth: Area: {{width * breadth}} This appears to be normal HTML, with some new markup. A file like this is called a Template in AngularJS. Once AngularJS launches the code, it uses the compiler to interpret and process this new markup from the template. The DOM that is loaded, transformed, and rendered is then called view. The Directives are the first kind of modern markup. We add special actions to items or attributes in the HTML. You would have noticed the new attribute ng-app which is a directive for initializing AngularJS apps automatically. AngularJS also defines an input element directive which adds additional behavior to the element. The directive ng-model stores / updates the value of the input field within / from a variable. Why AngularJS? AngularJS is backed by Google. This is a huge relief for developers to operate on a stable code base that will offer the application maximum support. it's a stable platform to focus on. Many frameworks are nowadays a pure bundling of existing resources. They are an integrated group of tools but they are not very elegant. AngularJS is the next generation platform where each tool was built to function in an integrated manner with any other tool. Please find below some reasons why AngularJS is considered as best among its competitors: MVC inbuilt support Most frameworks enforce MVC by asking you to break your app into MVC components and then allow you to write code to re-string them. This is a lot of work. As a developer we have to just split the framework into MVC components and leave everything to AngularJS for taking care. Declarative User Interface AngularJS uses HTML to describe the user interface within the program. HTML is a more concise and less complex declarative language than the procedural interpretation of the JavaScript interface HTML is also less brittle to reorganize than a JavaScript-written GUI, so things are less likely to break. And when the view is written in HTML, you can put in a lot more UI developers. Data models are POJO The POJO acronym for plain old java objects are being used as data models in AngularJS and it works without superfluous functions getter and setter. You can include and change properties straightforwardly and circle over objects and exhibits voluntarily. Your code will look a lot of cleaner and progressively instinctive, the way mother nature expected. Behaviors with Directive Directives are the way AngularJS brings added functionality to HTML. Imagine a world in which HTML has so many rich elements ( e.g. < accordion>, < grid>, < lightbox>, etc.) that we never have to manipulate a DOM to simulate them. To get some functionality out of the box, all that our app needs to do is assign attributes to items. Flexibility with filter Before displaying data on UI, filters filter the data and may include anything as simple as formatting decimal places on a list, reversing the order of an array, filtering a parameter-based array, or implementing pagination. Filters are designed to be stand-alone features, similar to instructions, independent from your device, but concerned only with data transformations. Less code All the points you have received up to now mean you 're getting to write less code. No need to write your own MVC pipeline. The view is described using more succinct, HTML. Without getters / setters, data models are easier to write. Data-binding means you don't have to manually insert data into the view. Also the directives are different from the software code, they can be written in parallel with limited integration issues by another team. Filters let you manipulate view level data without changing controllers. Unit testing ready The definition of AngularJS would be incomplete without speaking of its readiness for unit test. Dependency Injection (DI) links the whole of AngularJS together. Agular's unit tests will use dependency injection for unit testing .It mocks the data and injects into server. In reality, AngularJS already has a mock HTTP provider for controllers to insert fake server responses. It beats the more conventional way web apps are checked by creating individual test pages that activate a single feature and then communicate with it to see if it is working. Google assisted, and a great community of growth. Supported by IntelliJ IDEA and Visual Studio .NET IDEs. Limitations AngularJS is not a magic bullet. Some of its drawbacks are the backsides of its positive points, some of which are intrinsic to JavaScript inefficiency that could not be solved even with the strongest derivatives of its limitations are listed below: AngularJS is broad and complicated. With multiple ways to do the same thing, it's hard to tell which way is best for a particular task. Mastering AngularJS at the "Hello World" level takes significant effort. Different developers' coding styles and habits can complicate the integration of different components into a complete solution. When the project expands over time, you will most likely need to throw away current implementations and build new ones using different approaches. AngularJS implementations are poor in scale. More than 2,000 watchers will seriously lag behind the UI. This limits the complexity of your AngularJS forms , especially large data grids and lists. Best use cases of AngularJS If you want to build smart lightweight applications, AngularJS is your best bet. This TypeScript-based framework helps you to build interactive SPAs that are safe, maintainable, and easy to check. Some of the popular use cases for AngularJS are as follows: YouTube PlayStation three app for video streaming Anyone who likes to play video games would not have skipped the PlayStation 3 version of YouTube. Considering the vast popularity of YouTube, a structure will be needed. Because Google owns AngularJS, it has been leveraged to introduce a brand-new version of YouTube on PlayStation 3. The flexible architecture has helped Google reinvent the PS3 experience by replacing the traditional operating method with a fully new one.  They replaced mouse movements with basic keystrokes. With AngularJS usability, the features of native apps like YouTube PS3 can be extensively leveraged. AngularJS has made a greater contribution in playback video and smooth scrolling on the YouTube PS3. It's the latest ultra-modern and seamless experience of AngularJS, experienced by the crowd of gamers. eCommerce applications like T-Mobile T-Mobile discovered that its customers had to wait for content to be loaded while connecting to the app. So, to make it quicker and less complicated, they used AngularJS server-side rendering to reduce the time. They also used AngularJS so that they could use HTML parsing for search engine purposes.  This leading telecommunications leader has had tremendous success in their eCommerce app, which has generated a phenomenal search engine traffic. With AngularJS, the application interface has been revamped and turned into a smooth and powerful app. Real-time Data Application like weather.com Weather.com is one of the most popular real-time weather update websites. The credit for its success is given to AngularJS 's modular functionality of modules and directories that enable you to use the features of the app on mobile and smartphone devices.  The framework enables developers to build customizable widgets based on the device's specific needs. Using real-time data and dynamically presenting it made it available on the Web using AngularJS technology. What projects don’t need AngularJS AngularJS is super heroic, but there are situations where you can't use AngularJS. Websites with Static Content Small websites with lower targets and static content. These types of websites are better built with limited technical stacks and do not need to be used by AngularJS, as the technology will only add extra pieces of code that are not required by the website or a specific project. Example: landing pages, educational websites, event pages, etc. Limited Resources and Startups AngularJS is not a good idea to start with for small teams and limited resources. AngularJS needs the skillful tools necessary to solve fast problems in large-scale projects. Technology should also not be used for small projects; it can be developed with other available frameworks and does not require much technological facilitation. Game Apps and Heavy Analytical Apps AngularJS is not a gaming app. Other frameworks, such as React, can be used to build a highly interactive UI in games. AngularJS tests every document object model before it changes its position. It is not recommended to use AngularJS in any app which require strong complex mathematical analytics mostly which is used in gaming. Popular web apps built with AngularJS Sharing a list of some of the renowned web applications that are driven by a versatile and robust AngularJS framework: The Guardian The Guardian is a leading designer and publisher, winning a variety of competitions in these fields. The Guardian website UI is created as an AngularJS app.Guardian.com PayPal Papal is one of the world's largest Internet payment firms. This is another one of the big websites that use AngularJS.Paypal.com JetBlue JetBlue is one of the most famous airline companies in the United States as the online airline portal. The new edition of the JetBlue website uses AngularJS.Lego Lego is one of the world's leading producers of play materials. Its products are traded global and can be virtually explored at www.LEGO.com.Lego.com NetflixNetflixNetflix is an American MNC entertainment company. It focuses on and offers streaming media and video on demand online and DVD by mail.FreelancerFreelancer.com Freelancer – the global leading online workplace where understanding businesses and professional service provider go to work!WeatherWeather.com Weather.com is one of the top weather forecasting online report websites. It is also one of the biggest websites using AngularJS.YouTube for PS3YouTube App on PlayStation Owned by Google, YouTube is mainly used for video hosting and sharing. This is being developed using AngularJS framework. ConclusionWe can conclude that the AngularJS web app development framework surely has a wide range of powerful features that gives AngularJS an edge over its competitors like ReactJS. This is one of the primary reasons large-scale businesses are opting for AngularJS as their preferred choice of web development platform. To summarize the key points about AngularJS. It is easy to learn and master. It makes application stable and fast. A bunch of useful features in one framework. There are tons of reasons why you should choose AngularJS for your next web app. The World loves it. We mastered it.Crack the code. Explore our live online workshops on Angular and become a pro today!
6877
AngularJS: Top Use Cases and Reasons to Opt for Th...

AngularJS represents a structural framework for d... Read More

How to set up local environment for Angular 9

This article is a guide to building a solid atmosphere to facilitate the best Angular learning and work experience. Let us make sure that we have the best possible development experience and do not run into common issues with the development environment. Facing issues with the development environment is one of the biggest obstacles for someone new to the Angular ecosystem, perhaps even more so than the reactive concepts themselves. It is therefore crucial to get the environment correctly set up right from the start. The development environment must be easily upgradeable and create minimal issues over time due to things like semantic versioning. In this guide, I discuss how to set up your Angular Development environment using the Angular CLI method. I will talk about the prerequisites, how to install a CLI, how to build an initial workspace and starter app, and how to run the app locally to test your setup. Prerequisites You should be familiar with the following to use the Angular framework: HTML, CSS, JavaScript, Typescript Knowledge of TypeScript is helpful, but not essential. Development Environment Node NPM Editor-Visual Studio Code Angular CLI Setting up a Node Development Environment In this case, Node.js is used to create the backend of your app and can be replaced with any server-side technology you like, such as PHP, Ruby, or Python. However, Angular does not rely on Node.js, except for its CLI tool and for downloading NPM packages. To set up the best possible development experience, and if you do not have node yet installed: please visit the nodejs.org website and install the most recent version of node.  Please make sure that you use the long-term support version (LTS) instead of the latest version.Open a browser, type https:/nodejs.org/en/download/, and click the Windows Installer button. You will seethe LTS displayed along with the current version of the node. Go ahead and download the recommended or current version of the node. We will be using node for frontend tooling purposes and for running our development server. For this specific purpose, you would be likely to run into fewer issues if you employed the latest version. However, if you already have node installed (any version), there is a far better way to upgrade your node version than to run an installer.Instead of overwriting your current version of node with the latest one, let us use a simple command line tool that easily allows switching node versions. There are several advantages to using the command line tool:  It is very useful to be able to quickly change node versions if, for example, there are multiple projects to be maintained on the same machine, and each project needs different node versions.  With this tool, it will be much easier to upgrade to newer versions of the node in the future – we will not have to run the installer again on your machine. So, let us make sure you have at least some version of the node installed on your machine before you start. To check your version, run node -v in a terminal/console window. NPM package manager NPM is the Node Package Manager. This is a list for hosting node packages. It has also been used in recent years to publish front end packages and libraries such as Angular, React, Vue.js and even Bootstrap. Angular, the Angular CLI, and Angular apps depend upon features and functionality provided by libraries that are available as npm packages. To download and install npm packages, you need to have a npm package manager. The npm client command line interface is used to access NPM package manager which gets installed with node js. To check that you simply have the npm client installed, run npm -v during a terminal/console window. npm -v  v5.6.0 Install Angular CLI Angular CLI is the official resource for beginning and operating with Angular projects. It saves you from the mess of complicated configurations and builds resources like TypeScript, Webpack, and so on.  Like most modern frontend tools these days, Angular CLI is also built at the top of Node.js. Node.js is a server technology that allows you to run JavaScript on your server and build server-side web applications. However, Angular is the front-end code, so even if you need to install Node.js on your development computer, it would just be for running the CLI. When you create your production software, you won't need Node.js because the final bundles are static HTML, CSS, and JavaScript can be supported by any server or CDN. If you are building a full-stack web application with Angular, you may need Node.js to create the back end if you want to use JavaScript for the front end and back end. Deploy the Angular CLI  Open the terminal and type below command with help of NPM to install angular CLI: npm install -g @angular/cli Some useful commands using angular CLI  You can run many commands once you download Angular CLI, such as: To check version of CLI: $ ng version To add support to your project for an external library: $ng add To compile the Angular app in the output directory called dist.or in the output path defined; should be executed from inside a working space directory: $ng construct To retrieve or set Angular configuration values: $ng configure To open the official Angular Documentation (angular.io) in the browser and searches for a keyword: $ng doc To generate and/or change schematic-based files: $ng generate  To list the commands available and their brief descriptions: $ng help  To run lining tools on the Angular device code in the project folder: $ng lint To build a new workspace and an initial Angular app: $ng new  To run a custom target set for your project: $ng run  To develop and support your request, restore on file changes: $ng serve After you have installed Angular CLI, you will need to run one command to create a project and another to support it using a local development server to play with your program. Creating workspace and initialization of angular application: You can use Angular CLI to create your first Angular project by executing the below command in your command line interface: Step 1: Navigate to project directory $ cd ~/Dev/ (Go to your local directory Dev)  $mkdirmyProject(Create myProject directory in dev folder)  $cd myProject(navigating to myProject folder) Step 2: Creating an Angular app $ ng new helloworld The command ng new will prompt you to include default a feature in the initial request. Usethe Enter or Return key to acknowledge the defaults. Note: ‘Helloworld’ is the name of this project. Of course, you can select any appropriate name for your project. Because this is our initial set up, I'mgoing with‘hello world’ as a name for the front-end application. Step 3:Navigate to project and run local server $ cd /path/to/your/newly/created/app/  Like  $ cd ~/Dev/myProject/helloworld/  $ ng serve –open That will launch http:/localhost:4200/  * Note: ng serve command launches a server, searches for changes to your files, and rebuilds the software when you save changes * Step 4: Edit project Open file in dev/myproject/helloworld/src/app/app.component.ts: Edit the file and make some changes and save it. Changes will be highlighted:  Within app root (app root is in /myproject/helloworld/ for our app,), Run: ng serve –open or just navigate tohttp:/localhost:4200/ . The web UI will reflect the changes. With ng serve still running, make and save a new change in app.component.ts:  You will be surprised to see the changes automatically reflected in  http:/localhost:4200/  Step 5:Build app and get ready for deployment $ng build This command creates a new folder in your app root named "/dist/" which is your entire package, compiled and ready for shipment. Nice Flags optional:  Prod this creates a version of your app ready for production  output-path /to / your / path/ this changes the default path to create your Angular files  output-hashing none remove additional hash on your file nameConclusionIn this guide, we have gone through the steps to setting up a solid local environment to facilitate the best Angular learning and work experience. Following these steps, you will ensure that the development environment is easily upgradeable, minimizing the possibility of any issues arising over time due to things like semantic versioning. We have discussed how to set up your Angular Development environment using the Angular CLI method, the prerequisites necessary and walked through how to install a CLI, how to build an initial workspace and starter app, and how to run the app locally to test your setup. I hope this has been a useful guide and I wish you the very best Angular learning and work experience!
6277
How to set up local environment for Angular 9

This article is a guide to building a solid atmosp... Read More

Installation Guide to Jenkins

Jenkins is a Java-based open-source automation tool with plugins designed for ongoing integration. Jenkins is used to constantly develop and test software projects that help developers to incorporate project modifications and make it simpler for users to achieve a new build. The Jenkins allows developers to quickly locate and resolve flaws in a code base and to automatically test their structures. Jenkins can be changed and expanded readily on all operating platforms and various devices, whether OS X, Windows or Linux.  It immediately deploys code, produces test reports. During integration and continuous delivery, Jenkins can be configured according to the demands.System Requirements for Jenkins InstallationFollowing are the software and hardware requirements for installing Jenkins:Minimum hardware requirements:256 MB of RAM1 GB of drive space (although 10 GB is a recommended minimum if running Jenkins as a Docker container)Recommended hardware configuration for a small team:1 GB+ of RAM50 GB+ of drive spaceInstallation on WindowsYou must first install JDK. Jenkins promotes JDK8 only at this time. Jenkins can be installed when Java is running. The recent Jenkins package for Windows (presently version 2.191) can be downloaded. Click on the Jenkins exe file to unzip the file into a folder.To begin the installation click on "Next."To install Jenkins in another directory, click the "Change..." button. I'll hold the default choice in this instance and click on "Next."To begin the installation process, click on the "Install" button.The installation is being processed.When finished, you can finish the setup by clicking the "Finish" button.The URL http:/localhost:8080 will automatically be redirected to a Jenkins local page or the browser can be pasted.Copy and paste the password from the C:\Program Files (x85)\Jenkins\secrets\initialAdminPassword file for Jenkins unlocking. Click on the button "Continue."The suggested plugins or chosen plugins that you select can be installed. We will install the suggested plugins to maintain it easy.Wait for the complete installation of plugins.The next step is to build a Jenkins admin user. Click "Save and Continue." Please enter your information.To finish the Jenkins setup, click on "Save and Finish."To begin Jenkins, click on "Start using Jenkins."Below is the default page of Jenkins.Jenkins Installation on Linux/CentOS 7 systemMake sure that you are signed in as a user with sudo privileges before continuing this tutorial.The first step is to install Java, Jenkins being a Java application. To set up OpenJDK 8 package, execute the following command:$ sudo yum install java-1.8.0-openjdk-develJenkins does not currently support Java 10 (and Java 11). Make sure that Java 8 is the default Java version when multiple Java versions are installed on your computer.The next step is to allow the repository of Jenkins. To do so, use the following curl command to import the GPG key:$ curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | sudo tee /etc/yum.repos.d/jenkins.repoAdd your system's repository with:$ sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.keyUpon activation of the repository, install the recent stable Jenkins version by typing:$ sudo yum install jenkinsUpon completion of the installation, begin the Jenkins service with:$ sudo systemctl start jenkinsTo verify if it has been successful, check with below command:$ systemctl status jenkinsSomething like this you should see:Outputjenkins.service - LSB: Jenkins Automation ServerLoaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)Active: active (running) since Thu 2018-09-20 14:58:21 UTC; 15s agoDocs: man:systemd-sysv-generator(8)Process: 2367 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS)CGroup: /system.slice/jenkins.serviceFinally, allow the Jenkins service to start on system boot $ sudo systemctl enable jenkinsOutputjenkins.service is not a native service, redirecting to /sbin/chkconfig.Executing /sbin/chkconfig jenkins onOpening Firewall portIf you install Jenkins on a remote CentOS firewall-protected server, port 8080 is necessary. To open   the required port, use the following instructions:$ sudo firewall-cmd --permanent --zone=public --add-port=8080/tcpsudo firewall-cmd --reloadSetting JenkinsOpen your browser and type in your domain or IP address followed by port 8080 in order to set your fresh Jenkins setup:http://your_ip_or_domain:8080Below screen will be displayed which prompts you to enter the admin password generated during setup:To print the password on your terminal, use the following instructions: $ sudo cat /var/lib/jenkins/secrets/initialAdminPasswordThe alphanumeric password should be 32 characters long, as shown below:Output 3226*****************************Copy your terminal password, paste it in the password field for the Administrator and click on Continue.On the next screen, you are asked if you would like to install or pick certain plugins. To begin the installation process instantly, just click on the Install suggested plug-ins box.When the installation is finished, the first administrative user is prompted for the setting. Fill in all the necessary data. and click the Save and Continue.On your next page, the URL for the Jenkins instance will be requested. An automatically produced URL will be added to the URL field.To finish the configuration, click the Save and Finish button to verify the setup.Finally,  click start using  Jenkins Button to start the process and the user we created in one of the past steps as admin user will log in Jenkins dashboard.You have effectively mounted Jenkins on your CentOS scheme when you have reached this point.Jenkins Installation on MacPrerequisiteA Mac machine with Mac OSX Yosemite or higher with admin accessInstallation of Java Development Kit on the machine.Access to Git, Svn, etc. remote repository.Download Jenkins installer.pkg file from Jenkins ' official website and get through the wizard setup.The jenkins setup wizard sets up a distinct Jenkins user on your system.We need to make some changes in the ‘Users & Groups’ section as well. Do follow below steps.Open ‘System Preferences -> Users & Groups’Click on the Lock icon located in the bottom left corner which reads, ‘Click the lock to make changes’. Enter your login password.Under the ‘Other Users’ section you may see the user without any name but with admin rights. This is our Jenkins user. Let's rename it.Right-click the empty user and select Advanced Options. This will show you all the details. Give the ‘Full name’ as Jenkins. Press OKClick on ‘Reset Password’. Enter a new password and make sure that you remember this.Now our Jenkins user is almost ready.This is just like another mac user with admin rights.Now restart your Mac machine and log in with Jenkins user with the password which you just reset.Click the lock to save the changes and restart the system to login with Jenkins user account.In localhost Jenkins resides at port 8080.Open your browser, go to localhost:8080 and make the original set-up, which consists of installing some plugins and creating account for safety purpose.Setting Jenkins as Launch agentJenkins operates by default as a daemon. A daemon is a non-interactive background that operates in the entire scheme and is not linked to a particular user.Much of CI runs simulators and other GUI apps, so another option is required. You can modify Jenkins as a launch agent to resolve this. On behalf of the user, a launch agent operates behind the scenes.You need to edit the settings folder and alter your place to begin rebooting automatically if you want to alter how the Jenkins process is started.Enter the below command to unload Jenkins as a Daemonsudolaunchctlunload/Library/LaunchDaemons/org.jenkins-ci.plistNext, migrate to the LaunchAgents folder the.plist file which defines how Jenkins will be running.sudo mv /Library/LaunchDaemons/org.jenkins-ci.plist /Library/LaunchAgents/Start the jenkins again and now it will run as launch agent.
9692
Installation Guide to Jenkins

Jenkins is a Java-based open-source automation too... Read More

How to Install Docker on Windows, Mac, & Linux: A Step-By-Step Guide

Docker is intended to benefit developers and system managers and makes it a component of a number of toolchains for DevOps (developers + activities). This implies that designers can concentrate their attention on writing code without worrying about the scheme that it will eventually run on. It also gives them the opportunity to take advantage of one of the thousands of programs intended to operate as part of their implementation in a container at Docker. Docker offers flexibility for the operational team and decreases possibly a smaller overhead footprint and lower overhead the number of devices required.Let’s now deep dive into installation steps for docker on different platforms.Install Docker on Windows The community version of Docker for Microsoft Windows is Docker Desktop for Windows.Download from Docker Hub. System RequirementsThe software and hardware requirements need to operate Client Hyper-V on Windows 10 effectively are:Software Requirements:Windows-10 64-bit system requirements: Pro, Enterprise or EducationWindows characteristics of Hyper-V and Containers must be activatedHardware Requirements:The support for virtualization of hardware-level Client Hyper-V in BIOS settings must be allowed with the 64-bit processor with second-level address translation (SLAT). Minimum 4 GB RAMTo run Docker Desktop, Microsoft Hyper-V is needed. The Windows installer Docker Desktop allows Hyper-V and restarts your computer if needed. VirtualBox no longer operates when Hyper-V is activated. All VirtualBox VM images are however maintained.The DOCKer VMs (including the default one generated during the installation of the Toolbox) are no longer started. VirtualBox The Docker desktop can not use these VMs side-by-side. You can still handle remote VMs using the docker.What is included in Installation?The installation of Docker Desktop consists of the Docker Engine, Docker CLI, Docker Compose, Docker Machine, and Kitematic. Docker Desktop containers and images are shared among all user accounts on the machines where they are installed. All Windows accounts are building and running containers using the same VM. Nested virtualization situations, such as operating Docker Desktop with VMWare or Parallels, might operate. See Running Docker Desktop in nested situations for more data.Installation steps To run the installer, double-click Docker Desktop Installer.exe to install Docker Desktop on Windows. The installer can be accessed from Docker Hub if you have not previously downloaded (Docker Desktop Installer.exe). It typically downloads to your download directory or can be executed at the bottom of your internet browser from the latest download bar.Follow the installation wizard directions for licensing, authorizing the installer and proceeding with the installation. If advised, authorize your system password during the installation of the Docker Desktop Installer. The networking elements, connections to the applications of Docker and the management of Hyper-V VMs need to be privately accessible.Click Finish in the setup window and launch the application Docker Desktop.Start Docker DesktopAfter installation, Docker Desktop will not begin automatically. Search for Docker and select the search outcomes for Docker Desktop.If the whale icon remains stable in the status bar, Docker Desktop is up and running and can be accessed from any terminal window.You also get a pop-up message with the next steps, as well as a link to this documentation, after the Docker Desktop app is installed.When you're done initializing, click on the whale icon in the Notifications region and pick About Docker to check that your recent version is available.Install Docker on MacThe very first step is to download the Docker Toolbox for Mac. Get the downloadable link- Download from Docker HubSystem RequirementDocker Desktop for Mac starts only when all these requirements can be met:Mac hardware must be 2010 models or newer, including Extended Page Tables (EPT) and Unrestricted Mode, with Intel hardware to provide memory management unit (MMU) virtualization. This support can be checked to see if the following command is being run on your computer: sysctl kern.hv_supportmacOS Sierra 10.12 and newer versions of macOS are endorsed. The upgrade to the newest version of macOS is recommended.VirtualBox (incompatible with Docker Desktop on Mac) before version 4.3.30 must not be installed. It's alright if you have a newer VirtualBox version installed.Installation stepsDouble-click Docker.dmg and drag the whale Moby to the application folder to open the installer.In the Applications directory, double-click Docker.app to launch Docker. In the instance below, the applications folder is in the Grid view modeYou are led to allow Docker.app with your system password after starting it. Privileged access is required to install Docker app connections and networking elements.The whale in the top status bar shows that Docker runs from a terminal and is available.You will also get a success message, with the next steps and a link to this documentation, if you have just installed the app. To reject this pop-up, click on the whale in the status bar.To get Preferences and other options, click on the whale (whale menu).To check that you have the latest version, select About Docker.Notes:Getting started provides an overview of Docker Desktop for Mac, basic Docker command examples, how to get help or give feedback, and links to all topics in the Docker Desktop for Mac guide.Troubleshooting describes common problems, workarounds, how to run and submit diagnostics, and submit issues.Install Docker on LinuxLet’s use a Ubuntu example to begin installing Docker. If you don't already have it, you can use Oracle Virtual Box to install a virtual Linux example. A straightforward Ubuntu server mounted on the Oracle Virtual Box is shown in the following screenshot. There is an OS user called a demo defined with full root access to the scheme:Step 1 − We must first make sure you have the correct version of the Linux kernel running before installing Docker. Only version 3.8 or greater is intended for Docker on Linux kernel. We can do this with the instructions below.Uname: The system data for the Linux system is returned by this method. This method will return the kernel name, kernel release, kernel version information on the Linux system.uname -aa − Used for ensuring the return of the system data.Step 2 − You need to install packages from the internet onto the Linux system via the following command, the recent packages can be updated to the OS.apt-get Optionssudo− The sudo command is used to make sure the command runs with root access.update− Update option ensures that all packages on the Linux system are updated.sudo apt-get update Step 3- The next step is to install the certificates needed to later download required Docker packages for a job with the Docker site. The following command can be used.sudo apt-get install apt-transport-https ca-certificates Step 4− Adding fresh GPG key will be the next step. This key must guarantee that the required packages for Docker are all encrypted.This command is intended to download the key from hkp:/ha.pool.sks-keyservers.net:80 and add it to the adv keychain by means of the ID58118E89F3A912897C070ADBF76221572C52609D. Please note that to download the necessary Docker packages, this specific key is needed.Step 5 − Next, you need to add the appropriate site to docker.list of the apt package manager, depending on the version of Ubuntu which you hold, to allow it to detect and download the Docker packages from the Docker site.Precise 12.04 (LTS) ─ deb https://apt.dockerproject.org/repoubuntu-precise mainTrusty 14.04 (LTS) ─ deb https://apt.dockerproject.org/repo/ ubuntu-trusty mainWily 15.10 ─ deb https://apt.dockerproject.org/repo ubuntu-wily mainXenial 16.04 (LTS) - https://apt.dockerproject.org/repo ubuntu-xenial mainecho "deb https://apt.dockerproject.org/repo ubuntu-trusty main”     | sudo tee /etc/apt/sources.list.d/docker.listStep 6 –The next step is to update the packages on Ubuntu scheme with the apt-get update command.Step 7 ‐ if we want to make sure that the package manager points towards the correct repository then we can do this by issuing the apt-cache command.apt-cache policy docker-engineStep 8– Edit the update command apt-get to guarantee that all local system packages are up-to-date.Step 9- The Linux-image-extra-* kernel packages that allow the user to use the aufs storage driver are required for Ubuntu Trusty, Wily and Xenial. The newer variants of Docker use this engine.The following command can be used:sudo apt-get install linux-image-extra-$(uname -r)  linux-image-extra-virtualStep 10− Installing Docker is the final step and this can be done with the following command:sudo apt-get install –y docker-engineHere, apt-get utilizes the installation feature to download and install Docker from the Docker page. The Docker engine is the official package for Ubuntu based devices by the Docker Corporation.The docker running version can be checked by running below command:docker version
6040
How to Install Docker on Windows, Mac, & Linux...

Docker is intended to benefit developers and syste... Read More