18. “
“
ORGANIZATIONS WHICH DESIGN SYSTEMS
... ARE CONSTRAINED TO PRODUCE
DESIGNS WHICH ARE COPIES OF THE
COMMUNICATION STRUCTURES OF THESE
ORGANIZATIONS
- Melvin Conway
47. “
“
WE ARE RELEASING THIS PROPOSED
GUIDANCE FOR PUBLIC FEEDBACK ON
THE OPEN SOURCE PLATFORM GITHUB TO
SIGNAL TRANSPARENCY IN FEDERAL
POLICYMAKING AND TO REACH A BROAD
AUDIENCE OF STAKEHOLDERS TO ASSIST
IN FURTHER ENHANCING THIS
GUIDANCE.
**Phil:** This talk is about the power of open source as a differentiator for organizations. You probably have open source in your pocket right now. How many of you have an iPhone or an Android phone in your pocket? How many of you use Chrome, Safari or FireFox browsers? Open source has been instrumental in delivering these products from companies like Apple and Google.
**Rich:** Open source has also been instrumental for Microsoft in building a world class cloud platform in Azure. And these technology companies are objectively very successful. Apple, Google and Microsoft are the top of the S&P 500.
**Phil:** At GitHub, we may not be on the S&P 500 yet. Open source has been core to our business, of delivering a place for developers to build and host software.
**Phil** It's not just businesses that are improving through open source. Governments are embracing open source on GitHub as a way of improving services and also transparency for their citizens.
How has open source been transformative to these organizations? And how can your organization achieve similar results? This is what we're going to discuss.
**Phil:** But first, a little about me. My name is Phil Haack and I work at GitHub as an engineering manager. I've been there for three and a half years. Prior to GitHub, I worked at Microsoft for four years pushing to make this open source thing happen. I got my first computer when I was around 5 or 6 years old. As you can see, I was pretty mature for my age. I've been in love with computers ever since. I believe they are a transformative force. But it's not the computers and source code that transforms the world, but how we organize around them and use them to work together. It's the social changes they help enable. This is something I'm deeply interested in.
**Rich:** Hi, I'm Rich Lander. In my spare time, I pretend to be a long-distance athlete, hence the picture. I've done several half-marathons and half-ironmans. That isn't to suggest that I usually do half the job, but more than I typically have a long view on my work and a lot of patience. It's pretty helpful, particularly when others around me are wondering why we haven't seen the payoff yet.
I've been working at Microsoft for 15 years on products for developers. I work on a product called the .NET Framework, which is a development platform that is part of Windows and is now extending to other operating systems. It's also a big part of Microsoft Azure.
** Rich ** I'm more used to - and this won't surprise anyone - to closed development practices. More recently, Microsoft has been shifting to the development approaches that GitHub uses. We've shifted to using open source where it makes sense and also contributing big parts of our product to the community. We have a new CEO, Satya, that is driving this change. Like GitHub, we're now doing more than just using open source, but making it a core part of the business we offer for cloud computing.
**Phil:** First, it might help to define what open source is. Technically, it's about software that has a license that meets the Open Source Definition, an explicit set of conditions every open source license must meet such as allowing others to change it without condition.
The definition is created by the OSI or Open Source Initiative. Popular licenses such as MIT, GPL, and Apache meet this definition.
But what we're talking about goes beyond that. It’s about the spirit of open source, which is about being open and collaborative.
An open source license is just the beginning. It doesn't mean that people are going to start contributing to your project. Being open is about being working with others and being open to change. It's also about enabling other people to use your code, possibly in ways you never imagined that might benefit people a world away from you.
**Rich:** Earlier, we talked about how big tech businesses have been succesful with open source. It's not like they transformed their businesses over night, nor did they go all or nothing into open source. Really, they were very thoughtful, worked with their legal teams and defined a new engineering approach to build products. And out of this, we see a lot of companies using hybrid open and commercial models successfully.
**Phil:** At Build, the CEO of GitHub said that Microsoft products used to be all or nothing. Now they are more mix-and-match. The old model may have worked well with existing customers, but it a huge challenge for the company to be successful with new audiences, such as startups in Silicon Valley.
Visual Studio Code is a great example of this new strategy. It runs on Mac, Linux and Windows. I've personally seen interest in a Microsoft product from people who have traditionally been hostile to Microsoft products.
**Rich:** Both of our companies have made big bets on open source.
**Rich** At Microsoft - We see open source 3 ways: interoperability, integration and contribution.
**Rich** We use open implementations of industry protocols and standards . It's great if you can use the reference implementation and even better if you can update it and its free. LibGit2 is a perfect example. It enables Microsoft to build products that make using git repositories easier . GitHub uses it as well.
**Rich** Customers often ask us to integrate open source components and systems into our products. We've integrated both Apache Cordova and Node.js into Visual Studio so that you can write client and server apps in JavaScript with those open source app frameworks.
**Rich** We also contribute key products to the community. .NET Core and Roslyn are good examples. We want to make .NET Core one of the primary cross-platform app frameworks that people use, particularly for use on the Microsoft Azure cloud. It's always a good idea to expand your business to new markets. Open source software helps us do that.
**Phil:** At GitHub, our big bet is not just about source code and licenses . We are heavily inspired by the open source way of working together to build high quality software.
There's this great observation by Melvin Conway which states...
**Phil** A lot of people interpret this as a cynical observation, but Conway didn’t see it that way. To him, this was a sociological observation.
So we take this to heart. We model the way we communicate internally after the way many open source projects do. We primarily work asynchronously using issues and pull requests. This allows people in different time zones a chance to see what's happened and to chime in. And we've found this to be a really great way to developer software.
**Phil:** This enables us to work in a distributed fashion with people all over the world, much in the same way that the open source community does. This is a distinct competitive advantage. It's not necessarily the case that the expert for any given technology lives in the Bay Area. The world's best expert in a particular technology that we need could be a scrappy kid in Puerto Rico. And we want to work with those experts wherever they are.
**Phil** Our product reflects this way of working and brings these things not only to others who want to build open source products, but to organizations who want to build proprietary products as well.
This is where we make our money. This is our business model.
**Phil** We also leverage a ton of open source software to build our products. Ruby on Rails, MySql, LibGit2, the list goes on. We also try to open source almost everything .We're not in the business of selling CSS frameworks or Git libraries, so anything not core to our business, we open source. The ton of open source projects we've created not only raise our profile, but also benefit from the work of other individuals and companies to improve the software. Electron is a great example of this. It's the shell used by our Atom Editor. Microsoft uses it in their Visual Studio Code product. Facebook also uses it in Nuclide, their new editor. We benefit as they improve Electron for their needs and vice versa.
**Phil** But these benefits aren't the only reason we create so many open source projects. We feel it's the right thing to do. We use a lot of open source to build our products. It's only right that we contribute back.
A rising tide lifts all boats .
**Rich:** Microsoft Azure is a great example to look at more closely. It's a commercial service that millions of customers use globally. There's something like 90k new subscribers per month for the service. It changes at a fast pace and is operating in a competitive environment. We cannot wait 3 years to bring up a new service that customers want yesterday.
**Phil:** So, how are you tackling that need for agility?
**Rich:** We're leveraging open source components that meet our needs. For example, Azure needed a distributed cache. In typical old Microsoft fashion, we built our own cache for Azure. After a while, we asked ourselves "Why?". There's already a great cache out there that's freely available that is well understood by large numbers of developers. We now host the open source Redis cache as a distributed cache for customers to use.
**Phil:** When I was at Microsoft, I and my cohorts fought against re-inventing the wheel all the time. This is why we adopted jQuery and replaced our own similar library.
**Rich:** This approach has generates a lot of love from customers using Azure. They expect a certain set of services to be there and they don't care how we built it as long as it has the quality they've come to expect. Open source components enable us to implement those services in weeks and months, not years. Linux is another perfect example. Our customers want to host various flavors of Linux in Azure. OK, now you have Ubuntu, CentOs and SUSE Linux in Azure. Done . What else do you need? They also appreciate not being locked in.
**Rich:** Little known fact ... Microsoft has been releasing open source for 10 years and collaborating with open source communities.
**Rich:** This is before GitHub even existed, before GitHub really broadened the use of open source. More recently, Microsoft has made a much bigger commitment to open source by releasing key assets that have really surprised people. It's actually having a big impact on our ecosystem. I don't want to take too much credit, but many of our customers have responded with a simple and deep "thank you", meaning that our more liberal choices are fundamentally meaningful to them. That "thank you" then shifts to an expectation that we'll continue on this path, which is indeed our plan.
**Phil:** Over at GitHub, we've been pretty impressed with the extent of the changes happening at Microsoft. I believe they've really embraced open source in a sincere manner. Last night, I was talking to some speakers that included Tim O'Reilly and Jennifer Pahlka and I said, could you imagine anyone believing this would happen ten years ago. Tim dryly replied, I predicted it ten years ago, but I couldn't imagine it. His point was that unless it embraced open source, Microsoft would become irrelevant. Microsoft wants to be relevant to new audiences.
**Phil:** Likewise, we at GitHub want to help them and their audiences come on over. We started planning to build an extension to their flagship IDE (Integrated Developer Environment), Visual Studio. My CEO, Chris Wanstrath, casually asked me, "Why don't we ask Microsoft to include our extension in Visual Studio?" If I had been drinking milk at the time, it would have come out of my nose from my scoff. I gave him a rock solid case based on my experience why that would never happen.
**Phil** But later that week, I went out to dinner with my former manager at Microsoft. I didn't tell him about this extension idea, but he started talking about all the drastic changes Satya was making at Microsoft. He said it was a new Microsoft and nothing is a sacred cow anymore.
So it got me thinking. It doesn't hurt to ask. I arranged a meeting with Somasegar, a Vice President in charge of Developer Division (which includes Visual Studio and Team System) and gingerly asked him, hey, this is a crazy idea, and don't feel obliged, but what do you think about including GitHub in Visual Studio.
**Phil** And then I cringed awaiting the response. And he immediately said, "Yes, let's do it!"
I pressed further, it'll need to connect to GitHub Enterprise. A product that somewhat competes with their own Team System. And he said, Microsoft is about giving customers choices now. I was shocked and pleasantly surprised. This wasn't lip service, this is the real deal.
**Rich:** We released .NET Core, Roslyn, TypeScript and other recent projects. The repository activity on GitHub and the adoption of those projects has been beyond our expectations. We have companies coming to us ever day asking us to support .NET Core on Linux in Azure.
As an example of cats and dogs living together, open source has brought even Google and Microsoft together to enable Google to use Microsoft's TypeScript as the language to write their Angular2 web framework. These things are really happening.
**Phil:** We have seen this increase in activity in Microsoft-related projects in our telemetry on GitHub.
I asked a colleague at GitHub to create this graph of total commits to C# repositories. C# is one of several Microsoft programming languages. I’m using it as a proxy for their community. It’s a bit early to see if there’s a significant trend here, but initial from the time Microsoft joins GitHub to March, that’s been the steepest climb in commits to C# repos.
In this graph, we’re seeing the percent change month to month of people pushing to C# repositories month to month. We can see that C# is growing faster than the overall GitHub growth rate. This is a sign of a healthy OSS community.
All this cross-polination in open source unlocks innovation. Where all would you see Microsoft, GitHub, Facebook, Google, all working together to advance technology they have in common. It's not the future that you might have expected, but it is here.
**Phil:** The way we work at GitHub, we have access to every project in GitHub .I'm a died-in-the-wool C# developer, but I have access to and have made changes to github/github, which is a Ruby based site, and they've been accepted. If I have an idea, I go to the right place to go implement and do that. We have a saying that "its more productive to debate a pull request than an issue". Once you've removed all the barriers to innvovation, you just innovate.
**Rich:** At Microsoft, we've made a lot of changes to our internal engineering process to get much closer to the model that Phil talked about at GitHub. We're still not to the final place we need to be, but as an organization, we've decided at a very high level where we need to be in order to build the products our customers want.
**Phil:** You can get these same results by collaborating within your own organizations. Use the same techniques and approaches as we use at GitHub and Microsoft .
**Phil** For example, SAP is the largest business software vendor in the world, with a workforce to match - 20,000 developers on teams located all over the world.
Dominik Tornow, Director of Engineering with the SAP Labs Processes and Tools group, gave this quote after they adopted GitHub enterprise as a means of employing open source style development internally.
**Phil** We offer products and services to help you. GitHub Enterprise is private instance of GitHub that you run on either you own servers on your own network or on Amazon Web Services or Microsoft Azure . And if you want something easier than that, you can always host private repos on GitHub.com.
**Rich:** Microsoft also offers private repos on VisualStudio.com
**Rich:** It's not all about open source. Microsoft and GitHub both sell commercial products that we put a lot of time, effort and money into to provide a great product for you. We focus on end-to-end scenarios, performance, reliability and security. Oh, there's also support. You can continue to buy products from Microsoft and GitHub to get the experience you want and need . As with many of our products, you can extend them to make them do something custom for your environment. It's a great idea to rely on open source software to make it faster and easier to build your custom layer on top of our enterprise-grade products.
**Phil** It’s not just businesses that are improving through open source. Governments and government agencies around the world are jumping on board and reaping the benefits of open source.
GitHub caters to Governments. We see open government as being more than just software code, but also data and policies. It's a great way of increasing government access and civic participation. This has created a fertile environment for a new movement of civic hackers. Governments sharing resources and enabling them to be part of the process can result in new apps for citizens to use or new insights on government data.
**Phil** The GitHub and Government site - https://government.github.com/ - showcases a lot governments that are doing great work. You'll notice that the most valuable projects have been forked many times. Governments also want to avoid reinventing the wheel and find high quality resources that are available. In the United States, there are projects hosted at all levels of government. Digital organizations like the white house and 18F are very active.
**Phil** There's semi-private peer group for government employees to discuss open government practices and how to make the most of open source. It isn't just about resources. There is also a lot of learning that needs to happen. There are many people that are part of this community that can help.
I’ll quickly show some examples of interesting things various government agencies are doing at the federal and local level.
If you go to the WhiteHouse.gov/developers website, you can see they link to their GitHub profile.
Follow that link and you’ll find a data dump of the President’s 2016 budget.
The office of management and budget is embracing GitHub. Here’s what they had to say.
The USA.gov site, a place to learn more about federal government services…
Also uses GitHub issues to solicit feedback for the website.
Nasa and JPL use GitHub to develop tools that help them accomplish their missions.
I got pretty excited when I saw a project named “Europa” but sadly, it’s not a mission to Europa but a tool for planning, scheduling, and constraint programming.
**Phil** And finally, local governments are providing rich data sets on GitHub. Here’s a geojson file showing all the community gardens in Cambridge, MA. When you post a geojson file to GitHub, it renders it as a map. This benefits civic hackers who can take this data and remix it in ways governments never anticipated, and improve local government.
**Rich** Microsoft Azure hosts freely available govt data sets that you can use to inform your work. It also provides business intelligence tools to derive insights from that data. You can also post your data sets to Azure so that other users, individuals, commercial, and govt can get access to them.
**Rich:** We're experiencing a shift today to more open models of development. At Microsoft, we've developed one engineering system to build software that's available to anyone in the company. Most projects at Microsoft don't require the secrecy of a project like HoloLens . We start with the idea that code should be available to all employees. If there is a passionate employee who wants to improve my product, we're happy to add them to the virtual team. This now extends to the world at large, since several of our products are now open source. Fundamentally, it's about collaboration, about removing barriers to innovation. There are a lot of smart people in the world that have great ideas and great insight. A bunch of those people are in the audience today. We'd love to work with you.
**Phil:* In this talk, we covered the benefits of open source to organizations whether they be businesses or government agencies. It's a force multiplier. It's a community builder. It's an innovation driver. We showed the transformative effect of open source on a 100,000 person company like Microsoft, no small feat. We've seen how governments are becoming more open and transparent by publishing code and data on GitHub. This enables civic hackers (for example, organizations like Code 4 Puerto Rico) to take that data and improve local governments in ways nobody could anticipate.
**Phil:* Open source is a monumental change in how individuals and organizations work together to build software. Not just software, but hardware, companies, policies, pretty much anything. If your organization is not yet on board with adopting open source in a deep way, I hope what we've shown here helps you make a compelling case. It's already changed the world, will it change you and your organization? Thank you very much.