www.cognixia.com
Delivering Continuous Value
with Visual Studio Application
Lifecycle Management (498)
www.cognixia.com
www.cognixia.com
www.cognixia.com
Define an effective end-to-end Software Development Lifecycle (SDLC)
Understand the value of an end-to-end view of Application Lifecycle Management (ALM) tools and practices
Understand that an observable problem may be indicative of a more general
process issue; explain the difference between optimising a piece of the ALM
process, such as manual testing and optimising the entire ALM process
Explain the benefits of fast feedback
Explain the importance of fast feedback related to communicating
requirements, explain the benefits of end customer feedback to early software
iterations
Implement strategies to reduce end-to-end cycle time
Identify bottlenecks in the delivery process, identify metrics that highlight
bottlenecks, create potential solutions whose effectiveness can be validated,
understand the relationship between work in process (WIP) and cycle time
Implement strategies to improve software quality
Identify process steps that introduce defects, understand the end-to-end quality process, bring quality efforts early in the development cycle
Implement strategies to reduce waste
Identify wasteful activities, create strategies to eliminate waste, measure the effectiveness of waste removal activities
Create a process improvement plan
Create strategies for implementing organisational change, identify key metrics to be tracked during the improvement effort, create consensus for the change
www.cognixia.com
Define the ALM process
Role of different ALM processes
Understand the cost and benefits of the key ALM processes, including agile, scrum, waterfall and Capability Maturity Model Integration (CMMI)
Implement a scrum/agile process
Establish self-organising teams; holding a scrum/agile planning meeting, hold
daily scrums/stand-up meetings, hold retrospective meetings, hold scrum
review meetings Define a scrum/agile process for a team
Establish criteria on when to cancel a sprint/iteration, establish tooling and
process for scrum/agile artefacts, establish the scrum definition of "done",
determine sprint/iteration length, determine how to handle backlog items/user
stories not completed in a sprint/iteration, determine how to monitor
sprint/iteration progress, use collaborative tools Implement Microsoft Solution Framework (MSF) for CMMI process improvement
Establish project drivers (scope-driven, date-driven), assign product requirements to iterations, manage changes, manage issues
Define a software iteration
Plan a release
Identify a flexibility matrix, identify releases based on priority items in flexibility
matrix and release criteria, resource planning (scrum team is responsible for
allocating team members), identify techniques to optimise a team that is
geographically distributed, select a project methodology, risk management Define a project-tracking process
Plan and manage a portfolio of multiple projects, identify a project-tracking tool
and an associated process (triage process, bug management), define how to
manage effort, determine team forecast management, define a prioritisation
scheme, determine how to validate project health Scope a project
www.cognixia.com
Scope the effort for a release, define an architecture design process, define
scope boundaries (is/is not list), determine the definition of "done", define a
process when effort estimates are significantly inaccurate
Define end value for the software iteration
Elicit requirements
Define project requirements, review and clarify requirements, define
acceptance criteria, define UI platform requirements (web, mobile), assign a
business value
Estimate requirements
Manage and assign effort estimates (assign story points); resize user
requirements into smaller, manageable pieces; execute task breakdown;
estimate the requirements baseline Document requirements
Define acceptance criteria, list requirements, add requirement details, design UI storyboards
Prioritise requirements
Identify requirements that are critical path, identify must-have requirements,
enable the entire team (including customers) to participate in requirements
prioritisation, identify dependencies
Develop customer value with high quality
Define code quality indicators
Perform code review, including security and performance analysis; analyse code for common defects; calculate code coverage; perform architecture validation
Incorporate unit testing
Establish unit test standards, develop a strategy for adding unit tests to existing
applications, select the unit test type, establish the code coverage target, use
shims and stubs to isolate your application
Develop code
www.cognixia.com
Develop maintainable code; define coding standards; define application
architecture; define configuration management process and tooling, including
source control tree, branching strategy, solution structure, source
control/check-in policy; manage multiple repositories using Git; use
architecture, model and design tools; use quality and diagnostic tools Validate quality
Organise test artefacts, such as test cases, suites, plans and requirements;
define test strategy; manage test execution; perform cloud-based load testing;
identify test types and associated tools; identify and configure environments;
analyse test runs Customise a team project
Customise a work item, customise work item queries, customise Team Portal, identify areas and iterations, manage roles and associated permissions
Integrate development and operations
Implement an automated deployment process
Architect an automated build and deploy workflow, integrate automated tests,
automate deployment into both test and production environments, review
diagnostic logs for builds, manage releases including Release Management
Implement pre-production environments
Automate the creation of virtual test lab environments, automate deployment into virtual test environments
Manage feedback between development and operations
Implement tools to simplify communication; identify, measure and report key
analytics and performance indicators, such as cycle time and mean time to
repair (MTTR); create appropriate shared artefacts and process to facilitate
communication; standardise required artefacts for defect reports; create
strategies for test case reuse (both automated and manual) in production;
monitor an application in production to optimise usage and performance
Troubleshoot production issues
Gather defect data from bugs in a production setting, provide actionable data to
the development team, monitor applications running in production for potential
www.cognixia.com
issues, manage incident response times collaboratively between development and
operations, use Application Insights appropriately
www.cognixia.com