Application Lifecycle
Management (ALM), as defined by Wikipedia, is the continuous process of
managing the life of an application through governance, development,
operations, and maintenance.
ALM facilitates and standardizes the process of
developing customizations (from idea to working software), supports the
transition through your SharePoint environments to your production
environment, and supports standard operational activities such as
maintenance, upgrade, and patching until the end of life occurs. A
consistently applied ALM process improves the governability of
applications and customizations introduced to your SharePoint 2013
production environment.
This section further describes the three core
aspects of ALM, as well as the supporting tools required and processes
to be followed within your particular SharePoint 2013 project.
Three Application Lifecycle Management Perspectives
Application Lifecycle Management can be
looked at from three core perspectives. These are the governance,
development, and operations perspectives. Figure 1 provides an overview of each of these perspectives.
FIGURE 1
The governance perspective largely deals with:
- Project management, planning, coordinating, managing changes, and
improvements to applications, and solutions in your SharePoint 2013
environment.
- Key decision making during the life cycle of your customizations
and the SharePoint 2013 environments, from inception to end of life.
- Development of the business case to justify and get approval for the investment.
- Standard application project management to manage the application over the course of its development.
- Application portfolio management of the suite of applications and
solutions in your SharePoint 2013 environments, including deciding on
new applications that are required, which should be improved or retired.
The development perspective is focused on the
activities that make up the typical development and maintenance/patch
life cycle, including:
- Following a software development methodology, most commonly based
on Agile or waterfall-based approaches. Common methodologies and
frameworks include SCRUM, MSF, RUP, and Kanban.
- Requirements definition, design, development, testing, quality assurance, and deployment and release packaging.
- Developing maintenance fixes to resolve defects and developing new
features and enhancements to release to your production environments.
The operation perspective, in relation to customizations, is focused on:
- Understanding, learning, rehearsing, and preparing to deploy new
customizations and maintenance releases through your successive
SharePoint 2013 environments until they are safely released and
deployed to your production environments.
- Monitoring customizations in your production environment and reporting issues to the governance and development teams.
- Improving and tweaking the configuration of applications and production environments.
As a developer, you may think, that’s
interesting, but I am interested only in the development perspective.
Well, the reality is that each of these perspectives is symbiotic,
complementary, and dependent on each other. Poor performance in
operations and governance teams and roles can cause problems for the
development team and roles. Similarly poor development processes can
cause headaches for operations and governance teams and roles.
A mature and well-defined application life cycle
management process, which encompasses these three perspectives, can
help your SharePoint team overcome these issues.
Application Lifecycle Management Tools
Microsoft Team Foundation Server (TFS)
is the application life cycle management tool at the heart of most
SharePoint projects. Microsoft Team Foundation Server 2012 provides the
following “must-have” features for a team considering major development
projects for the SharePoint 2013 platform:
- Methodology or process templates
— Team Foundation Server 2012 supports various agile and waterfall
methodologies through the use of process templates. TFS provides
out-of-the-box process templates, including Microsoft Solutions
Framework (MSF) for Agile Software Development (v6.0), MSF for CMMI
Process Improvement (v6.0), and Visual Studio SCRUM (v2.0). In
addition, you can use a number of third-party templates, such as
Kanban. See the MSDN Article “Choose a Process Template” for more
details at http://msdn.microsoft.com/en-us/library/ms400752.aspx.
- Source code management — Team
Foundation Server enables development teams to work on the same code
project at the same time. It includes features such as check-ins, code
branching, merging, shelving, labeling, concurrent check-outs, check-in
policies, and the association of check-ins to work items.
- Work item tracking — Work items
consist of requirements, tasks, bugs, issues, and test cases. Team
Foundation Server enables flexibility for how these work items are
managed via an extensible work item tracking system. This tracking
system controls the states a work item can be in and how the state
transitions should occur. This results in better documentation,
commenting, visibility of the history of issues, productivity, and
discipline for the members of the project team.
- Build automation — Team Foundation Server provides great build management tools. Build management
refers to the automatic creation and processing of new builds based on
updates to code projects. Team Foundation Server supports manual
builds, continuous integration, rolling builds, gated check-in, and
scheduled builds. For example, you can schedule a nightly build, deploy
this build to a virtual machine, and run a series of tests ready to be
analyzed in the morning.
- Project management and reporting
— Team Foundation Server 2012 provides reports and dashboards for you
to use to assess and report on various aspects of your project’s
progress. For example, if you have implemented the agile process
templates, you can track the progress of the iteration backlog and plan
items for the next sprint.
Your project manager and technical lead must be
sufficiently skilled in the configuration, optimization, and use of
Team Foundation Server 2012. For example, if the customer demands an
update on your team’s progress, can your project manager instantly
generate a report to provide an update? If your developers haven’t been
updating their work items, or your testers haven’t been logging and
tracking defects, you won’t have the data to show your customer. If you
don’t have the data, you will struggle to report on any part of your
team’s progress. Team Foundation Server won’t solve bad management, bad
judgment, and bad developer habits or traits. Therefore, your project
manager and technical lead must instill discipline and structure in
your development, test, and release packaging team.
Understanding Key Development Tools
SharePoint 2013 has evolved, improved,
and extended many of the existing development tools used by SharePoint
developers today. New development tools have also been provided to
develop SharePoint apps.
At the heart of the SharePoint 2013 solution
development is Microsoft Visual Studio 2012. Microsoft Visual Studio
2012 is a powerful, integrated, and mature development environment that
caters for the full development life cycle of customizations produced
for your SharePoint 2013 farm. It provides a number of starting-point
solution templates to begin development of SharePoint customizations,
combined with deployment packaging tools to create Windows solution
packages required by SharePoint to deploy fully and partially trusted
assemblies and artifacts to your various environments.
Microsoft Visual Studio 2012 provides extensive
support for the full application development life cycle. This includes
features to plan and track your project, design functionality, code
development tools (write, unit test, debug, analyze, and profile),
build, testing (manual and automated tests, performance and stress
tests), and deployment into virtual environments for further testing.
Visual Studio 2012 extensions are available to
provide new SharePoint development tools, namely the Microsoft Office
Developer Tools for Visual Studio 2012. See the Downloads section on
the MSDN site at http://msdn.microsoft.com/en-us/office/apps/fp123627.
Based on my previous experience using the
SharePoint toolset in Visual Studio, it provides a great starting point
to learn about new types of customization options of SharePoint 2013.
In larger projects and teams, depending on the type of customization,
other approaches may be preferable. It depends on what customization
you are developing.
SharePoint Designer 2013 is a WYSIWYG
(what-you-see-is-what-you-get) tool that enables power users to
configure elements of SharePoint sites. Although you could argue that
this is not a true development tool, it does provide a deep level of
support for customizing sites without requiring any code to be written.
It’s great for small changes, tweaks, modifications, and extensions to
existing site features. In addition, SharePoint Designer 2013 changes
are scoped automatically to a single site collection and not your
entire farm.
Finally, the new Office 365 development
tool enables developers to start building apps for Office or SharePoint
directly out of a browser window. To get access to these tools,
Microsoft requires you to sign up for an Office 365 Development site.
This site provides features to help you develop and publish apps to
your corporate catalog or Office Store. For more information, see http://msdn.microsoft.com/en-us/library/jj220038(v=office.15).aspx.