The Changelog: Software Development, Open Source - Boldly going where no data tools have gone before (Interview)

Episode Date: June 19, 2019

Computer Scientist Yaw Anokwa joins the show to tell us how Open Data Kit is enabling data collection efforts around the world. From monitoring rainforests to observing elections to tracking outbreaks..., ODK has done it all. We hear its origin story, ruminate on why it's been so successful, learn how the software works, and even answer the question, "are people really using it in space?!" All that and more...

Transcript
Discussion (0)
Starting point is 00:00:00 Bandwidth for Changelog is provided by Fastly. Learn more at Fastly.com. We move fast and fix things here at Changelog because of Rollbar. Check them out at Rollbar.com. And we're hosted on Linode cloud servers. Head to Linode.com slash Changelog. This episode is brought to you by DigitalOcean. DigitalOcean makes it super simple to launch a Kubernetes cluster in minutes. The DigitalOcean Kubernetes platform empowers developers to launch their containerized applications
Starting point is 00:00:27 into a managed, production-ready cluster without having to maintain or configure the underlying infrastructure. They seamlessly integrate everything with the rest of the DigitalOcean stack, including load balancers, firewalls, object storage spaces, and block storage volumes. They even have built-in support for public and private image registries like Docker Hub and Quay.io. Developers can now run and scale container-based workloads
Starting point is 00:00:53 with ease with the DigitalOcean platform. Learn more and get started for free with a $50 credit at do.co.changelog. Again, do.co.changelog. All right. Welcome back, everyone, to The Changelog, a podcast featuring the hackers, leaders, and innovators of software development. I'm Jared Santo, Managing Editor here at Changelog. Today, computer scientist Yao Anakwa joins the show to tell us how Open Data Kit is enabling data collection efforts around the world. From monitoring rainforests to observing elections to tracking outbreaks, ODK has done it all. We hear its origin story, ruminate on why it's been so successful, learn how the software works, and even answer the question, are people really using it in space?
Starting point is 00:01:43 All that and more coming right at you. There's probably a thousand ways you can use a computer science degree, right? And being in school so long to get a PhD in computer science must be just a life's journey, right? But I'm sure you've got some extreme opinions on how to best use a computer science degree in these ages. Yeah, I have some thoughts on that. I was in school for a very long time and sort of early in that PhD journey, I like to say, I sort of had a moment where I realized that the stuff that I was working on didn't really, you know, it didn't really matter to people. It didn't seem to have a meaningful impact. It was just like a fun thing
Starting point is 00:02:40 to do. So during that period, I got a chance to travel to some places in rural Africa where I saw how technology could really make a difference. And that really moved me to sort of stop working on stuff that didn't really matter to people and start focusing all the time and energy and school and education on stuff that I thought could really make a difference today to people who needed it. And so I think there's always going to be like lots of people who are working on ad targeting or some of the stuff that big tech companies work on. But I feel a real strong passion for, you know, using technology to help folks who need help.
Starting point is 00:03:18 And so I've dedicated, I guess, most of my graduate career and postgraduate career to working on that problem. Give us an idea of your journey in school. Like just what's required to get a PhD in computer science? Stubbornness. Tenacity. Resilience. Yeah, all those things.
Starting point is 00:03:38 So I have sort of a strange entry into computing. I'm originally from Ghana in West Africa, and I moved to the States when I was about 10, because my dad got a job teaching at Butler University. And I remember coming to the States for the first time, walking into my dad's house, and seeing
Starting point is 00:03:55 a little math SE. And I remember my dad saying, like, don't touch that. And yeah, naturally, I spent pretty much every waking hour I had playing with that computer. Just when I was on a college campus, I got a chance to just, like, go to the library to have old Vax terminals there and play with those. And so I was pretty in love with computing from a pretty young age. I ended up going to Butler University and got a bachelor's in computer science and another in electrical engineering to do both simultaneously.
Starting point is 00:04:28 There's a special program there that you can do both. I went on to do a master's in computer science from UW, University of Washington in Seattle. And during that process, it was sort of when I had this come to Jesus moment about working on meaningful problems. To sort of answer the core question, what does it take to get a computer scientist? I mean, I really think, obviously, you have to have some minimum threshold of interest in computing and be reasonable at math. And then the rest is being fortunate enough to have a good advisor who can guide you. And then, well, stubbornness. I think that's's really the key you might have a interesting opinion on this a little while back episode 339 we had adam bar on the changelog he's a 23 year microsoft vet wrote a
Starting point is 00:05:16 book recently called why smart engineers write bad code and it was critical of academia with regards to computer science specifically. And his reasoning is because he says in his experience working with a lot of schools that during a computer science, and this might be just a bachelor's degree, they do not have the necessary scope requirements, like the depth of the systems that are built, just because of the time involvement because the curriculum and these other things aren't real world enough to actually get you what you need once you get out there you've been you've been in academia for a long time do
Starting point is 00:05:55 you does that resonate with you or do you find that maybe does not or what are your thoughts yeah so um i have been in academia for a long time and my wife is also a programmer and she taught the University of Washington, the intro classes as well. And so, yeah, I have some pretty strong opinions. You know, for me, the goal of a particularly a computer science degree isn't, it's not a trade school. You know, the goal isn't to teach you how to be a good programmer. The goal is to teach you about computing and how to use computing
Starting point is 00:06:26 to solve problems. And so the focus shouldn't necessarily be on languages, it should be more on algorithms, decomposing problems, having sort of the fundamentals that you need to learn different types of programming languages, getting exposure to that. And then the hope is that once you start, once you start getting into the world at large, you have the sort of the basic skills needed to actually build systems and learn rapidly. So that to me is like at the bachelor's level,
Starting point is 00:06:58 what you should be learning at the master's and PhD level, you know, the goal isn't, it's just to come up with a new idea and evaluate that idea on some particular dimension. You will find a lot of PhDs in computer science aren't necessarily good at programming, but they are very good at solving, you know, that class of problem where there's a new problem, a new way of of thinking and they've measured it in some way they've done science on it yeah i mean i think boot camps are more like what um if you want a sort of a more trade approach where you get a bunch of skills that's where you get get that but for me computer science degree bachelor's level it's really about a set of skills you know
Starting point is 00:07:43 a way to think about computing yeah so somebody came up to you today in 2019 and said i want to be a software engineer would you advise them to start in a trade situation start with a boot camp and then backfill perhaps the fundamentals later with a bachelor's degree if they want or would you say go to a four-year college? I'm just curious what your advice would be. Maybe I'm old-fashioned. I'm an academic. My wife's an academic.
Starting point is 00:08:11 My parents are academics. So I would say definitely a four-year degree. For me, it's not just the idea of just getting the skills needed to become a good software engineer. It's also about, you know, I went to a liberal arts school for undergrad. It's also about getting exposure to different parts of the world, you know, language, music, religion, and all of those influence the kind of work that you do.
Starting point is 00:08:39 You know, in my particular case, my dad's a journalist. And so I spent most of my undergrad building an online newspaper. And I learned a lot from that experience. And that informs the kind of programmer and software engineer that I am today. So I think just a strict focus on, you know, acquiring a particular set of skills, it lacks some of the richness that I think a four-year degree potentially gets you.
Starting point is 00:09:04 I think we need that versatility in our education. So you mentioned that many computer science PhDs aren't necessarily good programmers. Would you consider yourself a good programmer today? I would not consider myself a good programmer today. Why not? Why not? One is practice. These days, I don't spend a lot of time writing code.
Starting point is 00:09:29 I'm sort of doing a lot of everything from marketing, fundraising, to community management, thinking about governance. And so day to day, what I mostly do is write emails and think about writing emails write those emails, fill up on those emails. Yeah, that's where I spend most of my time. And really at the end of the day it's like communicating with folks making sure everybody's on the right page and making sure that everyone
Starting point is 00:09:56 in the community, at the company we're all sort of moving in the right direction. It's probably bad for the project if I'm writing code. I guess it means other high-level stuff isn't getting done. Let's turn our focus to the project. We want to hear about how it started. It's called
Starting point is 00:10:13 Open Data Kit, or ODK for short, and I should mention up front here that I would not have heard of this were it not for Brett Neese in our ping repo. So thanks, Brett. And I just thought I'd read what he said was interesting about it, but we want to hear the history of this were it not for Brett Neese in our ping repo so thanks Brett and I just thought I'd read what he said was interesting about it but we want to hear the history of this
Starting point is 00:10:29 before you bring us up to like present day what that community looks like and everything and he says to him what's interesting about ODK is that it's using a lot of different environments than some of the software that we talk about commonly on the changelog he says it's similar to Singularity in that way.
Starting point is 00:10:45 You guys can go back and listen to that Singularity episode if you want another different thing. And he says it seems to target a more academic audience, which makes sense talking to you, Yao. It's used anything from monitoring rainforests in the Amazon to observing elections in Albania to tackling Ebola in West Africa. Brett personally uses it in an engineering firm where he maintains an ODK server to collect data from telephone pole inspections.
Starting point is 00:11:11 So pretty much data collection is what it's about, hence the name Open Data Kit. And really, it seems to be about bringing data collection capabilities to places where it previously wasn't or couldn't be for various reasons. So thanks, Brett, for bringing this to our attention. And we hope you enjoyed this conversation. You were right. This is very interesting.
Starting point is 00:11:34 And Yao has a very interesting backstory on how this whole thing came to be. So Yao, tell us about that. Open Data Kit was part of your work at your university. And it's still going today. So very valuable. How did it start? Yeah, I could talk a little bit about that. So I moved to Seattle in 2005.
Starting point is 00:11:56 I was accepted to a PhD program at the University of Washington in Seattle. And I went there, actually, I was going to study AI. And I sort of, I abandoned that notion pretty quickly, mostly because I found I had a great relationship with a professor there, Gaetano Borriello, who really sparked my interest in, at that time, it's called ubiquitous computing, this idea that you can have computing everywhere and human-computer interaction, human interfaces to these computers. And so I started working with Gaetano. And during probably my second year, I saw a talk at UW from a guy called Nilesh, who
Starting point is 00:12:38 was at that time sort of a wandering guru. You know, he'd walk, he'd travel from place to place, primarily in sub-Saharan Africa, and help hospitals or whomever needed help with whatever computing problems that they had. And that really sort of inspired me. I was going through a time in my life where I felt like the stuff that I was doing didn't really have a broader impact.
Starting point is 00:13:00 And it seemed like, you know, all this education for not a lot of value to the population at large. And so I got a chance, after listening to Neil, I got a chance to sort of put a pause on my master's degree at that time and go to Rwanda to work with a group called Partners in Health. And at that time, they were deploying a medical record system, an open source medical record system called OpenMRS. And so they were doing it in a small town in rural Rwanda. And I saw during those, I think, six months that I was there,
Starting point is 00:13:37 how important an electronic medical record system could be to treating HIV and TB patients. A lot of chronic care like HIV and TB is done on paper, and paper really sort of limits how effective you can be at treating those patients. It's not like malaria where you get treated once and go away. It's like every, you know, every few weeks, every few months, you're at the hospital. So electronics definitely helps. Electronic medical records definitely helps. And so I saw that experience and I learned from it and I saw how important paper was to the process and how critical electronic medical records could be to sort of reduce
Starting point is 00:14:14 medical disease. And so I kept sort of wandering Africa at the time and Gaetano sort of summoned me back to Seattle and said, you know, you've been wanting for a while. And he was going to take a sabbatical from UW to go to Google to work on a mobile data collection project. This was right before Android was released. And so Gaetano had this idea that a lot of his students were sort of working in this technology for development space and that the common themes seem to be moving sort of paper and digitizing processes. So I thought this idea was terrible, to be honest. I was like, I don't really, yeah, I was like, I'd rather just bum around Tanzania for a little bit. I don't really want to be back in Seattle and working on this stuff. But Gaetano and his students,
Starting point is 00:15:03 a friend of mine, Carl Hartung and William Burnett, sort of convinced me that it was worthwhile. So the three of us went to Google as interns for a year and built out what became initially Open Data Kit. And we did it open source from day one because we are, you know, we're researchers and grad students and we thought it was really important to make it open source available to as many people who wanted to do research on it. And at that time, Android just came out. We released the first version of ODK
Starting point is 00:15:36 as soon as Android was publicly released. And actually, funny story, we took, at that time, there were the Sidekick-style devices. Those initial devices, we took 20 of them. I think Carl and myself were the first people to bring Android devices to the entire continent of Africa because we're not released yet. We stuck them in bags and took them to Uganda to do a quick project. And that's what kicked off the project. So that was in 2008. From there, you know to sort of become the standard tool,
Starting point is 00:16:27 a set of tools that folks use when they're collecting data in sort of a field environment. And it all sort of started from that project we started when we were interns. Over a decade ago now. Yeah, it's crazy, right? The timing seemed perfect with Android coming out and the timing with regards with android coming out and the the timing it with
Starting point is 00:16:46 regards to cutting over from paper to smartphones and tablets because now all of a sudden smartphones were available i mean the iphone predated android but it wasn't going to reach into the same places that open data kit wants us to reach into yeah Yeah, and that's one of the great insights of Gaetano was that he saw that this was really a good chance to be on a platform that worked on a number of different devices. You have to remember we're coming from G2ME and BlackBerrys at that time. And so the smartphone was really a powerful platform
Starting point is 00:17:22 where we can build a whole new generation of applications. And because Android was designed to work on a bunch of different hardware from a bunch of different manufacturers, we thought it was going to be really important that the places that we want to serve, you know, Sub-Saharan Africa, you know, remote jungles, that a variety of devices was really important.
Starting point is 00:17:40 And so that kind of was able to convince at that time Andy Rubin, who was running the Android team, this was a worthwhile thing to try, and so he funded us for able to convince at that time Andy Rubin who was running the Android team this was a worthwhile thing to try and so he funded us for that and you know it seems to have worked out very nicely So when we talk about impact
Starting point is 00:17:55 ODK has been used now by thousands of organizations such as the Gates Foundation USAID, World Health Organization, Jane Goodall Institutes collected billions of data points. Could you give us a few highlights, maybe things personally that you've felt good about it being used for out there in the world, helping people? Yeah, there are a number of these kinds of projects.
Starting point is 00:18:18 So just literally two hours ago, we've got a word from the London School of Hygiene and Tropical Medicine. These are the folks who are currently working with the War Health Organization and the Democratic Republic of Congo. So there's currently an Ebola outbreak that's happening in the DRC. I think there's been about 2,000 people infected currently. So in the first 300 or so days of the outbreak, this is the second outbreak that's happened. And so there's been a vaccine that has been created that is going through a set of trials. So I think about 135,000 people have been vaccinated as part of that effort. And the documentation about that vaccine, who's gotten the vaccine, when and where and how much, that's all collected using ODK. And so there's been about, I think, 1 million submissions just from this outbreak alone that have come through ODK
Starting point is 00:19:17 because of the tools that we've built. So that's an example. Throughout another health example, one of my favorites is polio eradication. And so from WHO, World Health Organization's polio eradication efforts from Afghanistan, Pakistan, Somalia, all those vaccination campaigns, when they go out and they vaccinate, you know, hundreds of thousands of millions of kids, the documentation about that vaccination is all done through O.D.K. The Jane Goodall Institute, when they're tracking conservation efforts in Tanzania, they use O.D.K. The Carter Center, Jimmy Carter cried out O.D.K. and he said it was remarkable. That's where my favorite starts. All the recent elections in Egypt and all these places,
Starting point is 00:20:08 all that documentation is done through ODK. The tribes in the Amazon who protect their forests by documenting illegal logging, that's done through ODK. So everything from, there was an election in Albania, like last year, the monitoring was done. So everything from healthcare, climate monitoring, I know the Portland bus public transit people, they do their surveys throughout the day. They have this sort of wide, the tools have this wide usage where, you know, anytime that
Starting point is 00:20:40 you have essentially a piece of paper and you want to collect data on that piece of paper, but you want it to work offline and you want it to have logic and you want it to have GPS coordinates or pictures. Anytime you have this process where you ordinarily collect data on paper, you can use ODK. And so I think over the last 10 to 12 years, I's a project on the space station that uses it. So I mean, we've seen it pretty much everywhere. It's really humbling. Did you know there was an engineering firm out there using it to collect data from telephone pole inspections?
Starting point is 00:21:18 Yes, I did, but I'm not surprised. One of the real challenges of this open source in this way is that we don't really have a lot of visibility. By design, we don't have a lot of visibility into who uses it. We don't want people to own the data. So the telephone pole example is not, it doesn't surprise me anymore. I got an email from a manufacturing firm, I think in China, that makes the chairs, the seats for Teslas. They use ODK.
Starting point is 00:21:49 So it just seems to be ubiquitous now, but nothing surprised me anymore. I was at a dinner party, said what I was doing, and somebody said, oh yeah, I use that. So yeah, it's pretty cool. One of the points for software is to be adopted, right? One of the bigger hurdles of open source is to be adopted, to be widely used. What do you think for ODK was that? Was it simply the need? Was it being open source?
Starting point is 00:22:18 Was it phenomenal marketing? What do you think made it be used so widely? I mean, I don't know about phenomenal marketing. I don't think marketing is that phenomenal. It's mostly me tweeting sometimes. So I think the important thing that allowed us to take off is luck, basically luck and timing. So it was at a stage where Android was just coming out. We had folks who were stopping use of PDAs and data-based phones when they're looking for alternatives. And technology infrastructure in the places that we work, particularly,
Starting point is 00:22:56 you're getting more smartphone and cellular infrastructure in Sub-Saharan Africa that took off. And then, you know, we were, the core team, we're very committed to supporting our users. And so I think for a long time for the project before it really got big, if somebody sends an email out to the ODK mailing list, somebody generally, often me, you get a response in, you know, under an hour. And so being able to support people who are using this piece of software was a big sort of growth driver. And then the other thing is,
Starting point is 00:23:32 I don't think open source matters as much in this use case, but free matters a lot. And so, for example, if you are, let's say you are at the Red Cross and there is, you know, this happened. This was in Mozambique. There was a hurricane, a cyclone, and you need to go out and hand out supplies and document what supplies you're handing out to people.
Starting point is 00:23:54 You're not going to be able to get a credit card. You know, the country office doesn't have a credit card because it's Mozambique. By the time you get through the approval process at Red Cross in DC or in Geneva, the crisis has magnified to the point where it's no longer tenable. So the fact that you can download it and use it for $0 is huge. If it was $1, the adoption wouldn't necessarily be there. But I think the free is an important thing. The fact that it's open source also means that people don't feel locked in.
Starting point is 00:24:27 So oftentimes we work, you know, we have projects with large governments and governments don't want to use, you know, a sales force or something where their data is trapped in services they don't control by companies that they have no jurisdiction over. And so for very large health projects, say in Kenya or in Nigeria, the fact that it's open source makes a huge difference. So I think those are the things that played up,
Starting point is 00:24:52 you know, it's luck and timing, but the fact that it's free and that folks who deploy it have ownership of their data and their infrastructure is really, I think it's a good part of it. This episode is brought to you by GoCD. With native integrations for Kubernetes and a Helm chart to quickly get started, GoCD is an easy choice for cloud-native teams. With GoCD running on Kubernetes, you define your build workflow and let GoCD provision and scale build infrastructure on the fly for you.
Starting point is 00:25:41 GoCD installs as a Kubernetes native application, which allows for ease of operations, easily and maintain go CD using helm scale your build infrastructure elastically with a new elastic agent that uses kubernetes conventions to dynamically scale go see the agents go CD also has first class integration with docker registries easily compose track and visualize deployments on Kubernetes. Learn more and get started at gocd.org slash Kubernetes. Again, gocd.org slash Kubernetes. so free software is nice well-timed software is nice there's lots of like you said luck's always nice as well there's lots of ways that you can get to that ubiquity but you also can't get there
Starting point is 00:26:38 the software doesn't deliver on its promises and so one thing i read is that you you all had some early goals for ODK, and it seems like you achieved them at least to a certain degree, enough that people wanted to keep using the software. And those goals were you wanted it to be easy to try, easy to use, easy to modify, and easy to scale. So the key word there being easy. Curious how that came out and whether you felt you achieved it early on
Starting point is 00:27:07 or today talk about these goals of yours yeah i think it's pretty punchy right nice clever yeah clever uh marketing there did you backfit that one or was it would you write it on day one i think i i think maybe day two or day three i I was in charge of marketing back then. There you go. Did you tweet that one? There was no Twitter, I think. So I think it's in some as an English repository. From my perspective, and I think early founder perspective is that a lot of the folks that
Starting point is 00:27:40 we were working with in the very early days didn't necessarily have technical expertise. So the sort of user that we're dealing with is, you know, maybe a health organization who doesn't have a lot of funding. The people who are going out to collect the data are maybe a subsistence farmer who hasn't at that time seen a smartphone before. And so you're given, I think at that time, the initial devices were $600. We're giving $600 devices to folks who don't have any experience with smartphones. And some of the early problems that we're running into are, for example, I don't know if this is a podcast, but you should look at your hands. And if you feel your fingertips, they're like these soft, squishy fingers. And those work really, really well on smartphones because you don't have any calluses.
Starting point is 00:28:26 If you do have calluses, if you work on a farm every day, your fingers don't really, they don't work on touch screens the same way. And so probably they have contact glasses. Most of our early users didn't have correct vision. And so that's sort of the user base that we're working with. Organizations that don't have a lot of technical capacity, users that aren't very technically experienced. And so easy was the only way that we could ensure that folks would use the tool. And so we spent a lot of time and continue to spend a lot of time in the field working with folks, just watching how they use the software, making those adjustments. So easy to use means that, you know, the average country office or the average person who's
Starting point is 00:29:10 doing the survey can design the surveys and get them onto the device. And enumerators, what we call it, we'll call it the data. An enumerator can take the tool with a very little amount of training and can go out and collect data. So that's sort of the, you know, easy to use, easy to try part. The scale is really critical because a lot of these projects, once they get going, they generate a ton of momentum. You know, I think at this point, if I look at sort of the mobile app,
Starting point is 00:29:40 over the last year, we've had about two and a half million users use it. And a lot of those users are in Nigeria or India. And so these projects collect, you know, they start very small, but they scale up really rapidly. You know, where they have thousands of people out in the field collecting, you know, tens of forms a day. And so it just gets really big really quickly. So we want to make sure that the software, while it is easy to try, that once you ramp up and once you go to scale from your pilot,
Starting point is 00:30:12 it just kind of keeps working. And then modification is also really important because we can't predict everything. And so we never wanted, especially since we were just grad students working on another kind of very small project, we didn't want to be the blocker on some large project or some small project. And that if you wanted to take the software and it wasn't doing what you wanted, you could just take it and just modify it how you see fit to get your work done.
Starting point is 00:30:38 And all these things have come, you know, it's been good and bad. You know, it's been good in the sense that our focus on ease of use with a little bit of flexibility has gotten the software to really get out there. A lot of people use it, but it also makes maintenance, maintaining and evolving it also a nightmare many times there's an old skcd comic where there's a guy who's fixed a bug and you know a user complains that you know this bug is like critical to my my use case i think the bug is something like you know my fans go up to 100 and um and so i fix this bug performance is back down to normal the fans don't pick up anymore and And then somebody writes and says like, oh, you know, this fan, I use like a temperature sensor on my computer to like run this command in Emax.
Starting point is 00:31:32 And so you've broken my workflow, just add a preference. So a lot of ODKs like that, they're stuff that you may think are easy to modify and easy to scale and all this, but the process of maintaining and evolving the software is kind of a fighter, but that's just software, I guess. Yeah, especially valuable software. The more valuable it is, the harder it is to change over time
Starting point is 00:31:52 because the more people are using it, you have more people using it in places where you didn't expect or rely, like you said, they rely on that bug. Hey, I needed that bug. I would imagine, too, that you have some issues potentially because you've got people that are using these devices that may be learning as they go. And it might even be, I'm assuming it might even be kind of hard to get the bug report, so to speak, from the actual user. Yeah, it's a really, it's a very insightful comment because our sort of the person who
Starting point is 00:32:22 touches the software, you know, we have this active community forum with about 9,000 people on it, which is great. And most of these folks on the forum aren't numerators or people collecting the data. And so when we roll out a software update, we know it's going to devices that people are in situations that sometimes are life-threatening.
Starting point is 00:32:45 There are situations where the employee will be there once to collect data. It's sort of a one-shot thing. But they're just using the software. They're not technical experts. And so it's rare that we get a bug report from a user. Our bug reports come through either great logging and betas, and also just being super, super careful about incrementally rolling out things. So we get a chance to gather feedback from folks wherever they are. Yeah, we don't often get bug reports from users. We get stack traces when there's a crash and try to have long betas. We try to get people to try to think out what rules out the population.
Starting point is 00:33:28 Yeah, they're both tough problems. So let's dig into the software itself for a little while here. I think, I'm sure it's changed over time. It sounds like now you have two sets of suites, ODK, which is for the common case, and then ODKX for complex workflows. Maybe we can talk about ODKX a little bit later. But ODK itself also seems to have at least two parts.
Starting point is 00:33:52 Maybe there's more now, but I started off as the collect side, which I assume is the Android app, the data gathering piece. And then there's the aggregate side, which is some sort of service, a storage management thing. That's as well as I understand them right now, uh, unpack that for us and then help us understand how, cause I get the collection and I get the aggregation, but then also how are the surveys themselves defined and designed by your enumerators? Yeah, for sure. So, um, so, uh, because the project has evolved over time, now there are sort of two suites.
Starting point is 00:34:26 There's ODK, which is sort of the classic ODK that everybody knows. And then there's ODKX, which is not really competitive, but it's like a different take on the data collection problem. And so there's tradeoffs as far as complexity and ease of use of power. So I'm going to focus on sort of the core ODK tools that I think most people know. And those are the ones that are just like really widely deployed. So the reason it's called Open Data Kit, and the kit is really important is because it's a series of tools that all sort of plug and play to let you collect and manage your data. And so there's ODK Collect, which is the mobile app, and that essentially renders forms that you collect data.
Starting point is 00:35:06 There's ODK aggregate, which is a server, a Java-based server that runs either locally or in the cloud. We also have ODK central, which is another server, but different stack. We have ODK build, which is a form designer. And then we also have ODK sort of XLS form, which is another form designer. So probably the easiest way to explain this is to sort of walk you through the process of what it takes to sort of get an ODK campaign up and running. So let's say you have a paper form with three questions, name, age, and gender, maybe a GPS location. The way you would get this form sort of designed is that you use a tool like ODK build, which lets you sort of drag and drop questions into a web interface. And once that questionnaire is essentially designed, you get published and it goes to your ODK aggregate server.
Starting point is 00:35:58 And so once that form is on the server, the server takes that form and uses it to build a database backend with all the tables that you need. You connect ODK collect your mobile client to the aggregate server and it pulls down the form, renders it on the device, you can go out, you can collect your data. When you're ready, you hit submit and then that data goes back to aggregate. So you use build to design the form, aggregate to host the form and the submissions, and collect to collect the data. So that's a very typical use case. Because we have a kit, there's other ways of doing it.
Starting point is 00:36:31 So if you don't like a drag-and-drop form designer, we have an Excel-based form designer that's extremely popular, probably the most popular way that people design forms, called ODK-XLS form. And so essentially, each row in your spreadsheet is a question that somebody is going to ask or receive. If you don't like aggregate, which is a Java, robust but pretty heavy Java-based server, we have ODK-Central, which is another server that's built primarily JavaScript-based. And so people can pick and choose which tools work best
Starting point is 00:37:02 for their scale or their users. But fundamentally, you design a form, you put it on a server, and then the phone talks to the server to send those submissions. One important thing to stress in all of this and the real the value add of ODK was a bunch of value adds, but the big one is that it's all offline. So ODK, you know, people think of forms, they think of maybe SurveyMonkey or something like that, Wufoo. ODK is designed to run entirely offline. The forms can be designed offline. You can collect your data offline. You can go out, you have folks in the rainforest, you can be out for months at a time, collect all your data. It can opportunistically send data to the server when it gets it, but it's all designed to
Starting point is 00:37:45 be offline. It's also designed to work really well with the UI, sort of designed to work well with lightly trained users. You'll probably have seen smartphones before. Everything is big, high contrast. It's designed to work in multiple languages. So the mobile client, for example, is translated by our community to 56 languages, last I checked. So you can have the app itself that's translated into different languages. And then the forms themselves that are on the app can be in different languages. So you can have a phone that's configured, all the menus are in French. And then you can open up that survey and toggle that survey between French, Japanese, Swahili.
Starting point is 00:38:25 You can even have an emoji font. You don't need to have text to describe the forms. For example, you can have video or audio instead of like question text. And this is really important for our users who may not be literate. So you can essentially have a survey where it's just a series of videos that are showing the person what kind of information you want to collect. So it ends up being, again, you know, it's like SurveyMonkey, but like crazy powerful and all working offline. So hopefully that should give you a sense. You build a form, you get it on the server, and then you collect the data.
Starting point is 00:38:57 But, you know, it's more powerful than that. I'd be curious, is there any way of printing a form and then ingesting it via OCR or something later? Because that would be the ultimate and going into the far reaches is you don't need batteries, you don't need a device at all, but you could just like scan the answers later. Yeah, so there it's a great idea. So the way we actually handle the battery problem is interesting, because because we're on Android, we run on a bunch of different devices so we have this point 14 000 different devices that we run on and some of those are uh there's tvs we run on tvs if you want to take a tv out into the field to collect data we can we support that but there's also a lot of low power devices like um uh e-readers that the data collection works on
Starting point is 00:39:43 you can handle batteries that way. The variety of devices also lets us handle different use cases. So I'm talking about Amazon Rainforest. But there's places with heavy canopy where you need an external GPS and a device that is extremely humidity-proof. And so we run on those devices as well. As far as being able to do OCR, we do have some sort of researchy apps. One's called ODK Scan that does exactly that, where you can essentially annotate a sheet of paper, collect the data that way, and feed it into the app.
Starting point is 00:40:19 It's not as widely deployed as the rest of the other tools. That's really cool. I love that it runs on e-readers. That's neat. And I mean, TV runs on e-readers. That's neat. And I mean, TV just seems like kind of ridiculous, but okay. It's ridiculous, but it turns out it's great for training. So if you are at some ministry of health and you don't have a device there, but you have an Android enabled TV, you can just go to the Play Store, download the app, and you
Starting point is 00:40:42 can walk through some complex forms and really show folks what the app looks like and how it works. So you never know. Yeah, you never know. What's deployment like to all the different devices? How do they get the forms? Yeah, so there's a couple of ways of doing that.
Starting point is 00:40:59 So I would say, let's take a small deployment. So a small deployment, let's say there's 10 data collectors or numerators who are going out in the field. Maybe one person who's maybe more experienced, a supervisor has designed a form. So they design a form using the Excel-based tool. They've set up a server in the cloud. So they put the form on the server, and then they take the 10 devices that they have. They configure just one, and then in ODK collect, once you've configured the device, it can generate a QR code.
Starting point is 00:41:33 And then you take the other devices and you scan that QR code, and it configures the rest of the devices that way. So essentially, you can either type stuff in manually on all 10 devices, which seems annoying, or you can just configure one and then scan the devices. And so once those 10 devices have been configured, the phone can then download the forms that are available on the server onto the device. And then you can go about your day collecting your data. So that's for a very small deployment. For large deployments, if you have 10,000 phones, then you need more people, but you can essentially also put a settings file onto the device however you want to do that.
Starting point is 00:42:12 And the reason that this configuration is really important is because of the flexibility of the mobile client. So there's buttons on the screen that you may want to hide. You may not want your numerator to be able to delete data once it's collected, for example.
Starting point is 00:42:28 Each device has to be configured for the appropriate permissions levels for a particular deployment. What if you're going to deploy it into space? What if you're going to deploy it into space? Yeah, the space project is really interesting because
Starting point is 00:42:44 it was, they had about 3,000 people in rural Kenya handing out water filtration devices and collecting data, GPS coordinates and barcodes of each device that was collected. And then they were sending it off to a server. And the campaign was run by an astronaut. And so he was in space configuring devices and playing with the data on the server. So it turns out when you're deploying in space, there isn't dramatically, at least for our software, there isn't a dramatically different set of steps that you have to follow. So that's nice to know.
Starting point is 00:43:24 For my next space deployment, I just do the regular thing. Just do the regular thing at a work rate. It sounds like an early need to do offline was a pretty significant thing for adoption because there isn't always a network. I'm wondering, is there like a local LAN kind of scenario where maybe there's a network, just not a WAN? Is that kind of how this works in a way where you may be offline but you're sort of on a local network but still kind of not really online but kind of offline i mean there are some
Starting point is 00:43:55 projects where you know they'll have a hot spot or something and so for those kind of deployments you can imagine you know i'm in a small city in the main city, but I'm a small city. I've sent out a bunch of data collectors to even more rural locations. They come back to the hotel in the small city. They set up a WAN, and then they, you know, they submit data to a desktop computer that's running the server software. That's one kind of use case. But the more common use case is that there's no connection whatsoever, no WAN, no nothing. And so out, you collect the data.
Starting point is 00:44:30 But there's almost always a cell network nearby or close enough. And so it's at that point where if you have a connection, you can send to the server. That's the second common use case. And then the third common use case is that there's no connection, no internet anywhere. And so you just plug the phone into the computer. And then we have desktop software that pulls the data from all the devices that you plug into it and then generates whatever reports it. Good old wires making it happen. Yeah, good old wires.
Starting point is 00:45:01 I love talking about software that's been around and used for a long time because you guys have been through so much like you handle so many different cases it's not like this is a beta or this is a 1.0 we didn't think of that I mean everything was thrown at you you're like oh yeah this is how it works this is how you do it here's a weird scenario it still works it's just not great or whatever
Starting point is 00:45:20 but there's just there's something about software that's stood the test of time and been used in mass for a long time where, sure, it's got its warts, it's got its bugs that are actually features that are actually bugs, but it also has like a lot of weird, strange things that it can manage because it's had to.
Starting point is 00:45:36 Yeah, and one great example of this is we had some folks, one guy show up on our forum and say what he was using ODK for. And as a gift to his wife, he had built essentially a jukebox with a software. So I have to explain this because it's a little crazy. So if you think of something like SurveyMonkey, you can have questions that are radio button questions, right? And then you can have the next screen show results based on those
Starting point is 00:46:05 actions. And so in ODK, you can have text answers, but you can also have audio answers, options when you're doing this radio button. And so he had built a hymnal where the radio button selected the song you wanted to play. When you go to the next screen, it would show you the lyrics of the song, plus an audio snippet that you could play it. And so, you know, when people think of data collection, they really think just purely as a, you know, a replacement for paper forms. But what it ends up being is a sort of a lightweight programming environment for folks who are super creative. And so those use cases, there's use cases where people build a form that's really a triage protocol. And so you can hand this phone to a nurse and they walk through the same steps that a doctor will walk through to sort of triage a patient. So there's all these kinds of use cases
Starting point is 00:46:58 that if you're at it for 10 years, you sort of cover the long tail of what people want to do. That's awesome. Yeah. On our last show we were talking about CSS and HTML and there was a survey that went out about,
Starting point is 00:47:12 and with survey questions about HTML and CSS and one of the questions is, was it HTML, Adam? Is HTML a programming language or is CSS a programming language?
Starting point is 00:47:21 And it was funny because we had a brief conversation about it but then on the interwebs throughout this week there's been the conversation of like, are these things programming languages? And let me just go back. Last week, I was saying it's not a programming language. Okay, CSS can do some crazy stuff I didn't realize. So yes, it's Turing complete.
Starting point is 00:47:38 So I take it back. I was wrong, Adam, you were right. It just shouldn't be. It shouldn't be one, but it is. And so that made me think of, okay, they're using ODK for all these crazy things. It leads to the question, is ODK a programming language? It might be. So I would say it's not, you know, the tools, maybe this gets into sort of the underpinning technologies that we use. So the forms that you're using, the drag and drop form designer, or you're using the Excel-based form designer, all those sort of output an XML document. And that XML document is an Xform. So Xform is this old standard that IBM came up with, open source standard for forms. And I think
Starting point is 00:48:22 ODK and maybe Orbian forms, which is another open source project, are probably the only people on the planet who continue to use Xforms. But we found it a really powerful standard for Turing-complete forms. And our engine is a little, it's not as powerful as it could be, but essentially lets you do all sorts of crazy things with these XForms. And so for our users who are particularly advanced who step outside of the graphical designer or outside of the Excel-based designer and jump into Rock somehow, you can build some really powerful tools using that Form step.
Starting point is 00:48:59 So yeah, it is... I don't know if we can guarantee that it's during complete. We can build some wild stuff. We can build some wild stuff. We can go through wild stuff with these forums. This episode is brought to you by our friends at Rollbar. Move fast and fix things like we do here at Changelog.
Starting point is 00:49:22 Check them out at rollbar.com slash changelog. Resolve your robert.com slash changelog resolve your errors and minutes and deploy with confidence catch your errors in your software before your users do and if you're not using rollbar yet or you haven't tried it yet they want to give you 100 to donate to open source via open collective and all you got to do is go to robert.com slash changelog sign up integrate rollbar into your app, and once you do that, they'll give you $100 to donate to open source. Once again, Rollbar.com. So, yeah, earlier you said that you don't feel like you're a good programmer anymore.
Starting point is 00:50:08 And then you went on to list off what sounds like some pretty amazing software that's come from ODK and that project. So I'm guessing you have more people than just yourself involved because you got a lot of awesome software out there and surely didn't build it all by yourself. Can you tell us about the team, the community, what's grown, who's involved and so on? Yeah, absolutely. So yeah, you're right. I didn't build it all. Actually, I did. It was a long decade of writing.
Starting point is 00:50:42 You know, ODK is possible only because, you know, there is a community of people behind it. And when I say community, I don't just mean the software developers. I mean, you know, everybody who files a bug report is a community member. Everybody who writes a little piece of doc is a community member. Whoever does a training, because it's only through the individual efforts of these folks that the stuff works. And this is really important in our use case, because I think we talked about earlier that most of our users are not technically savvy. And so for some people, we're out in the field and we see that somebody struggling with like a bug, a very subtle bug. And this has been a bug that's been there for a while. And maybe millions of people have experienced this bug, but nobody complained. Nobody said to their supervisor or hopped on
Starting point is 00:51:34 a forum to complain. And so everyone who does that or who contributes to the project really is a member of the team. The project is organized currently as there's a project management committee that sits at the top. Each of the suites of software have their own technical steering committee. And so I'm going to focus on sort of the ODK technical steering committee. We have folks from companies within the ecosystem
Starting point is 00:51:58 who are there as sort of oversight of the project. And then the core software development, the majority of it is done by Nafundi, which is a company that I run. So we have a team now of about 7 to 10, depending on how you count, who do the core
Starting point is 00:52:15 development on the tools. And then we have a number of contributors that have come in to either Summer of Code or just people who use the software, fans of the software, who sort of contribute code. And so the way it typically works is that we start from our forum, where almost all the developers and a big part of the more experienced users live. When they have feature ideas or feature suggestions,
Starting point is 00:52:46 you have those discussions on the forum. Once it's to a point where we feel like, ah, that's a pretty good feature idea, it's been specced out, it goes to the technical steering committee where we sort of discuss it, make sure it's within our scope and what we want to build. And then that goes to GitHub where it's filed as an issue. And then someone, usually somebody
Starting point is 00:53:08 from the team at Nafundi, built it. Its PR is reviewed by somebody else and then eventually gets merged and it's released. You usually have monthly or every two months, it's eventually released to the community. There's a beta, but then it's released to the community. So that's how it works. I would guess most of our contributions come in not... We have a few contributors who are regulars on the code side,
Starting point is 00:53:33 but we have a ton of contributors on the support side, people who show up to our forum, who use ODK, who like it, and who are there to answer support questions from other newer folks in the community who have a lot of those kind of contributors. That's how it happens. That's how the magic happens. I just want to say those kind of contributors are awesome. They just hang out. They're there.
Starting point is 00:53:55 They're part of the community. They answer questions. I just feel like sometimes they're the unsung heroes of communities because they don't normally get the press or the thanks or much, but that hugely valuable and really make a, they make a group feel like a community or, you know, people feel like a family or whatever,
Starting point is 00:54:14 because they're there and they're part of the team, even though they're just happy users, you know? Yeah. And I think in our case, it's so important. Well, one is I'm biased because I spent the vast majority of my time on the project is spent answering support questions.
Starting point is 00:54:29 I find it really valuable because one complaint means that there's probably like 10 people who have that particular problem. And so the more support questions you answer, the more in tune with what the broader user base are. And so at Nafundi, we try to make sure that every dev is on the forum and is answering support questions. Because if you're not doing that, you're not feeling the pain, and you're just building random stuff then at that point. It emotionally connects you to the software you're making
Starting point is 00:54:57 because you can truly see the people that are using it, the impact, the errors or bugs or downsides of software, how they're impacting that person. And it provides an empathy path. Yeah, for sure. Absolutely. So when did you start Nafundi and what gave you the idea to do this and how is it going? So Nafundi started, let's see, ODK started in 2008 and Nafundi started in 2011. It was founded by myself and Carl Hartung. Carl was also my co-founder on ODK. And no longer with the company, but,
Starting point is 00:55:34 you know, we are still here and growing like crazy. So the company started because Carl and I wanted to keep working on ODK. So, you know, eventually you graduate, eventually they give you a PhD. And over, you know, since 2008 to 2011, you know, we had poured a lot of time and effort into not just the software, but growing a community ecosystem around it. I can't speak for Carl, but, you know,
Starting point is 00:55:59 and for me, I felt like a deep responsibility to try to keep it going as long as I could. All agreed. So we also kept getting projects. People kept using ODK at scale and needed help. And so in 2011, when we decided we were going to graduate in 2012, so in 2011, we started the company. I essentially provide professional services on top of ODK.
Starting point is 00:56:23 And so within the first few months, larger and larger products were coming our way. And so our model at that time was, you know, we take consulting dollars, we charge a premium, and then, you know, we do forks or we do core contributions. And whatever margin that we get, we use it to work on the unpleasant infrastructure or core changes that no one was paying for. You know, just standard professional services, open source stuff. Over the last two years, we've moved more into doing grant writing. And so at this time, myself and Alain Martin are now owners of the company. And our model is we do maybe like 25%
Starting point is 00:57:08 consulting work but 75% is grant funded so we go to folks like large foundations, government entities like USAID, and we make the case that ODK is a critical part of the global health
Starting point is 00:57:24 and global development infrastructure and that a lot part of the global health and global development infrastructure, and that a lot of their grantees and their projects use the software, but don't necessarily have a line item to support it. So I think it's really awesome that a World Health Organization or the Carter Center or a Red Cross uses the software. But when an organization with 10,000 users shows up on your forum, that's not a gift necessarily. It's a responsibility.
Starting point is 00:57:51 And the reality of our project is that we need resources to be able to fund developers who are essentially full-time who can make sure that we take a long-term view to support the tool. So we make that case to grants and to funders, and they've historically been agreed with that logic and that rationale.
Starting point is 00:58:15 So we essentially get grants to pay for the core developers who are there every day doing unpleasant stuff, like big-time migrations. Like no contributor wants to make sure that the app, you know, respects time zone or is tested on, you know, every device known to man. So you raise grant funding that way to pay for the core team.
Starting point is 00:58:41 And then the core team's mission really is, you really is to do the messy stuff, but also put processes in place that enable others to contribute. As you know, a lot of open source projects, most of your contributors are going to be drive-by. And so making sure that we're not just fixing stuff, but we're putting together a process that allows external contributors from wherever they are to contribute to the project. That's a big part of what we do as part of the folks that we bring on to work full-time. What I find interesting here is how you've changed how people pay for software like this. It's still free, but it's not free to build. It takes people power, it takes planning, et cetera, support, as you've mentioned.
Starting point is 00:59:26 And rather than having the would-be enumerators or form designers or people who are at the forefront of the problems having to swipe a credit card or find a way to pay for software that they haven't been able to establish a better relationship down the line with the actual organization and potentially get grants to do large amounts of support and or development. That's super cool how you planned that out. Yeah, planned that out is a very kind thing. Stumbled into, maybe? It sort of emerged. I spent a lot of time thinking about
Starting point is 01:00:02 open source sustainability and these sorts of things. And I wish there were a better way of doing it. But the reality of our customer base is most projects in global development, global health, and sort of the cubit of space are funded at a project level. So you will be able to get an organization to, say, do a malaria project or do an election, but there's nobody who's funding improved time zone support. And so we sort of have to, and I think it works best this way, that we treat ODK as a public good, as infrastructure, and convince the folks who, the biggest organizations who rely on that infrastructure to help support it.
Starting point is 01:00:43 One question that I always get is that, is any of this stuff sustainable? I always find it really like an odd question because like, is Subway sustainable? Like, what timeframe are we talking about here? Right. At what point will it become not useful? Yeah. So I think for me, there's a couple of ways I respond to that.
Starting point is 01:01:01 One is that nothing is forever. As long as the software is in use, I thought when we started the project 10 years ago that it was a terrible idea and it was never going to work. Obviously, I was wrong. I've stuck it through. And I always also thought that someone would come up with a better open source thing that would out-innovate us
Starting point is 01:01:22 or out-repeat us in some way. That has not been the case. I think the difference between ODK and some other projects is that people care about the project. And so people show up every day, certainly I do, to chip away at the problem and try to make software that's a little bit better each day. I think if you do that over a decade, it shows. Things get better.
Starting point is 01:01:43 So for me, it's sustainable as long as people show up and use it. And it's sustainable as long as it's solving meaningful problems for folks. And I think that's a very easy argument to sort of make to somebody who wants to support the project. And so it's sustainable in that way. And if that way ends up not working, we'll try another way. That's one approach to it. The other approach is a lot of things that we do in the do-gooder space is not sustainable. It's not sustainable to deliver bed nets to people who need protection from malaria. We do it anyway because it's the right thing to do.
Starting point is 01:02:19 And there's plenty of resources in the world to do it. For me, the value that ODK generates in the world, as far as life saved and data decision making from elections to climate monitoring, it's in the tens of millions, maybe billions of dollars. There's companies built on ODK. There are software companies built on ODK. There are consulting organizations in a lot of countries that customize O2K for folks. And so there's a huge ecosystem there. And so the funding that we typically ask for is dramatically smaller than the value that we provide. And so to me, it's sustainable in that way. So the grant writing, you said you've been doing that for about two years.
Starting point is 01:03:01 Have you found that to be a winning strategy thus far, something that you want to pour more into or is it difficult to succeed in that way? You know, I think the grant writing is, you know, it's not fun. Sure. I love the chuckle afterwards. Yes. You know, it's not fun, but things that are important to do are often not fun. And so I'm committed to doing that as long as I can. And so far, it's been working. And it's been working since 2011. And in 2011, we did not have as much impact as we have now. And so I'm optimistic that it will continue to work.
Starting point is 01:03:37 But it's not the only thing that we do. I'm always thinking of other ways to get a more sustainable, consistent funding project. And so day to day, that's what I'm always thinking about. Because yeah, grants aren't forever. But we have a pretty good consulting business as well. And so as long as that keeps going, we'll be able to manage. Have you tried hosting? Or is that something that you don't want to
Starting point is 01:04:05 touch with a 10-foot pole? I love hosting. I just love DevOps, just as a hobby. I just love hosting servers. I love DevOps. I think the challenge with hosting for ODK in particular is that there are
Starting point is 01:04:22 other folks in the ecosystem who have a pure hosting business. And so I, as one of the project leaders, I want to be sensitive to not competing with our community members. There's no point in bankrupting one partner just to fund the project. And so hosting is something that we've talked about at a project governance level, but I don't think, currently, I don't think it's necessary. I think it's also not in the reality is, so the largest streams of money
Starting point is 01:04:52 at least in our industry, a lot of it comes from for lack of a better word, consulting. So services revenue feels to me like a better way of funding the project. But you never know things change so we'll adjust as necessary on the grant side you mentioned that writing grants is not fun and it's maybe hard to believe but there are people out there in the world who enjoy writing grants and so i would suggest that you try to find one of them and then you hire them to write the grants for you.
Starting point is 01:05:28 And then everything's good, man. It'd be all good. Get you back on those higher level things. That's right. It's the easy button. Yeah. There are people that like writing grants. I mean, maybe they don't love it.
Starting point is 01:05:39 Maybe they don't wake up in the morning and just die into it, but they like it. Well, maybe I'm not being fair to grant writing. It's not the most fun thing to do, but I also don't mind, maybe I'm not being fair to grant writing. It's not the most fun thing to do, but I also don't mind it. Okay. So it's quite all right. You know, I think, yeah, if there, maybe this is a good segue, if there are folks who want to contribute to a project and chip in on everything from grant writing to, you know, all the various things that we have on the project, you know, welcome. And I try to maintain a very open definition of what a contributor is.
Starting point is 01:06:09 We need all sorts of help. So don't let me just have all the fun. Yeah. My next question was thinking about Nafundi being a funding source for this, a sustainable source for this, meaning that you might be hiring more people to contribute,
Starting point is 01:06:23 not just to the project itself, but to the greater goal of Nafundi to do the same goals for ODK. Yeah, I don't know if there are many companies who are, I guess there are some companies that are sort of really closely aligned to a project. For me, the folks who run Nafundi, our goal is to sort of align ourselves as closely to the benefit of the project. So we try to position Nafundi
Starting point is 01:06:52 as a vehicle to grow ODK as much as possible. And it's way more important that ODK as a project survive and thrive than it is for Nafundi to survive. And so, yeah, it's really just a vehicle for us to do that. I look at that scenario like anybody who relies on a piece of equipment, right? Like in this case, ODK is Nafundi's piece of equipment, crucial piece of equipment to do the job which is to create awesome surveys forms data collection processes etc you know like if you swing a hammer and that hammer is your core piece of equipment
Starting point is 01:07:35 how do you treat the hammer you probably shine it you probably clean it you probably maybe even put some special oil on the wooden handle i don't know i just thinking, like you're going to take care of it basically. Like it's in your best interest. I don't think you're going to shine a hammer necessarily. I'm just saying, like you might go overboard at this point in ensuring that this piece of equipment never fails you, that it remains the hammer it needs to be.
Starting point is 01:07:58 Show it with like a samurai sword, then you could sharpen it, you could shine it. Yeah, maybe this metaphor doesn't work. But I mean, I think you're preaching to the choir here because right certainly i i agree with you but when push comes to shove i you know i find that a lot of people i mean if you just look at like open ssl for example there are a lot of companies that rely on this piece of software but they don't
Starting point is 01:08:19 necessarily treat it well and it's a structural and governance issue there. One thing that we're doing at ODK is taking a real close look about how we encourage other organizations to participate. You know, I was saying that we have this technical steering committee with folks from different organizations.
Starting point is 01:08:38 We just launched a new sort of providers page where people who, organizations and individuals who contribute big chunks of time and effort to the project get listed as a recommended provider and try to align the incentives so the more support questions you answer properly the higher up on the odk website you go as a recommended person higher and the questions have to be answered in the open so for our individual contributors
Starting point is 01:09:04 that's like people who are helping get a chance to get hired. And then for the companies, if we see that a lot of your devs are working on the core tools, then yeah, you are absolutely on the provider website if somebody wants a customization or a large deployment that they should hire one of these. Then try to align it
Starting point is 01:09:20 so we don't have to depend on sort of the kindness of companies to do the right thing. It's just like it helps your bottom line to do the right thing. So where does the Open Data Kit community live and what's the best way to get involved? Yeah, that's a good question. We live currently at forum, F-O-R-U-M dot Open Data Kit dot org. I always have to spell it out because form as in the survey form and forum are, yeah, it gets super confusing. Maybe we should just make that an alias.
Starting point is 01:09:50 But that's where the community lives. And so anyone who is interested in participating in the project can go to that forum. It's a discourse forum. Create an account and just introduce yourself. And just say roughly what you're interested in. So that's one way of doing it. And then sort of my commitment, whenever I say this, my commitment to anyone who shows up and introduces themselves and says, I'm interested in helping, is that I will take some time and we will talk about what you're interested in, what your skillset is, how you want to grow, what you want to do, and we'll find a place in the project for you. So that's sort of very hands-on approach,
Starting point is 01:10:34 but it's an approach that we want to take because we want to make sure that it's not just, you know, that's a two-way street. You're helping us and we're helping you in some way. So go to the forum and introduce yourself. If you're a dev and you just want to hack on code, certainly you can go to our GitHub page, github.com slash open data kit, all one word. And there's a bunch of repos there. Some of the started ones are the active ones. And then each repo has good first issues or quick wins. And so you can pick any issue.
Starting point is 01:11:06 You have a contribution guide. You can follow that contribution guide to get your first PR, and then it will be reviewed, tested, and merged. So that's another way of going. But the lowest bar, I think, is just go to the forum, say hi, and sort of join us. I should say that everyone is welcome, regardless of your skill set. If you're a designer, you're welcome. If you're a developer, you're welcome. If you love grant writing,
Starting point is 01:11:31 you're welcome. If you want to help us on social media, you're welcome. Literally anything that you're interested in, we will do our best to find a spot for you. The forum now has, I think, almost 10,000 people, 9,000, 10,000 people on it, all helping each other. And it's, you know, I participate in a lot of open source. I'm a little biased, but I think it's the nicest and friendliest community out there. So we'd love to have anybody who wants to. Well, yeah, it's been an awesome conversation with you, especially digging back into your journey, kind of learning where you came from in terms of all this schooling to get a CS
Starting point is 01:12:06 degree and to use it so wisely, so impactfully. I'm just, I'm taking it back. You did an awesome job with all this and you're running a great community and we thank you for your time. Well, thanks for having me. It's been a sort of a great conversation. And you know, I think I said very early on, I'm a long time listener of the Change Log, so it's really an honor for me to be here and share the work that the folks in our community are doing. Well, let me say on our behalf, we're definitely glad to have you. Thank you so much. It was awesome. Thanks so much. All right. Thank you for tuning into this episode of the changelog. Hey, guess what? We have discussions on every single episode now. So head to changelog.com and discuss this episode. And if you want to help us grow this show, reach more listeners and influence more developers, do us a favor and give us a rating or review in iTunes or Apple podcasts. If you use Overcast, give us a star. If you tweet, tweet a link. If you make lists of your favorite podcasts, include us in it.
Starting point is 01:13:08 Also, thanks to Fastly, our bandwidth partner, Rollbar, our monitoring service, and Linode, our cloud server of choice. This episode is hosted by myself, Adam Stachowiak, and Jared Santo. And our music is done by Breakmaster Cylinder. If you want to hear more episodes like this, subscribe to our master feed at changelog.com slash master. Or go into your podcast app and search for Changelog Master. You'll find it. Thank you for tuning in this week. We'll see you again soon. Bye. you

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.