I’d like to start this blog post with a quick introduction. I’m Paul Barham and have been working at Microsoft only 7 short weeks but have over 25 years of software development experience ranging from teaching at the university level, to being a lead software developer and architect, to being a manager over 30+ person development teams for start-ups through large corporations like Amazon Web Services (AWS). Most of this experience has involved using C++ and Java to build, deploy and support highly distributed systems running across multiple platforms and systems and more recently in the cloud. My teams have generally steered away from using Microsoft technology and build systems when possible and have instead had a heavy emphasis on using proven open source technologies. I’ve also worked with hardcore Mac developers on all my previous teams and myself used a Mac as my primary machine for many years. So why am I now with Microsoft?
The corporate world is changing. There is a push in large enterprises to use a variety of software languages and technologies, to enable small teams to use what works for them in terms of agile processes and tools, and to generally be more “open” for both software and hardware development and usage. For example, IBM just announced it will be deploying MacBooks for some employees for the first time ever estimating purchasing 50,000 by the end of the year. Microsoft is no exception and has made a demonstrated commitment to becoming more open especially in the software development space. Microsoft provided me both a PC laptop and a MacBook for my job and hired me to coordinate the effort to enable and better support non-traditional Microsoft developers (i.e. developers that use something other than C# and .NET technologies) to easily design, build, test and deploy their software and systems solutions, especially to the cloud. I’ll give descriptions below of some of these exciting changes to our cloud-based, application lifecycle management (ALM) developer tools, collectively called Visual Studio Online (VSO), and how VSO can enable cross-platform developers to be more collaborative, productive and integrated with other teams.
As a developer, you need the design freedom to organize, modularize, and componentize your software as you see fit. You certainly don’t want to be constrained by the underlying storage repository and version control system. With VSO, you can have unlimited private Git repositories, hosted in the cloud, for free! Compare this to other services that force you to pay for your private repositories or limit you to the number you can have for free. If you need to work with other teams using our Microsoft version control (TFVC), want to use your existing Git repositories with VSO (see Image 1), or want to connect your Git tools to VSO (see Image 2), you can certainly do this as well.
Image 1: Extensible Repository Types
Image 2: Xcode Connecting to VSO
Whether you work off- or on-site in a collaborative environment, you can help raise the standard of excellence in your team by detecting and fixing issues earlier using the rich, cloud-hosted code reviews provided by VSO. VSO provides inline comments and individual sign-off to make it easy to improve the accountability and code quality of your team (see Image 3).
Image 3: Example Pull Request with In-line Comments
Improve the communications with your teammates, program managers and other stakeholders by having traceability between your source code and feature requests and bugs using both the VSO rich agile planning tools and bug tracking tools. VSO provides a means to associate your assigned work items (i.e. stories, tasks, bugs, etc.) with your commits. VSO tools are configurable giving you the flexibility to run your team however you want from waterfall to agile, supporting Scrum and Kanban (see Image 4).
Image 4: VSO Kanban Board
Enhance your team’s use of continuous build and integration as VSO enables your commits and code reviews to trigger continuous integration (CI) builds on any Internet-connected machine running the VSO build agent, Jenkins, or other CI server. Our new open source VSO build agent is written in Node.js and runs on many different operating systems including Mac OS X. The agent supports building of a variety of languages including Xcode, C++ and Java (see Image 5).
Image 5: Xcode Build Definition
If you already have a preferred set of development environment tools but want to try some of the new features in VSO, you can seamlessly integrate VSO with your existing tools using service hooks to trigger your tools from VSO and REST APIs to initiate activities in VSO from your tools (see Image 6).
Image 6: Service Hooks Consumer List
If you are using Eclipse, you can use our free VSO Team Explorer Everywhere (see Image 7) plug-in to provide you a fully featured integration with VSO (see http://dl.microsoft.com/eclipse/tfs for more info).
Image 7: Team Explorer Everywhere (TEE)
Here are a few other things you can do that you may not be aware of:
· Xcode and other Git tools will easily connect to your VSO Git repositories in the cloud;
· You can edit source files and commit them right from your browser, including Objective-C and Swift code; and
· Backend web services can be automatically built, tested, and deployed using VSO, service hooks and its REST APIs.
Hopefully, you can see why I am excited to join Microsoft and be part of the developer and builder tools team. Microsoft is changing to be more open and put focused effort to improve our developer tools for building cross-platform solutions and my team is instrumental to this success. Please feel free to contact me to tell me what you’d like to see from VSO to help you and your organization get to the next level. If you are passionate about helping software developers build better software and want to be part of our team, we are hiring – send me an Email or connect on LinkedIn.