Bio Amber Case is a researcher exploring cyborg anthropology and director of the Esri R&D Center in Portland, Oregon. Her work there started when Esri acquired Geoloqi, her startup that provided location functionality for mobile apps. Her work involves non-visual AR, the future of location and reducing the amount of time and space it takes for people to connect. Her home on the web is caseorganic.com.
CRAFT is about software craftsmanship, which tools, methods, practices should be part of the toolbox of a modern developer and company, and it is a compass on new technologies, trends.
My name is Amber Case and i work at Esri’s R&D Center in Portland, Oregon, I am the director of the Esri R&D Center there and I work on next generation GPS technology for mobile phones, so we are trying to make a low power way of getting location data off a phone and sending mobile alerts without significant battery drain. I also manage developers.arcgis.com which is the developer unit of Esri's GIS offering, so it's a developer version of all the powerful tools that you can get, that were formerly a little bit difficult to use by developers. We're consolidating all the documentation and making an easy interface for people to just get started programming without necessarily having to know geography from scratch.
So, we at Esri provide a thing called ArcGIS. So, ArcGIS is geographic information system product. It's probably the most well-known one in the world, it's used by most cities for urban planning purposes, large stores to figure out when to open or close a given store and really the flagship feature is this thing called spatial analysis. So, spatial analysis allows you for a given let's say an intersection or any geographical point affiliate some data with it in order to predict the future or understand whether it's a good idea to put something there. So, a real estate planner could for instance say “I want to make a real estate development here”, so they can use Esri's software to figure out whether that would attract a certain type of person by using the demographic information, figure out if there are going to be landslides in the area in the next 20 years and figure out inclement weather patterns, historical real estate trends, layer on some other information.
So, there is the concept of layers, you can put layers onto reality and do analysis. So, the city of Honolulu in Hawaii, they were trying to figure out whether they should put in a public transit system and they were able to use Esri's CityEngine product, which is a 3D engine that allows you to take zoning or all the rules around what buildings you can build where put it into the system and then you can dynamically change that zoning over time and it will automatically generate architecture for you. So what they did was they put a trail of the public transit system and used spatial analysis to figure out where the best stops would be, urban stops, in terms of population and closeness or far away from schools and things like that so that they could reduce urban sprawl by strategically placing these different transit system locations. Then they modeled all that out using the software and then they generated over time 20 years of growth in the city and had a side-by-side map, one was without public transit and one was with public transit. With the public transit system there was barely any extra sprawl that happened in the city, but without that public transit system you could actually see 20 years of urban sprawl show up, so they were able to show the community this and get buy off to make the public transit system; this was a couple of years ago.
So, taking all this data and putting it onto a map can allow you to make a decision faster, can allow you to predict the future and that's why our byline is Understanding Our World, it's about making all this data that was formerly invisible, visible, using it to generate some information so that you make better decisions. So, this is why these urban planners and all these different places and large companies use this because when you make a decision that must last for 50, 100, 200 years and you can use this system you need to really know what's happening, that's really what geographic information systems are. And the idea of GIS, Roger Tomlinson is considered the grandfather of GIS, there were a few different groups, one in the UK, one in Canada, a major one in the States, the Harvard Graduate School of Design and Jack Dangermond who was the cofounder of Esri, along with his wife, found out that you could digitize these maps and you could use it for planning purposes.
So, he cofounded Esri with his wife when they were 25 in 1969 in order to make software for land use planning and the reason why GIS really spread throughout the United States and Canada is because there is a lot of publicly managed land, in the US, whereas in the UK a lot of land is owned by the Crown so you don't need to have land management as much, so that came latter, but the big difference is that there is a lot of military and government things going on in the '60s and '70s and it was still very expensive to use a mainframe computer. So, most of the mainframes were at colleges and universities or the government was using them for military purposes, so that was the only funding for GIS research at that point in time, which was "ok, let's digitize a map, but it's going to be very expensive". So, Esri started out in the mainframe stage, to help some governments in terms of land use planning and because they came out of academia they had access to the mainframes early on. But when the desktop came out that's when everybody had a miniature mainframe that you could put on your desktop and that's when the software really took off because now many more people could use the same software, so now you find, even today there is still Esri software running on mainframes and it’s very stable, so it’s software that’s been running for 10 or 20 years that’s been powering everyday life; so, when you order a fridge from a popular store for instance in the States there will be a routing algorithm that goes behind the scenes and affiliates with their delivery system to determine what window of time you will get your fridge delivered in, there is a lot of routing algorithms that make use of maps and determine when to deliver you things. It’s an interesting thing to work at this company.
I had a startup called Geoloqi and we did low power GPS technology, so you could use your GPS all day long without significant battery drain, and we were doing this for consumer devices. We were bought by Esri about a year and a half ago and since then coming in from a company of six that’s only two years old to an organization that’s 45 years old and has probably about 4,000 people was very different. But the difference is that Esri still has the executives for the last 45 years they had when they started. So, they wrote the history of the company, so they remember a period of time when they were also startup, so I still think of us as a startup. It makes it quite interesting because we have very similar thoughts on let’s make long lasting software, let’s make something people can rely on for years and years and years versus something that is really interesting and clever-looking for a temporary period of time.
Actually, people have asked me to describe what Esri does, I say well, we make SimCity for the real world. And that is really CityEngine software which is built by a Swiss company, a procedurally generating 3D mapping software and there are a lot of popular 3D animated films right now, a lot of them, which I can’t name, will use the CityEngine product to generate all the backgrounds of cities.
Yes. All you have to do is take a regular map with zoning and then it will generate a historic building or it will generate a multi-use building with apartments on top and shops on the bottom or small houses or parks; it will generate all these things, we had this fun trade show booth where you take your thumbprint and it will automatically generate a city from your thumbprint and you can use the Wiimote to go around and view the city. It happens that quickly. So there is this very clever Swiss team, it was a few years ago that Esri purchased this company, actually, and it’s been doing very well, so it’s a real joy to see that because it just allows people to make decisions much more easily. In China, for instance, if you build a skyscraper and it blocks out the light of somebody else’s window you have to pay a tax to them to say “sorry we have taken your light”. So you use the Esri software then, you play the sun over time and you can see the percentage of shadow you are casting on a building at a certain time of day, you can automatically calculate the tax you have to pay to the next door building. So there are many different things you can do with this.
For the routing algorithm you can take all the data of dangerous intersections in a big city and you can make a route that avoids dangerous intersections. There is a thing that Esri publishes every year called the Esri Map Book which is beautiful, it’s all the interesting maps people made with Esri software each year, a lot of public transportation maps, public transit maps are made using Esri software. My favorite is a wind map of Tokyo, it’s a colorful map with very, very small arrows, and the arrows are colored red if there is really intense wind or it’s blue if it’s calm and then you can see how can we build a building differently to get rid of this giant channel of air or if you want to build a restaurant, for instance, you can look at the wind map and you can say “I don’t want to build a restaurant at this intersection because there is a bunch of wind”; it’s all about making that information that was formerly invisible, visible, so you can make better decisions.
We do not technically provide all the data, we are a bring-your-own-data platform, so we say here is a place to put your data and make meaning of it, so we have this idea of a map and then you add layers to that map, you add your feature service to the map, you add these features and layers and then you can do routing or you can do spatial analysis or you can do a more complicated analysis, like space-time analysis where you can literally understand space and time, crime rates over time; a city will say “here is all the different police divisions and here is the crime rates around each police division, this one is doing better than that one”, so let’s figure out why and let’s talk with them and we can either fund them to do that better; so, it’s all about that. Usually, departments and cities will bring their own data and they’ll put it into the platform, then the platform itself is empty, but it has all these tools to make meaning of that data. But then there is also some market places for that data if you want it. But usually there are cities and state departments that bring their data and they store it in Esri for a very long period of time. So, it’s a long term place to store your data and then you can do geo-processing, geo-analysis, all of these applications on top of it, all these different plug-ins, all these different services, and solutions and things like that.
Werner: So, it’s an integration platform, it integrates all this data.
Yes. And gives it meaning.
Werner: That’s important, data is useless without meaning.
Yes. People talk about Big Data and analysis and all these stuff, well we’ve been doing this for a long time.
Werner: You need Big Meaning.
Big Meaning, oh, no.
Werner: Sorry if it’s already trademarked.
I want Small Data and Small Meaning; honestly, I don’t care about Big Data, I care about the small details. I think it goes back to Jack Dangermond, one of the founders of the company, he managed a plant nursery when he was younger, when he was 16 he was managing a workforce and so he understood about management of plants and management of people and growing and cultivating people as well as plants, so growing and cultivating a strong company over time. He also understood that if you see an aphid or an outbreak you better hope you get rid of it very quickly, so growing in that way that methodology for a company is really quite nice because they did not raise any venture capital, they didn’t raise any debt, they’ve never had an unprofitable quarter and they’ve just slowly grown to where they are and people get paid hourly and there are great health benefits, so you get paid for the time that you work. It’s a different method, but you have a company that’s very robust, that people work for the rest of their lives, there’s a reason why people work there for 10 or 20 or 30 years. There is enough to work on and it’s rewarding, but it’s hard to find that type of stability elsewhere and once you found that it’s “well, I can work here for a very long time”. So I think a lot of people do.
Werner's full question: That actually leads us to another topic, you come from a small startup and you were bought by Esri. In your talk here at CRAFT Conf you were talking about how to help bring certain new methods to a large company, how to maybe suggest new methods and tools; what are some of the approaches that you use for that, how do you teach an old dog a new trick, if I may use that term?
The idea of being a six person company and joining such a large company of course it’s going to be jarring, I compare it, my analogy that I gave in my talk is waking up in somebody else’s body and you have to figure out how to walk again and you don’t know where anything is and you don’t know how to get any of the muscles to work, you can’t really open your eyes very much, you have very blurry vision, you can’t hear very well, you can’t move and you have to fight your way back into movement, because when you’re a startup you can do something very quickly; do you want to deploy something, ok, 20 minutes tops, not two weeks. And you have to go into the new company and respect what’s there and not say “oh, these things are wrong or right”, but “why are they there, why are they this way”. And there are plenty of other people in the company “we don’t like this bureaucracy, we don’t like this process either”, but you can’t say “oh, you guys are big and therefore you’re awful”, you have to say “oh, this is just what happens at scale, so let’s figure out if we can make a better process”.
So, part of that is beta-testing a process, also beta-testing people, I think about it as company defragmentation. You’re trying to go in, figure out which processes are holding up, figure out which resources are not contiguous and put them back together slowly, and you don’t want to do that by yourself, you want to empower people to do that, because there are a lot of people in the company that want to do that, it’s just that if you have somebody from the side that does that as part of their role then you can have them help the core. So there is a lot of innovating from the side, where you say “ok, we’ve made a small process work at this small level and now we’ve made a template that allows you to apply this across the rest of the company”.
So, you raise all boats, you don’t say “ok, we’ll be these smart kids over to this side” because smart is completely relative, I would say that nobody is smart or dumb or anything like that, it’s just that people work in different ways and sometimes a way is inefficient and sometimes a way is efficient, sometimes a way that looks very inefficient actually is the most efficient way, it turns out, sometimes the opposite. And so, it’s very difficult unless you understand, part of it is I went into the company, tried to understand the history, why something was the way it was, try to figure out the local language, made a small dictionary of what our terms were as a startup and what Esri’s terms were so that we could be on the same page, figure out the method of communication that was used by both companies and try to adapt to the local language, so that we could get something done. And then hybridize, we definitely took on some of the traits of the larger company and the larger company has definitely taken on some of the traits that we had, so we really cross-compromise and cross-influence.
It’s very symbiotic and we want to take the best things that we do and add it to the larger company so that everybody has that. And vice versa, we want all the ability to make long term stable profitable products as a startup, and startups usually aren’t very good at that. So, if we can get those over time, then we’ll have this nice blend and that’s where the real innovation and resiliency and stability comes from where there are new ideas and there are new methods and there are new processes, but they are slowly folded into the company in a sustainable way that’s not risky versus “hey, let’s just change everything”. I don’t advocate changing anything, actually because I think we need to stick with the exact same thing that we’ve been doing since 1969, it just needs to be exposed in new ways now, it needs to be exposed better online, and it needs to be exposed better through mobile applications, so that we can empower more people at more levels in smaller ways and be there in the field with them on the technology that they are currently using.
Right now a lot of people are using iPhones and Androids in the field and it’s harder for them to use some of these larger devices and some of the older devices that they are using, like Blackberry, don’t exist anymore. So, we just try to be there. What we were very good at as a startup was making mobile applications and making web software. So one of the things that we did was we said in order to launch our product we need to make a developer site at the company, so we made a new division and a new product with a new revenue model that was different from anything in the past and we were able to build this thing. And of course it took beta-testing people, let’s try working with this person and doing a small task with them, how long does the task take, how many bugs are there in the task, does the task take three weeks instead of two minutes? Why? Let’s go fix that process and let’s do another tiny task that’s related. Ok, let’s try and send an email; oh, that got caught, that took three months; ok, why did it take three months to send an email? Of course there is frustration, I could bang my head against the wall saying “this sucks, it’s awful”, or I could say “why is that the way it is, how long is the process, does it take 14 people?” Ok, it takes 14 people.
Can we make a smaller process that edits out a lot of people and can I have buy off at the end so that an intern is not doing buy off at the end, because the intern has no idea about the product. Can we have the developer write the copy first because they know their product and then we refine it; so, how do we change this process, just one process. How do we change the deploy process, how do we automate, how do we change some of the things to go to Amazon Web Services so it’s easier to scale. So we do these beta-tests where we do a tiny little project where nobody is threatened by the project, nobody is stressed out by the project, it doesn’t take a lot of time, but exposes all of these issues, so that when you work together with those same people or you get to choose the people you want to work with, you say I tried working with these 20 people and out of that these two people worked, so we are going to do a larger project with these two people. By the time you’ll have done a larger project with these two people, you’ve already figured out all the bugs, you know what you are going to run into in terms of the process and you already work well with those people.
So you make these small teams of people that you’ve pre-vetted, and then you find other people that might be called let’s say competent jerks; I quoted this Harvard Business Review article on loveable fools and competent jerks; and a competent jerk, maybe my translation is a bit different from the article, is somebody who really knows what they are doing and has some good information, but they’ve been frustrated a long period of time because no one will listen to them in the company and they are diametrically opposed it seems, so they seem like a jerk but they actually have the right idea. So in actually trying to empower them you can get a translator. You find somebody who says “ah, I know what you mean and I’ve been here at this company for a while”, we found a lot of these people, they have all these great ideas, said let’s translate your ideas, spread them across six or seven people and then let’s suggest those to the product developers. So, we’ve been able to change a lot of different products that way, whereas that one person coming in and say “no, you need to do it this way”; well, that’s not the approach, you need to be diplomatic.
7. I really like the approach of beta-testing people rather than giving you a team with people you have to deal with, you feel your way through the team and gather the most relevant people. Does that have a name yet? Except for beta-testing people.
I don’t think it has a name yet, I think Esri is a very organic company and in a sense it’s kind of tribal where you choose your own adventure, you go in and you figure out how to get something done and it’s sink or swim. But there isn’t some sort of process that you get when you come in. There are a lot of other processes, sometimes there is too much process where there shouldn’t be and sometimes there is no process where there should be, so all of it is determined where there is some where there shouldn’t be and where there is none where there should be and try to put that process there. But that approach probably has a name, maybe in Japanese or something like that; but the idea is and I’ve heard it maybe at Apple where you want to do a new project at Apple, you go around and you tell people about the project and whoever is interested gets all excited and work on it and the early iPod prototype was encased in this really ugly, gross looking case so that people would walk around with it in plain sight and nobody would be excited about it so that a very small team could work on it and people won’t be distracted.
So, there are two ways, 1) you can do a project and just make it look ugly and not exciting to the external group so that no one wants to work on it and you can keep your five people working on the project, because once it gets to 30 you can’t get anything done, or 2) you can get a few people really excited about it and then do a different project. So, a lot of it is what you would do in the real world, how would I get people excited about a project in the real world, I would craft the message and I would craft the reason why you want to work on the project and I would say who did I work with in the past that I would like to work with in the future? If you are going to ask people in a large company that, who is the best person you’ve worked with in this company? They’ll say “oh, there is this guy but he is in a different department now”, maybe you can work together again. So you can take people from different departments and have them work on something and I think Esri is elastic, you can do that in some cases.
Werner: It’s great to have that flexibility which I think InfoQ is a site for enterprises, I guess in enterprise you don’t have that kind of flexibility, so that’s an interesting approach particularly for a company that’s, as you said, 40 years old.
Werner: That’s definitely a good approach to copy I think.
The difference between a startup and an enterprise is that a startup can make many decisions very quickly and an enterprise will often try to make the best decision or the perfect decision and spend six months or a year trying to make that decision and when they are done they might have the right decision, but it is a year old. And so, by that point in time, this small startup has made 200 or 300 decisions. Maybe 50% of those decisions are incorrect, but it doesn’t matter because they are able to make more decisions quickly. So the key in enterprise is just being able to make decisions fast and being able to have these random small groups show up and do the right thing and empower people at the bottom instead of empowering people in the middle or at the top, where often you see a company it’s the middle that’s scared of the change, people at the bottom want it, people at the top want it, but it’s really hard because there are these people in the middle who are really good at bureaucracy, they care about the process, they care about the system, they care about maintaining that structure and maintaining kind of homeostasis at that level; and to have any growth you need to change certain things.
I recognize the people at the lowest level who are actually doing the work for me those are the most valuable people, so in my organization I try to give raises to the people who do a lot of the work. I also require managers to code, it’s very important because there is this issue in software where you don’t see it and if you get far enough from it as a manager you don’t understand how difficult it is to change something or how difficult that edge case is, or how some things just can’t happen and then you are not up on the technologies anymore; even I have pet projects that I code, as a manager, and I go to lots of meet-ups about programming because I need to know what people are interested in. And if they say I want to go to this conference on Go, I say I understand why and I can look at code and things like that.
But I can also understand as a manager when I say hey we need to do this thing whether I am being unreasonable or not, whereas if a manager is really far away they can say “oh well, we can do this thing”, if you talk about marketing or something, but sometimes that might not be possible and you have to check with the person that is implementing it at the lowest level in order to be sure sometimes and often there are so many layers of management that there may be a bunch of people who are right but that never gets up to the top because in a large company with a lot of people the person who tells the best story wins, even if that story is untrue, so it’s just about the storytelling versus I have this term “shipped code wins” or “show don’t tell” where you make something and that stands for itself, that speaks. So a lot of our communication is through GitHub and RFCs so that we can share the code with each other and that people are really respected for the code that they write and the clarity of that code, how they work with each other versus “hey, I have this great story”. If a manager comes to me and says I have a great story for a product, I say I don’t care because it hasn’t been built.
Werner: Do it first and then we’ll see if it works.
And it’s the same thing with how do you deal with people who are part of a startup when you are in an enterprise company, often you are dealing with sprinters. I see a lot of people struggling at a large enterprise because they come from sprinting, they’ll do a very simple sprint, they’ll get something done, they’ll say “it works”. I say at scale you can’t have a sprint, you have to be more of a marathon runner, so how can we have some of the aspects of a marathon runner and also give some of the aspects of a sprinter to a larger company, so again we are doing a tradeoff. Maybe our deploy process takes two days instead of two weeks, but we’re used to it taking 20 minutes, well, two days is better than two weeks and we can totally cross-compromise and say it’s alright for it to take two days because we are deploying something that is at massive scale and affects millions of people, not something that affects thousands of people or affects millions of people temporarily like in a startup.
So this is an issue that I will often times see programmers say “I really want to build this system”, I’ll say “is there a system out there that’s already been built that does the same thing?”; “oh, yes, but it’s in this language that I don’t like”. “So what would you like to do?”. “Well I would like to build a perfect version of this system”. The minute somebody says perfect I just get angry, because there is a way to build perfect software with Cobol which is great and you are talking about military style, early early software, that’s built on a very low level, on not that much memory, on an old machine. And those still exist, tons and tons of Cobalt programs still running somewhere. So I say “are you going to write it in that language”, “maybe I will write it in this other language”; “ok, that’s interesting. I like that idea but do you want to support that for the next three years?
This is tangential to the system that we are trying to build, I would love if you did that and then support this open source project, but do you want to support that, do you want that to be part of this thing that you have to clean and maintain for the next three years of your life or ten years and have this legacy architecture, because it’s going to turn into legacy architecture at some point or do you want to use something off the shelf that’s been prebuilt and just add it in, and in my decisions I usually just do that; if you had two hours, what would you do?”, “I’ll just use this thing”; “There you go, now we are getting to the point of what we really want to build”. And people get caught up in that all the time, “oh, I want to make this cool system, I want to make this thing”. Well, it’s cool temporarily until you have to maintain it; it’s great, I’m going to add another wing to my house, well, now you have to maintain it. So it gets really unmaintainable very quickly and people get lost and it’s written in such a way that other people don’t understand it because it was rushed and there’s issues that happen.
I try to wash that very quickly and try to give people an understanding of the larger whole all the time, I think it’s really important, if you don’t understand the larger whole than you get down to these rabbit wholes really easily and the best programmers can fall for that very easily, I can too, I want to build this thing instead.
Werner: So, to wrap up, I like your idea of dictionaries to translate between the terminology of different groups. Maybe for our audience, can you give us some examples how the same concept can be known under different names, so we have an idea how different they are, just two examples.
So, two examples. One is if you want to set a zoom level on a map using Esri software you use an LOD or level of detail. It’s just called LOD, LOD equals number, it’s a different number, so zoom level equals seven. So, this is something that you get from a geography degree. And this is something that’s obvious to a whole generation of geographers and GIS people, but to a developer that’s using mapping software for the first time, they’re used to zoom level because they’re used to a consumer map. That’s a big one, how do we get people into developing with this software who haven’t developed with this software before, there’s one, but there’s 50 of them. Here is another example internally, we can both say beta. Esri’s version of a beta and our early startup version of a beta that we are used to is we email some people, maybe have a signup of a page and we allow some people into a site that might not work completely well and we get some feedback and then we have as many people use it as possible, we get some bug reports and then we fix it and then honestly everything is in perpetual beta because we can always improve something, so we release early and often so that we can improve with respect to the world, to the larger organization, and that makes us more resilient, so we want people to mess with our stuff because that makes us resilient; whereas what we learned when we joined Esri was that version of a beta is something that is much more well documented, much more settled, that isn’t released as often and doesn’t really involve as much with respect to the external world and there is an entire architecture of a beta, there is an actual software that you have to stand up on a server that has a beta community and this is all set up and that handles everything, but that takes two months to set up. So, the idea of having to wait two months to set up a beta whereas we just sent some emails out and get some people on the system, which is right? I don’t know. For some communities they want the email and they want to be able to use it and we want to get our product out very quickly, but other communities are “we want our very formal beta process”, so you just have to figure out who you are talking to. So that’s an example where we say beta but it’s a completely different thing. Every step of the way we say a word and we figure out do both organizations have the same idea of the word. If so, great; if not let’s either figure out either a new definition of the word or let’s figure out which methodology we want to follow and the costs and benefits to that. So, never take language for granted, it’s the most powerful thing you have.
Another thing is maybe you do a product or project and there’s been a failure at some point before or you couldn’t get buy-off, you can change the language, you can just use different words, because what will happen is a committee of 30 people has determined that that thing is bad or wrong and often this is where the competent jerk comes in and says “but this is the right thing to do”, but they keep using the wrong words, you come in and say “oh, let’s use this different phrase and let’s put new meaning into that new phrase again and then we can actually assign the old meaning to this new phrase” and you can push it through again because the term is new. So, that allows everybody to dump all the baggage and issues they had about that word and reconsider something. And that’s one of the biggest things where people say “oh, I tried to do this project and I tried ten times over three years and it failed every single time”; ok, how many people did you have that cared about it, did you get approval from a champion inside the company who has been there for a long time, did you use the right words, did you look like an outsider when you were doing it or did you look like you were a part of the company that had the best interest in mind? So it’s all about positioning and a lot about diplomacy. And because of that I end up watching a lot of Star Trek, trying to see what Jean-Luc Picard is doing because it’s a great example of diplomacy, with great diplomacy you can prevent a fight, you can prevent death, so you definitely want to do that in a large organization, maybe it’s like Star Fleet, it’s a benign organization but it’s big and it’s doing important work.
Werner: That’s an excellent way to end, let’s all be like Jean-Luc Picard and solve the problems.
That would be fantastic. I don’t think anybody would disagree.
Werner: I buy everything Jean-Luc Picard says, or Patrick Stewart, whichever he is nowadays.
He’s the same person, right?
Werner: Pretty much.
So, read lots of Shakespeare.
Werner: Exactly. That’s a good quote to end on, thank you very much, Amber.