Adopting modern engineering processes and tools at Microsoft IT

As written on
Microsoft IT is adopting agile development methods as part of the move to modern engineering. Learn how we’re using Azure and Visual Studio Team Foundation Server, and about our processes for agile development and automated testing.
To support our customers and partners, Microsoft IT must respond more quickly to evolving business needs. Taking six months to deliver an application or an update is no longer an option. We need to deliver value faster and more efficiently. To increase our responsiveness, we started the journey to modern engineering. Our goal is to release new functionality every day in a process called continuous integration, continuous delivery.
An important part of this journey is adopting agile development processes and tools. We’re moving to an iterative design process and using agile methods to develop new services and features. And to help our engineers understand how to apply agile methods in their day-to-day work, we’ve embedded a set of practices, called Engineering Fundamentals, into our development environment. We’ve also set up tools and processes to run a project using agile methodology. This includes:
  • Moving to Visual Studio Team Services to manage our backlog and work items.
  • Reducing the Dev/Test environment footprint using virtualized environments hosted by Microsoft Azure.
  • Improving build and test automation.
  • Establishing a pipeline for continuous integration and continuous delivery using Visual Studio Team Services.
While we’re still working toward our goal of releasing every day, we’ve already shortened our release tempo from as long as six months to as little as two weeks.
Using agile methodology for planning and design
In the modern engineering model, design and architecture are iterative processes. Instead of using the traditional, slow process of creating detailed plans up front, we create sketches of the future state design at a relative level of detail and fidelity. Then we use rapid prototyping to validate and refine our design and get feedback about how it works. Everyone on the team applies deep and shared customer knowledge in every design decision. Throughout the design process, we solicit ideas from a diverse audience and draw upon the work of other teams.
Applying the Engineering Fundamentals
Each sprint team applies them to each project. A checklist defines every step that an engineer should take in the modern engineering approach to do each development task. This encourages engineers to think not only about what they’re delivering, but also about how they’re delivering it.
Engineering Fundamentals serve as requirements, and each fundamental has acceptance criteria that features inherit. Sprint teams make sure that the service they deliver adheres to the fundamentals. New employees use them as guiding principles to learn how to do engineering in our organization. And the Engineering Fundamentals are embedded in Visual Studio Team Services—where the engineers do their daily work—so they’re easy to find and use, as shown here.
The Engineering Fundamentals can be summarized as follows.
Continuous delivery
Dynamic and on-demand environment provisioning. Engineers can, at any time, provision an environment that includes all of the prerequisite components and dependency services, so that when code is deployed, it can run the designated functions.
Continuous integration. Engineers can, at any time, start an unattended build for a check-in that produces a functional build in minutes, which is deployable to any environment without competing for resources.
Continuous validation. Engineers can, at any time, start an automated validation process for a deployment that increases release readiness without manual effort, in minutes.
Continuous service deployment. Engineers can, at any time, start an unattended deployment process for a build that takes minutes in a functional environment without competing for resources.
Customer focus
Safe testing in production. Engineers can, at any time, start tests to learn from experimentation or prove service health.
Know the stakeholders deriving value from the service. Engineers keep a relentless focus on stakeholders: users, customers, and partners. This helps them communicate requirements and translate them into features, user stories, and tasks that produce an output that delights the customer.
Core engineering practices
Ready to code. Engineers can, at any time, check out code to any development environment (local or remote) to compile, run, debug—all within minutes.

Ready to build. Engineers can, at any time, provision a development environment with all of the prerequisite components, so that code can be checked out, compiled, and run.

Componentization. Engineers use componentization to make the codebase easier to build, compose, and deploy.

Security and privacy compliance. All services are highly secure and comply with security and privacy standards. Engineers integrate security infrastructure and tools into the continuous delivery process/pipeline.

Service health, analytics, and monitoring. Engineers use telemetry and data to form insights about the user experience, system health, the business value of the service, and to support automation.

Using Azure to improve agility

On-premises deployment takes a lot of manual work to configure and manage servers. Also, automated deployment in this scenario requires custom PowerShell scripts. To support continuous integration and agile release processes, we moved projects from Microsoft Team Foundation Server running on-premises to Visual Studio Team Services on Azure. Dev/Test environments are now virtualized. We deploy a complete virtual environment with a click. And we use Visual Studio Team Services to create automation pipelines to promote code, create environments, and to kick off tests.

Using Visual Studio Team Services agile and scrum templates, we set up projects in a few minutes. Templates also support uniform processes across teams, so it’s easier for engineers to move between projects. And because release manager includes a library of scripts, we need less custom code to seamlessly promote a build through development, staging, and production.

To increase speed and agility, we incorporate other Azure services into our solutions. When solution components must remain on premises for security reasons, we use Microsoft Azure Hybrid Connection Manager to integrate them with cloud services. New applications are entirely Azure-based.

Automating build and test

The biggest challenge in moving to an agile, continuous delivery model is ensuring the quality of the code. Pushing code into production without enough testing could break the build. Handling this issue in an agile manner requires evaluating risks and mitigating them proactively. Safety is important, but so is knowing which risks are acceptable.

To manage risks, we put modern engineering tools and processes in place that help prevent production problems and that mitigate problems before customers experience them. Test automation is an important part of this. Previously, code was handed off to the test team, and they executed one or more tests against each component of a feature or solution. For example, on a Bing site, the ability to navigate to a search page might be one test case. Another might be the ability to see the search box and another the ability to type in the search box. Another might be to get a set of results. Each test succeeds or fails. Testing each component separately in this manner is time-consuming.

Today we use a different approach. Engineers write code for functional tests based on end-to-end scenarios. Scenario-based testing puts the customer experience first. It addresses these questions: What is a customer really going to do? What are the key scenarios? What must work? What are the critical elements to test? How can we automate the tests? We no longer have explicit tests for each component, but rather use functional tests of outcomes. For example, a functional test might get search results for a query. To get faster turnaround, the team determines what minimum level of quality is required to ship the code. The goal is to test and correct failures faster.

Production-ready check-ins

We use build definitions in Visual Studio Team Services to support gated, production-ready check-ins. Code must pass tests to be promoted to the next phase of testing or deployment. If code fails to pass a test in any phase, the engineer must fix the code and then check it back in for retesting.

The phases are as follows:

  • An engineer tests code on a local computer.
  • The code is checked into a branch and incorporated into the daily build that includes all check-ins from the last 24 hours in an integrated environment with other systems that the new code has dependencies on. First, an automated build verification test runs, then automated tests run against the environment.
  • We manually test the build against scenarios that weren’t covered in automated testing.
  • Stakeholders/customers test the feature or application to verify that it meets their requirements.
  • The code is deployed into production. It’s deployed to a limited set of users first, and then if there are no issues, released to additional sets of users.

Improving business value and customer satisfaction

We still have a long way to go on our journey to modern engineering, but our efforts are already yielding benefits. We’re able to maintain a consistent and predictable release cycle and deliver updates and enhancements frequently. This way our development efforts yield business value faster. Using single source control within Visual Studio Team Services has helped us increase code reuse for more efficient development. Also, applications are “production ready” at release, and rework is reduced. Finally, breaking down releases into smaller chunks has reduced risk because all features represent two weeks of effort rather than several months.

Best practices

We found some practices that worked well when adopting the processes and tools for modern engineering.

To run fast, first slow down

Balancing the need to make infrastructure improvements with ongoing business needs for new functionality was a challenge. Stakeholders agreed on priorities and timelines to make sure that we would lay a good foundation. We made the right investments early, such as in test automation. Changing the infrastructure and moving from six-month to two-week release cycles took about a year. Before we could run fast, we first had to slow down.

Let one team manage migration to Visual Studio Team Services

A single team was responsible for moving projects from Team Foundation Server to Visual Studio Team Services. Team members became familiar with the steps and tools involved and handled the process more efficiently as they gained experience with multiple migration projects. This process saved time and headaches.


2016 U.S. State of Customer Service

By Tricia Morris as written on
As customer service and the customer experience become key differentiators for brands and organizations across all industries around the world, it has never been more important to know as much as you can about customer service expectations, perceptions, preferences and trends so that your organization can not only move forward, but move ahead when it comes to customer service and engagement.
Below is a sneak peek of just a few of the survey responses from United States consumers polled as part of Microsoft’s 2016 State of Global Customer Service Report, which also includes responses from 4,000 additional consumers across Brazil, Germany, Japan and the United Kingdom. This year’s report also breaks out the data by age groups, revealing some fascinating insights into where customer service expectations and preferences are heading.


strengthen customer relationship - managed solution

Strengthen Customer Relationships And Deliver A Superior Experience With CRM

Your customers likely interact with more of your employees than just a designated sales representative. A customer may need to speak with customer service or could be connected to another sales representative if theirs is unavailable. Being transferred around from one representative to another or put on hold because one of your employees doesn’t have the right answer is frustrating. Connect your entire team with a customer relationship management (CRM) solution so each of them can provide every customer with an amazing customer experience.
In this digital era, today’s customers expect quick answers when they contact your business. If your sales and customer services teams can’t be responsive, then your customers will likely turn to your competitors. Download “Redefine Your Reality: Let Office 365 and Microsoft Dynamics CRM take your business to places you CAN imagine,” an infographic, to learn how to deliver an amazing customer experience by deploying a robust CRM solution, like Microsoft Dynamics® CRM.
Microsoft Dynamics CRM offers a centralized location for marketing and sales data, as well as customer-centric data and can be easily integrated with your existing Office® 365 solution. Your sales representatives can create a customer account and manage proposals and contracts, current and historical sales orders, product specifications or delivery preferences, and other important information for each customer within this powerful CRM solution. With all of your detailed customer information within easy reach, any of your sales and customer services employees can access a customer account and answer questions quickly and accurately.
You can also create online connections with Microsoft Dynamics CRM, which adds a new dimension of customer engagement and support. You can connect with popular social media sites and listen in to what customers are saying about your products or business, as well as interact with customers on these networks in real-time. In addition, you can create an online support portal that offers a searchable knowledgebase that customers can use to learn more about your products and services. These online connections can strengthen communication and customer satisfaction.
Deliver a satisfying experience that your customers won’t forget. Download the infographic and contact Managed Solution for more information about providing a superior customer experience with Microsoft Dynamics CRM.
For information on deploying Microsoft Dynamics CRM in your organization, please call us at 800-257-0691 or fill out the contact form below and an expert will contact you shortly.

[vc_row][vc_column][vc_column_text]Take business to new heights - managed solution

Redefine Your Reality And Take Business To New Heights

Business owners have high hopes for their companies and often envision where they can take their business next. Deploy powerful business management technology, such as Office® 365 with Microsoft Dynamics® CRM, and reinvent your business, taking it to all the places that you can imagine. With the support of these modern solutions, you can redefine your reality, breathe new life into sales, and drive growth.
Many successful businesses already use powerful office solutions, such as Office 365, to prepare documents, convey data, and interact with prospects and customers. Office 365 also offers a powerful foundation for other important business management solutions, including Microsoft Dynamics® CRM, a robust customer relationship management (CRM) solution. Download “Redefine Your Reality: Let Office 365 and Microsoft Dynamics CRM take your business to places you CAN imagine,” an infographic, to learn how Office 365 and Microsoft Dynamics CRM can breathe new life into sales and deliver a superior customer experience. Here’s what you can accomplish with this powerful duo:
  1. Drive sales productivity: Microsoft Dynamics CRM offers a centralized location for all of your customer data. Armed with detailed information, your sales representatives and customer service teams can respond faster to customer needs. Strengthening relationships with customers can lead to more sales opportunities, including cross-sale and up-sale opportunities.
  2. Build sales momentum with social insights: Microsoft Dynamics CRM offers a simple way to tap into social media to interact with customers, as well as listen in to what is being said about your products, services, or your business. Nearly 73% of sales professionals that use social media outperform those that don’t harness this valuable resource.
  3. Explore new markets: Built-in business intelligence features in Microsoft Dynamics CRM offer a new way to understand your customers and sales data. As you get to know customers better, understand buying behaviors or trending products, you can expand into new regions or markets and grow your business.
Take your business to wherever you can imagine it to be or want to go next. Download the infographic and contact Managed Solution for more information about integrating Office 365 and Microsoft Dynamics CRM, using these solutions to redefine your business, strengthen customer relationships, and drive successful growth.
For information on deploying Microsoft Dynamics CRM in your organization, please call us at 800-257-0691 or fill out the contact form below and an expert will contact you shortly.


Wednesdays With Will - Voice Of The Customer

Wednesdays With Will: Voice Of The Customer

By William Marchesano, Technology Advisor & Evangelist

Welcome back!  In our last installment we discussed how you can better visualize your business with the use of dashboards to represent data.  This week’s topic is going to touch on the same topic but from the other end…gathering the data.  There are many ways to gather data but it’s important that the information collected is leading to what you’d like to know.  One of the most tried and true ways to accomplish this is through surveys.  Today we are going to discuss why the voice of the customer is a key component for meaningful business analytics and decision making.

The primary reason most businesses use surveys is to develop a go to market strategy for acquiring new business or to learn more about their existing clients.  When crafting your go to market strategy it’s important to understand the market you will be servicing.  You will need a clear grasp of your value proposition including how to position your product or service and the price it can be sold.  This is all part of the research stage and surveys can be leveraged for acquiring this information.  It can be very costly for an organization to launch a new product or expand their business without doing the proper research and having a proper understanding of their potential market.

When used for an existing customer, the goal may be to get a heartbeat on the business relationship between the client and your organization.  This is important for understanding what your business does great and where there may be opportunity for improvement.  It can be crucial for identifying gaps in current service.  It also leads to an increase in customer satisfaction and retention.  This is the first step in transforming your client from a customer to an advocate of your business.

Surveys can be used to increase sales with both new clients and existing customers.  Since a survey gives your customers a voice, you are given a defined understanding of their need and possibly others in the same industry.  This information can then be used in a targeted market campaign to let others with the same challenge know that your organization has a solution.  We live in the age of the internet where most people will do their own research prior to engaging with a salesperson.  Demonstrating an understanding of a challenge and a possible solution helps build trust in the early stages of the business relationship.

The focus of my previous articles has been about how leveraging a Customer Relationship Management (CRM) tool can assist with simplifying Sales, Marketing, and Services processes.  The latest edition of Microsoft Dynamics CRM, 2016 and the Online version, has included a survey maker as a new preview feature.  At the time, it can be tested and used in a non-production environment.  The full release should be available in the next couple of months.  If your organization is already using Dynamics CRM and contemplating the use of surveys to improve the customer experience?  Now is a good opportunity to try it out and see how easy it is to create a custom survey with your company’s branding.  To improve user accessibility, it’s been optimized so a survey can be taken on a phone, tablet, or computer.  Your Services team will gain more customer insight because they will be able to view customer feedback history as they resolve a service case.  As mentioned earlier, the survey information can be translated into dashboards for better visualization.  Surveys are just another way of augmenting the capabilities of your Sales, Marketing, and Services teams.

As always, I encourage you to reach out to me to discuss these topics in deeper detail. I hope you enjoyed and found this week’s article informative. If you’re interested in some how-to related CRM material, check out blogs by my colleague Ben Ward here. Till next time…

About the author:

Will has over 16 years of experience in business development, team management, and project management. Will has worked at Managed Solution for over four years and is currently advising businesses on best CRM practices and implementations. Will’s focus is on process improvement and analytics specializing in Customer Relationship Management (CRM). Will is a Microsoft Certified Professional, with certifications in Presales Technical Specialist – Microsoft Dynamics CRM 2013, Sales Specialist- Microsoft Dynamics CRM 2013, Microsoft Dynamics CRM 2015 Application, Sales Specialist- Office 365, Sales Specialist- SMB Infrastructure and Sales Specialist- Datacenter.

Other articles by Will Marchesano:

For information on deploying Microsoft Dynamics CRM in your organization, please call us at 800-257-0691.

Contact us Today!

Chat with an expert about your business’s technology needs.