If you work at an enterprise where a lot of your peers also write MATLAB code, you might have pondered the following problem: how can we share MATLAB files with each other? At first this seems like an easily solved problem. Just dump everything you want to share into a big directory that everybody knows about.
But right away complications arise. Here are some issues that come up with a company code repository.
Submission – How do you submit code? What format should it take? Who decides what goes in?
Organization – How is it organized? Who curates the code? Who supports it?
Discovery – How will people find out about it? How is it promoted?
Distribution – How do people download and install the code?
Enterprises that create simple code repositories (like the aforementioned single-directory approach) are rarely happy with the results. The resulting directory is like a big “junk drawer” filled with unmotivated odds and ends.
Moving to the other end of the spectrum, we sometimes hear this question from people who use and enjoy the MATLAB Central File Exchange: can you give us a local version of the File Exchange, one that will just work internally and privately at our company? We don’t think this is a bad idea, but the File Exchange is a complex piece of software that’s deeply tied to our internal systems. It’s just not built to ship to other locations.
Over the years, we have seen many enterprises come to grief over how to share MATLAB code internally. I know of several failures, but today I want to tell you about one spectacular success. Jaguar Land Rover is a British auto manufacturer, and they use a lot of MATLAB. Working with the MathWorks Consulting team, they created something they call the MATLAB Store. It looks like this.
The JLR MATLAB Store contains code that is shared among specific teams and also code that is shared across all engineers at the company. It leverages the toolbox packaging introduced in release R2014b. It includes ratings, comments, and download counters. The Store is slick and it works very well, but I want to show you the secret ingredient for its success. This is Dave Barry.
Dave works at Jaguar Land Rover, and an important part of his job is to make sure that the MATLAB Store is healthy and successful. So when you look at a picture of the store, don’t imagine that it’s just a matter of getting the right code repository in place. Jaguar Land Rover went out of their way to create a culture of competence and collaboration. They value this goal so highly that they have dedicated staff like Dave to promote and support MATLAB and the MATLAB Store. Dave recently gave a talk about this topic at the UK MATLAB Expo. I encourage you to watch it here.
By now you may be thinking, okay Ned, you’ve convinced me that I don’t want the Junk Drawer approach, and I realize I can’t have my own private File Exchange, but can you please give me a copy of the Jaguar Land Rover MATLAB Store? The answer is no, I can’t. It IS lovely, but it belongs to Jaguar Land Rover. I suppose you could ask them for a copy of it. If you’d like something like that built for you, you can always contact our Consulting Services group. But MathWorks consultant David Sampson has an even better deal for you: he’s built a simple MATLAB Minimart with the most important elements of the JLR MATLAB Store built right in. And it’s available to you right now for free on the File Exchange.
Kind of meta, getting a mini File Exchange from the File Exchange, huh?
Anyway, the next two posts on this blog (Part 1 and Part 2) are going to be from David Sampson. He’ll tell you how to set up and use the MATLAB Minimart. That’s terrific news, but remember it’s only part of the solution. If you want to create a MATLAB code repository at your university, your company, your working group or department, I leave you with this question: who is your Dave Barry? Who is going to be dedicated to making that repository healthy and successful? Because until you have built a true culture of collaboration, you’re probably just making another junk drawer.
Comments are closed.