<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[DevResults]]></title><description><![CDATA[M&E software for global development.]]></description><link>https://blog.devresults.com/</link><generator>Ghost 0.11</generator><lastBuildDate>Sun, 05 Apr 2026 07:57:24 GMT</lastBuildDate><atom:link href="https://blog.devresults.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Introducing: Project*-Specific Permissions!]]></title><description><![CDATA[<p>We’ve been working hard on a permissions overhaul that touches every page of the DevResults app. Now we’re ready to release <strong>project-specific permissions</strong>, providing you with a huge increase in the flexibility and specificity of user permissions.</p>

<p>Since the dawn of (DevResults) time, we’ve lauded the benefits</p>]]></description><link>https://blog.devresults.com/introducing-project-specific-permissions/</link><guid isPermaLink="false">649555fb-9abb-44a5-98bd-509641c5cf73</guid><category><![CDATA[New releases]]></category><dc:creator><![CDATA[Reid M. Porter]]></dc:creator><pubDate>Tue, 23 Sep 2025 14:00:00 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2025/08/boats.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2025/08/boats.jpg" alt="Introducing: Project*-Specific Permissions!"><p>We’ve been working hard on a permissions overhaul that touches every page of the DevResults app. Now we’re ready to release <strong>project-specific permissions</strong>, providing you with a huge increase in the flexibility and specificity of user permissions.</p>

<p>Since the dawn of (DevResults) time, we’ve lauded the benefits of broad data access to our customers. When colleagues can look at each others’ work, even if it’s not strictly speaking “their” project, they can answer their questions faster and get the data they need easier. Some people worry about the risk that someone may inadvertently enter data or delete documents for the wrong project, but in practice those mistakes are rare and are almost always caught immediately after the fact or in data review.</p>

<p>Even so, there are lots of valid reasons to be more particular about permissions across projects:</p>

<ul>
<li>Some projects may contain sensitive data or information about vulnerable people or partners.</li>
<li>Some projects may work in locations that shouldn’t be known to anyone who isn’t directly involved.</li>
<li>Some projects contain information <em>about</em> partners or other third parties that shouldn’t be broadly shared.</li>
<li>Some organizations have such scale or hierarchy that one-size-fits-all permissions leads to an overwhelming amount of <em>stuff</em>.</li>
</ul>

<p>So how can we offer a solution that’s simple to use but allows you to specify different permissions for different projects for each user? Lucky for us, we already have a system for assigning individual users to projects for which they are responsible — the Staff Roles table!</p>

<figure style="text-align:center">  
   <img src="https://blog.devresults.com/content/images/2025/08/staff-roles-1.jpg" alt="Introducing: Project*-Specific Permissions!" style="width:800px;margin-bottom:25px;margin-top:25px;margin-left:auto;margin-right:auto">
</figure>

<p>The same table that already gives partner users access to a project can <em>also</em> be used to identify when people need particular permissions for a project they work on versus one they don’t.</p>

<p>We decided to use this concept of “assigned projects” and “unassigned projects” as a handy way to differentiate between “broad permissions” and “limited permissions” within user groups. Since the concept of a ‘project’ is central to our <a href="https://help.devresults.com/help/data-structures">data model</a>, it’s easy for DevResults to translate project assignments to relevant indicators, results frameworks, and partner organizations without a lot of clicking and decision-making.</p>

<p>And it looks a little something like this:</p>

<figure style="text-align:center">  
   <img src="https://blog.devresults.com/content/images/2025/08/user-group-permissions.jpg" alt="Introducing: Project*-Specific Permissions!" style="width:800px;margin-bottom:25px;margin-top:25px;margin-left:auto;margin-right:auto">
</figure>

<p>Note that any users in this example group can do just about everything for projects they’re assigned to, but can still see most information and content on all the other projects. They can still participate fully in project discussions (to ask questions, share insight, etc.) but <em>can’t</em> see documents or financial information, which is restricted to assigned users only. </p>

<p>After much experimentation, this seemed the simplest, most straightforward way to give our customers greater control over what their users can see and do in DevResults. Combined with unlimited, custom <a href="https://help.devresults.com/help/permissions-overview">user groups</a> and unlimited <a href="https://help.devresults.com/help/manage-users">user accounts</a>, site owners have more flexibility than ever in striking the right balance between complexity and security.</p>

<p>We’ve also included some helpful tools to make <em>implied assignments</em> a little more visible. Site owners will be able to see a new Applied Permissions table on each user’s profile page to show which projects, data tables, and indicators they have access to:</p>

<figure style="text-align:center">  
   <img src="https://blog.devresults.com/content/images/2025/08/applied-permissions.jpg" alt="Introducing: Project*-Specific Permissions!" style="width:600px;margin-bottom:25px;margin-top:25px;margin-left:auto;margin-right:auto">
</figure>

<p>In addition, every user will see a tiny ‘A’ for <em>assigned</em> or ‘U’ for <em>unassigned</em> in the top right next to the bookmark star whenever looking at a project, data table, or indicator so they know unambiguously whether or not they’re assigned to something in particular:</p>

<figure style="text-align:center">  
   <img src="https://blog.devresults.com/content/images/2025/08/assigned-project.jpg" alt="Introducing: Project*-Specific Permissions!" style="width:500px;margin-bottom:25px;margin-top:25px;margin-left:auto;margin-right:auto">
</figure>

<figure style="text-align:center">  
   <img src="https://blog.devresults.com/content/images/2025/08/unassigned-indicator.jpg" alt="Introducing: Project*-Specific Permissions!" style="width:500px;margin-bottom:25px;margin-top:25px;margin-left:auto;margin-right:auto">
</figure>

<p><strong><em>But what if you like your permissions the way they are</em></strong> — one set for each user group, without having to worry about individual project assignments? Well, you can keep doing what you’re doing! There's no need to upgrade if you are happy with how things are configured currently.</p>

<p>You can <a href="https://help.devresults.com/help/project-specific-permissions">read more about project-specific permissions in our Knowledge Base</a>. If you want to upgrade to project-specific permissions, get in touch at <a href="mailto:help@devresults.com">help@devresults.com</a>!</p>

<hr>

<p>*You may have noticed we’ve started saying <strong>‘project’</strong> instead of <strong>‘activity’</strong>. That’s right, our customers have voted with their <a href="https://help.devresults.com/help/renaming-terms-in-devresults#RenamingTerms">pseudonyms</a> — ‘project’ has beaten out ‘activity’ as the preferred term to describe individual units of work. We’re following suit — and we’re currently updating our Knowledge Base with this change.</p>]]></content:encoded></item><item><title><![CDATA[The Evolution of DevResults Setup]]></title><description><![CDATA[<p>Today, an organization can go from zero to a fully-configured DevResults site in less than a week. Sometimes organizations need more time to gather program information internally, but once that info is ready, <strong>a few simple steps create a DevResults platform that’s ready for folks to report data and</strong></p>]]></description><link>https://blog.devresults.com/the-evolution-of-devresults-setup/</link><guid isPermaLink="false">18adfcb0-6c30-4301-971d-4e4970de7e5c</guid><category><![CDATA[Spotlight]]></category><dc:creator><![CDATA[Leslie Sage]]></dc:creator><pubDate>Tue, 07 Jan 2025 18:12:00 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2025/01/Bird.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2025/01/Bird.jpg" alt="The Evolution of DevResults Setup"><p>Today, an organization can go from zero to a fully-configured DevResults site in less than a week. Sometimes organizations need more time to gather program information internally, but once that info is ready, <strong>a few simple steps create a DevResults platform that’s ready for folks to report data and analyze results</strong>. How did we get here? </p>

<h3 id="thebeginningthrough2013">The beginning through 2013</h3>

<p>DevResults began with a fairly tedious setup process, for both you and us. On our end, we pored over M&amp;E documents and wrote custom code to pull information into the system. This took weeks or even months. On your end, there were no features for doing things in bulk online. For example, assigning 30 indicators to 10 projects took at least 300 clicks. We’ve come a long way since then. </p>

<h3 id="theoriginaldevresultssetuptemplate">The original DevResults setup template</h3>

<p>In late 2013, we introduced a more systematized process that served folks well for a decade; we created a single Excel template that defined and captured all the program information needed to create a DevResults site. It had a dozen tabs that captured projects, organizations, indicators, disaggregations, locations, users, and reporting periods, plus all the ways these things were linked together. We typically collaborated with organizations for weeks to perfect this template, making sure that everything was internally consistent and linked up correctly. Then we used some standardized code on our end to import the template, creating the ready-to-use DevResults site. </p>

<p>This process offered huge benefits over the earlier bespoke process: The template clearly expressed what information was needed and highlighted any decisions that still needed to be made. But it came with drawbacks as well. First, it was a little complicated to represent all the content and relationships of an M&amp;E program in a simple Excel file. Over the course of a decade, precious few ever nailed it on their first try without a fair number of reviews and revisions from our team. Second, the setup template was only used once to create a “final starting point” as we called it. Our counterparts doing the setup first had to learn how to use the template, and <em>then</em> they had to learn how to use DevResults itself.</p>

<h3 id="introducingournewuserdirectedapproach">Introducing our new User-Directed Approach</h3>

<p>In the last couple years, we’ve added new setup features based on some simple guiding principles: </p>

<ol>
<li>Users should have fast, friendly tools to define their M&amp;E portfolios and enable reporting.  </li>
<li>These tools should work the same way for getting started and for ongoing program changes down the road.  </li>
<li>Users should have the option to work however they choose — online in the app, or offline with Excel templates. </li>
</ol>

<p>At this point, we’ve covered just about everything, including: </p>

<ul>
<li>Projects (aka Activities, Awards, etc.) </li>
<li>Users</li>
<li>Indicators</li>
<li>Locations</li>
<li>Organizations</li>
<li>Reporting Periods</li>
<li>Result Frameworks</li>
<li>Disaggregations</li>
<li>User Assignments to Projects </li>
<li>Indicator Targets</li>
<li>Mechanisms</li>
<li>Tags</li>
<li>Project-Geography Mappings</li>
<li>Project-Indicator Mappings</li>
<li>Narrative Questions</li>
</ul>

<p>Let’s have a look at indicators as an example. Our commitment to fast, friendly tools means that we support: </p>

<ul>
<li>Quick imports of new information</li>
<li>Bulk actions for making the same edit to many things at once</li>
<li>Easy editing for one-off changes</li>
<li>Export and import options to get a full set of info, make edits offline, and re-import</li>
</ul>

<h4 id="quickimportsofnewinformation">Quick imports of new information</h4>

<p>Our new <strong>bulk imports</strong> page collects all these templates in one place. Each key component of DevResults is listed with three buttons that let you visit the index for that component, get a blank template for making additions, and importing that template. A DevResults site can be created from scratch by filling out and importing each template in any order, and then it’s ready to go. Partners can then report data, managers can approve it and generate reports, and executives will have dashboards and visualizations at their fingertips. These tools can be used at any time to add a lot of information at once, like if you’re launching 10 new projects. </p>

<p><img src="https://blog.devresults.com/content/images/2025/01/BulkImport.png" alt="The Evolution of DevResults Setup"></p>

<h4 id="bulkactionsformakingthesameedittomanythingsatonce">Bulk actions for making the same edit to many things at once</h4>

<p>Each <strong>index page</strong> has a suite of relevant actions that you can do to some or all of the items in the index. For example, I’ve selected three indicators here and could bookmark them, assign them all to a selection of projects, assign tags, and so on. </p>

<p><img src="https://blog.devresults.com/content/images/2025/01/BulkAction.png" alt="The Evolution of DevResults Setup"></p>

<h4 id="easyeditingforoneoffchanges">Easy editing for one-off changes</h4>

<p>It’s still easy to make <strong>individual changes</strong> to any part of DevResults by editing a field directly, if you have permission to do so. Changing an indicator’s code just takes two seconds on its definition page. </p>

<p><img src="https://blog.devresults.com/content/images/2025/01/IndicatorDefinitions.png" alt="The Evolution of DevResults Setup"></p>

<h4 id="exportandimportoptionstogetafullsetofinfomakeeditsofflineandreimport">Export and import options to get a full set of info, make edits offline, and re-import</h4>

<p>Sometimes you have a lot of edits to make, or even a systemic change to the whole index. For example, maybe you want to re-do your whole indicator coding scheme. No problem – you can <strong>export</strong> your whole indicator list (or just the relevant rows/columns), <strong>make edits, and re-import</strong> it just like attaching a file to an email. </p>

<p><img src="https://blog.devresults.com/content/images/2025/01/ExportImport.png" alt="The Evolution of DevResults Setup"></p>

<p>These four tools are enabled for every key component of DevResults, from projects to users. We completed this shift about a year ago and have seen dramatic results:</p>

<ul>
<li><p>Organizations are now better empowered to update program information. <strong>We’ve eliminated the tedium of repeated changes and enabled users to make the kinds of bulk updates that were previously only realistic for our team to do on the backend.</strong> This reduces the friction between program changes and users having the reporting tools they need. </p></li>
<li><p>We’ve increased the efficiency of the setup process. One of our main goals in making these changes was for 100% of the setup effort to double as useful training in how to administer a DevResults platform going forward. Previously, we’d collaborate in Excel, build the entire site, and then start training on the platform. <strong>Now the setup process itself gives our counterparts all the training they’ll need to manage changes in program information, meaning that trainings can focus on other tools and user groups.</strong> The result is better, faster transfer of capacity. </p></li>
</ul>

<p>With this major project done and tested, we’ve turned our attention to enabling bespoke user permissions and, as always, anticipating organizations’ need for technology integrations across the international development sector. Stay tuned. </p>

<p>As always, we welcome your feedback, questions, and ideas at <a href="mailto:team@devresults.com">team@devresults.com</a>.</p>]]></content:encoded></item><item><title><![CDATA[DevResults is on the FedRAMP Marketplace!]]></title><description><![CDATA[DevResults underwent rigorous security testing and receive authorization from the U.S. Federal Risk and Authorization Management Program (FedRAMP). ]]></description><link>https://blog.devresults.com/devresults-is-on-the-fedramp-marketplace/</link><guid isPermaLink="false">d6129bb3-a168-472c-924c-dc0b936ed54a</guid><category><![CDATA[Announcements]]></category><dc:creator><![CDATA[Ritika Bhasker]]></dc:creator><pubDate>Wed, 26 Jan 2022 15:14:46 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2022/01/photo-1621072146621-a734295132d9-2.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2022/01/photo-1621072146621-a734295132d9-2.jpg" alt="DevResults is on the FedRAMP Marketplace!"><p>What has twenty thumbs and received FedRAMP authorization in the last year? That’s right. It’s DevResults.</p>

<p>Our team has worked tirelessly over the last year to undergo rigorous security testing and receive authorization from the U.S. Federal Risk and Authorization Management Program. After many months of hard work — and with the support of our auditors, our agency colleagues, and the FedRAMP team — <a href="https://marketplace.fedramp.gov/products/FR2100845343">DevResults is officially FedRAMP authorized</a>. </p>

<h3 id="whatdidtheprocesslooklike">What did the process look like?</h3>

<p>In short: a lot of paperwork. </p>

<p>We invested a huge portion of our time and resources. Our team spent a considerable part of that documenting our internal security processes and protocol, and when that internal process wasn’t robust enough, updating them to make sure they were in line with federal standards. Our engineering team focused on infrastructure updates and formalizing processes, as well as answering any number of questions from the auditors and our sponsoring agency as we moved through the process.</p>

<p>And then we did more paperwork based on those answers and updates.</p>

<h3 id="soyouchosetodoallthatpaperworkwhy">So you chose to do all that paperwork? Why?</h3>

<p>One of our main goals as a company is democratizing international development and humanitarian data. If you’ve worked with DevResults before, you’ve heard us talk about what this means, but you’ve probably heard about it in the context of our data structure. We’ve built our software to make sure that all indicator data is complete and comparable. But having complete and comparable data, especially in the contexts our clients work in, can be actively dangerous if it’s not also secure. </p>

<p>Investing our resources into making sure DevResults is as secure as possible — and then getting multiple external sources to verify that it is! — was a logical next step.</p>

<h3 id="whatdoesthismeanforourclients">What does this mean for our clients?</h3>

<p>For the most part: nothing is really changing for our users. We’ve always been transparent and tried to communicate clearly about everything we do, and we will continue to do so. </p>

<h3 id="sowhatcanyouexpectcommunicationabout">So what can you expect communication about?</h3>

<ul>
<li>Every month, we hold an all-hands Security Day where everyone takes on security-related tasks, including fixing vulnerabilities found by our monthly external security scan, making sure all our software packages are up-to-date, manually spot-checking parts of the app for security issues that the scanner may have missed, and thinking through broader security questions that will help our users. We plan to host a webinar every month for anyone that’s interested in learning more about what we’ve done on that day. </li>
<li>We’ll continue to update everyone on security fixes and upgrades we make via our <a href="https://releasenotes.devresults.com/">release notes</a> and <a href="https://blog.devresults.com/">blog</a>. <a href="https://releasenotes.devresults.com/swapping-markdown-converter-(you-probably-won't-even-notice)-208735">Here’s an example of a recent security-related fix</a>.</li>
<li>Once a year, we go through a rigorous penetration test (which assesses: whether DevResults can fall victim to known vulnerabilities, whether we have any internal misconfigurations based on common attack vectors, and whether we leak any sensitive information, amongst other things). If your team ever needs the results of this test, please email us at <a href="mailto:security@devresults.com">security@devresults.com</a>.</li>
<li>Once a year, we’ll be conducting a FedRAMP audit to make sure we’re continuously aware of and adhering to the <a href="https://www.fedramp.gov/faqs/">FedRAMP standards</a>.</li>
</ul>

<p>FedRAMP authorization is just one of the many ways we’re striving to keep your data safe and secure. If you have any questions, or would like to know more about our security processes, please reach out to us at <a href="mailto:security@devresults.com">security@devresults.com</a>. Please also keep an eye out for an invite to our webinars!</p>]]></content:encoded></item><item><title><![CDATA[STOP Spillover Program Chooses DevResults]]></title><description><![CDATA[<p><strong>DevResults is pleased to announce support to USAID’s STOP Spillover to build the program’s digital monitoring system.</strong></p>

<p>In October 2020, USAID funded a five-year program to enhance the capacity of priority countries in Africa and Asia to reduce the risk of viral spillover from animal hosts to humans.</p>]]></description><link>https://blog.devresults.com/press-release-stop-spillover-chooses-devresults/</link><guid isPermaLink="false">ca6a1e65-3eb5-409c-a1ee-40c87096e1dd</guid><category><![CDATA[Press Releases]]></category><dc:creator><![CDATA[Aasit Nanavati]]></dc:creator><pubDate>Thu, 02 Dec 2021 15:10:00 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2021/12/newspress.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2021/12/newspress.jpg" alt="STOP Spillover Program Chooses DevResults"><p><strong>DevResults is pleased to announce support to USAID’s STOP Spillover to build the program’s digital monitoring system.</strong></p>

<p>In October 2020, USAID funded a five-year program to enhance the capacity of priority countries in Africa and Asia to reduce the risk of viral spillover from animal hosts to humans. Strategies to Prevent Spillover, or STOP Spillover, assists target countries to enhance country capacity to prevent and/or mitigate spillover of zoonotic viruses from animals to humans, and to reduce the amplification and spread of these viruses once they have spilled over to humans. Working with host governments and relevant stakeholders, STOP Spillover will strengthen local capacity to identify, assess, and monitor risk associated with emerging zoonotic viruses, as well as develop and introduce proven and novel risk reduction measures. STOP Spillover focuses on a number of prioritized zoonotic viruses including Ebola, Lassa, Marburg, Nipah, animal-origin coronaviruses (including SARS, MERS-CoV, and SARS-CoV-2), and zoonotic influenza viruses.</p>

<p>STOP Spillover is working in countries that are at high-risk for the emergence and re-emergence of known zoonotic viruses with pandemic potential, starting with five countries in the project’s first year: Bangladesh, Cambodia, Liberia, Uganda, and Viet Nam. </p>

<p>The project includes three integrated and complementary objectives: </p>

<ul>
<li><strong>Objective 1</strong>: Strengthen country capacity to monitor, analyze and characterize the risk of priority emerging zoonotic viruses</li>
<li><strong>Objective 2</strong>: Strengthen country capacity to develop, validate, and implement interventions to reduce risk of priority emerging zoonotic viruses spilling over from animals to people</li>
<li><strong>Objective 3</strong>: Strengthen country capacity to mitigate amplification and spread of priority zoonotic disease in human populations</li>
</ul>

<p>STOP Spillover needed a digital platform to collect, store, organize and present the information necessary to manage its operations and performance. The project was looking for a company that would commit to modifying and maintaining the system as additional country programs and core activities are launched. And that's where DevResults came in. </p>

<p>DevResults — a technology company that supports organizations working in the international development and humanitarian assistance fields — was selected through a competitive process. </p>

<p>The STOP Spillover project mission and objectives include a heavy focus on collecting, analyzing, and monitoring the risk associated with zoonotic disease spillover, and DevResults has a proven track record that will help STOP Spillover meet its objectives. The system build is still currently in the setup and configuration phase and we look forward to formally launching the live DevResults STOP Spillover site in the coming months. </p>

<p>A series of blog posts will be periodically posted as important lessons are captured on the building, maintaining, and managing of the system. These blog posts will be published for open access and will detail different perspectives on the technical work, check in on the progress, and describe steps that are upcoming. So stay tuned for more!</p>]]></content:encoded></item><item><title><![CDATA[Index-ify all the choosers!]]></title><description><![CDATA[Read about our recent upgrade to 'choosers' throughout DevResults — now with all the capabilities of the index pages you've come to know and love!]]></description><link>https://blog.devresults.com/index-ify-all-the-choosers/</link><guid isPermaLink="false">b9543c0a-ca3c-443c-bba4-b3dec8e4fd63</guid><category><![CDATA[New releases]]></category><dc:creator><![CDATA[Reid M. Porter]]></dc:creator><pubDate>Tue, 21 Sep 2021 14:00:00 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2021/09/select-splash-image.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2021/09/select-splash-image.jpg" alt="Index-ify all the choosers!"><p>Silly name, serious business. Today we’re releasing a <em>new</em> feature...that has existed for 10+ years: the DevResults Index, as you’ve never seen it before. </p>

<p>DevResults users have long used index pages across the app — they provide lots of ways to narrow down your search to <em>exactly</em> what you're looking for. We've now adapted other selection tools in the app to match, expanding functionality while streamlining the interface. </p>

<p>Here's an example...</p>

<figure style="text-align:center">  
   <img src="https://blog.devresults.com/content/images/2021/09/multimatrix-indicator-chooser.png" alt="Index-ify all the choosers!" style="margin-bottom:23px">
   <figcaption><i>Want to select indicators for a MultiMatrix report? Now the full Indicator Index will popup, right where you need it to be.</i></figcaption>
</figure>

<p>This update puts one of our most robust and versatile selection tools in many new places, replacing other less-powerful selection tools, including:</p>

<ul>
<li>Selecting indicators for a MultiMatrix report</li>
<li>Pushing or changing ownership of dashboards</li>
<li>Adding indicators to one or many projects, and vice versa</li>
<li>Adding users to one or many projects, and vice versa</li>
<li>Adding reporting periods to a project</li>
</ul>

<p>More importantly, we’d like to share how we got here.</p>

<h3 id="thebackstory">The Backstory</h3>

<p>Building a user interface (UI) requires creativity, invention, experimentation. We spend most of our time thinking up, drawing out, and talking through various ideas, only a fraction of which actually make it to our app. Sometimes we put a few different UI ideas out there to see which work best.</p>

<p><strong>Case in point: how should users choose one thing to be added/linked/assigned/mapped to another thing?</strong></p>

<h2 id="experimentationimgsrccontentimages202109addindicatorsbyresultpngaltresultframeworkandindicatorshierarchypopuponprojectpagestylefloatrightwidth400pxmargintop20pxmarginbottom20px">Experimentation <img src="https://blog.devresults.com/content/images/2021/09/add-indicators-by-result.png" alt="Index-ify all the choosers!" style="float:right;width:400px;margin-top:20px;margin-bottom:20px"></h2>

<p>Let’s say you’re adding indicators to a project. What’s the most intuitive way for someone to find a handful of indicators from a giant list? Well, most people tend to think about indicators as they relate to results frameworks (aka logframes). We see this all the time in spreadsheets that clients send us, with results and indicators tied together. Makes sense! Behold, the “indicator chooser” was born:</p>

<p>Elegant, intuitive, straightforward, no? With this pop-up, you could:</p>

<ul>
<li>“Select all” by ticking an entire framework, full of results and sub-results and linked indicators</li>
<li>Pick and choose your results, and in the process, grab all nested indicators</li>
<li>Expand your entire framework, and select individual indicators one by one.</li>
</ul>

<p>That made sense for a long time. But over time, we noticed users asking questions that this UI pattern couldn’t answer:</p>

<ul>
<li>How do I select all indicators with a particular tag?</li>
<li>How do I search for an indicator name if I don’t know the result it’s tied to?</li>
<li>Why can’t I find an indicator that I know exists? (Spoiler alert: because it isn’t linked to a result, and therefore, will not appear in a result-based list like this.)</li>
</ul>

<hr>

<p><img src="https://blog.devresults.com/content/images/2021/09/add-user-dropdown.png" alt="Index-ify all the choosers!" style="float:left;width:250px;margin-top:10px;margin-bottom:10px"></p>

<p>We had many other patterns for finding and linking other things.</p>

<p>Let's say you wanted to assign a user to a project. How about a dropdown menu? Better yet, a dropdown you can filter by typing a couple characters? That’s great...until you find yourself with 100s of users to assign to dozens of projects, one by one. Or you can't remember someone's first name, but you know which organization they're with.</p>

<p>Sometimes the simplest solutions are not always the best when dealing with complex linkages.</p>

<hr>

<p><img src="https://blog.devresults.com/content/images/2021/09/push-dashboard-choose-users.png" alt="Index-ify all the choosers!" style="float:right;width:400px;margin-top:10px;margin-bottom:10px"></p>

<p>What if you wanted to push some dashboards to several users at once? Once again, we need to select a few key users from a much longer list. </p>

<p>How about a checklist with a search bar and a “select all” option? That's slightly better than just an alphabetized dropdown...except when you want to find just partners, or just users from a single organization, or, or, or,...</p>

<p>Once again, it just isn't possible to give users all the options they need to make complex queries with the standard UI tools that are out there like dropdowns and checklists. Worse, it's slightly frustrating to offer users a very capable query tool in one place, but not everywhere else.</p>

<p>The thing is...these are all <em>solved problems</em>. Despite all of our experimentation with different UI patterns and tools and ‘choosers’, the one that consistently beats them all is the one users are most familiar with: the humble <strong>Index</strong>.</p>

<h2 id="indexification">Indexification</h2>

<figure style="text-align:center">  
   <img src="https://blog.devresults.com/content/images/2021/09/all-the-things.png" alt="Index-ify all the choosers!" style="margin-bottom:23px;margin-left:auto;margin-right:auto">
   <figcaption><i>It's an older meme, but it checks out.</i></figcaption>
</figure>

<p>DevResults index pages are simple but powerful tools for <strong>filtering, searching, bulk editing, querying,</strong> and ultimately <strong><em>choosing</em></strong> things like projects, indicators, reporting periods, users, and more.</p>

<p>Instead of continually reinventing the wheel, we decided to use our most popular ‘chooser’ everywhere it could possibly go. Need to add an indicator to a project? Here’s the indicator index. How about a reporting period? Reporting period index. Users? User index. So on and so forth.</p>

<p><img src="https://blog.devresults.com/content/images/2021/09/dashboard-user-chooser.png" alt="Index-ify all the choosers!">
We hope — and our awesome beta testers have so far confirmed — that this will enable users to find things easier and faster. But the benefits don’t end there.</p>

<h2 id="consolidation">Consolidation</h2>

<p>While experimentation can help you learn what is the best way to do something, the ultimate goal is to consolidate everything you can on that one best way. </p>

<p>This benefits <strong>users</strong> (🖱️) and <strong>developers</strong> (💻) alike:</p>

<blockquote>
  <p>🖱️ We’re busy people. We like consistency. When something is unexpected, it’s disruptive.</p>
  
  <p>💻 We’re busy, too. We like to stay <a href="https://blog.devresults.com/dont-repeat-yourself-share-instead/">D.R.Y.</a> — that means we’d prefer to provide the same value while writing and maintaining less code.</p>
</blockquote>

<!-- -->  

<blockquote>
  <p>🖱️ Our colleagues are also busy. When there’s an existing template or pattern, it means we have to do less training.</p>
  
  <p>💻 Hard same! When we onboard a new teammate, it’s easier for them if they only have to learn one way of doing something, not fifteen.</p>
</blockquote>

 <!-- -->

<blockquote>
  <p>🖱️ We don’t like bugs. When something breaks, we can’t move forward.</p>
  
  <p>💻 Ew, bugs are the absolute WORST. The fixes are not always obvious, and they can really derail your day. The less "surface area" (roughly, lines of code) our app has, the easier it is to exterminate those pesky little critters.</p>
</blockquote>

<hr>

<p>We hope you enjoy using indexes on all your choosers. If you have any feedback for us on this or anything else, don’t hesitate to get in touch at <a href="mailto:help@devresults.com">help@devresults.com</a>!</p>]]></content:encoded></item><item><title><![CDATA[Securing Data in a Crisis]]></title><description><![CDATA[<p>Protection of personally identifiable information (PII) is one of the most important responsibilities in M&amp;E and a solemn duty of technology providers. </p>

<p>As the situation deteriorated yesterday in Kabul, our team discussed what we could do to protect the people that our partners and software endeavor to serve.</p>]]></description><link>https://blog.devresults.com/securing-data-in-a-crisis/</link><guid isPermaLink="false">5a067503-c8a3-4ecf-88e0-aca3d8d61cc0</guid><category><![CDATA[Announcements]]></category><dc:creator><![CDATA[Leslie Sage]]></dc:creator><pubDate>Mon, 16 Aug 2021 16:38:21 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2021/08/SecurityImage.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2021/08/SecurityImage.jpg" alt="Securing Data in a Crisis"><p>Protection of personally identifiable information (PII) is one of the most important responsibilities in M&amp;E and a solemn duty of technology providers. </p>

<p>As the situation deteriorated yesterday in Kabul, our team discussed what we could do to protect the people that our partners and software endeavor to serve. Our team reached out to every organization we work with that reports any data in Afghanistan and has applied the extra security measures deemed appropriate by these teams.</p>

<p>These options are available to any DevResults users (at any time for any reason) to add additional security:</p>

<ol>
<li><strong>Forced logout</strong> of all users: Forced logouts address the risk of someone gaining access to an unattended computer where someone is logged in or had logged in recently. A user must log in again with a password if they try to change pages or begin a new session.  </li>
<li><strong>Erasing passwords</strong> for some or all users: Erasing passwords addresses the risk that passwords have been compromised. It does not prevent someone from creating a new password; a user would need access to their work email in order to create a new password.  </li>
<li><strong>Temporarily removing access</strong> for some users: Owners of DevResults sites always have the option of temporarily changing the permission level of some users to “No Access”. This change takes effect when a user tries to change pages or log in.  </li>
<li><strong>Temporarily shutting down all access</strong> to the site: The DevResults team can temporarily deactivate any site. </li>
</ol>

<p>Today our hearts are with the people of Afghanistan. For any development or humanitarian professionals in Afghanistan, we ask that you take a moment to think of what information you might have online or on a hard drive that could put individuals at risk, and to take steps to protect it in the case of breach of property or access. We recommend reaching out to your technology providers to assess your options. In particular, <strong>consider protecting or erasing PII</strong> of women and girls receiving training and education, and of anyone working with civil society organizations. Please don’t hesitate to reach out to us at <a href="mailto:help@devresults.com">help@devresults.com</a> if we can help with anything.</p>]]></content:encoded></item><item><title><![CDATA[Integrations? We can help.]]></title><description><![CDATA[<p>Over the past few months, we’ve done some serious <em>spring</em> cleaning — by southern hemisphere standards — of our API endpoints and documentation, all in an effort to make our API more user-friendly and accessible to our clients. [I’m sure that most of you reading this are already bored. Don’</p>]]></description><link>https://blog.devresults.com/integrations-we-can-help/</link><guid isPermaLink="false">a38acd78-cbe6-415f-89ac-7b2c324e92a9</guid><category><![CDATA[New releases]]></category><dc:creator><![CDATA[Reid M. Porter]]></dc:creator><pubDate>Wed, 18 Nov 2020 17:01:33 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2020/11/powerlines.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2020/11/powerlines.png" alt="Integrations? We can help."><p>Over the past few months, we’ve done some serious <em>spring</em> cleaning — by southern hemisphere standards — of our API endpoints and documentation, all in an effort to make our API more user-friendly and accessible to our clients. [I’m sure that most of you reading this are already bored. Don’t stop reading just yet! There’s something here for everyone, whether you know what an API is or not!] </p>

<p>DevResults has always had a public API, and we’ve always encouraged our clients to make use of it — to build <a href="https://help.devresults.com/help/integrations">integrations</a>, to exchange data across systems, or to power external dashboards and websites. Occasionally we’ve built our own integrations, most recently with <a href="https://blog.devresults.com/dropbox-integration/">Dropbox</a>, <a href="https://headwayapp.co/devresults-release-notes/devresults-now-integrates-with-power-bi-82316">Power BI</a>, and <a href="https://www.surveycto.com/blog/surveycto-devresults/">SurveyCTO</a>.</p>

<p>To date, we’ve only had a few takers who used our public API to develop their own integration workflows. Even so, we believe in — and our company exists to — <a href="https://blog.devresults.com/you-cant-have-big-data-without-lots-of-little-data/">reduce data friction</a> and <a href="https://medium.com/all-the-things/the-trouble-with-saas-279694551b25">solve the software puzzle for teams</a>. When data can flow easily from user to user and system to system, busy people are more likely to consult that data to make decisions or judge their effectiveness. To that end, we committed to making our API easier to use, writing documentation that’s easier to follow, and providing more support to users who want to build their own integrations.</p>

<p>Throughout our sector, there has been a shift toward adopting technology solutions throughout the project lifecycle. From providing enumerators with data collection tools, to creating a single organizational source of truth, to providing visualizations that tell compelling stories from across the globe, the digital shift requires that technology tools communicate with one another to ensure the flow of data.</p>

<h3 id="whatevenisanapi">What even <em>is</em> an API?</h3>

<p>An API is an <strong>Application Programming Interface</strong>. It’s become trite to say “APIs are how computer programs talk to other computer programs,” and such a simplification obscures both the power and the intricacies of what an API actually does. Unless you live in a science fiction movie, computers are actually pretty bad at talking to each other: they speak mutually incomprehensible dialects, they don’t know what to say unless they’re told, and they don’t know to listen unless they’re asked.</p>

<p>A slightly more useful metaphor to understand APIs might be the dinner table. Each person at your table wants to accomplish something similar (eat food), but each has different needs at different times. One person might be sitting in front of the potatoes, and doesn’t have to ask anyone else to help them get some on their plate. That said, they might offer the potatoes to someone on the other side of the table by saying, “Hey, would you like some potatoes?” while holding the bowl aloft. Someone else might say “I’d like seconds, would you pass them here?” and respond with “Thanks!” when they’ve been successfully handed over. There’s no need for a non-eating third-party server or waiter (i.e. a human user) to pass the bowls around; everyone can serve themselves and pass dishes back and forth as requested. (Can you see where I’m going with this?)</p>

<h3 id="howdoesanapiwork">How does an API work?</h3>

<p>An API works in the same way. Each platform has a list of requests that it understands — pass the potatoes, here are some potatoes, are there any potatoes left — helpfully written down in its API documentation. When a programmer knows what kinds of requests different platforms understand and what ‘dishes’ they have available, they can script out a conversation that can occur repeatedly (at a certain time each night) or as needed (when a user clicks on something).</p>

<p>In fact, this is exactly how every app that you use on a regular basis works: you push a button, and a flurry of requests are initiated to retrieve or write data in various places. It’s how the front-end user interface that you see interacts with the back-end database that you don’t see. (If you’d like to learn more, there’s a great video by technology communicator and YouTube celebrity Tom Scott that explores the <a href="https://youtu.be/BxV14h0kFs0">promise and pitfalls of APIs</a>, especially from 1:43 to 3:10.)</p>

<h3 id="isitreallythatsimple">Is it really that simple?</h3>

<p>Yes and no. It’s not <em>wrong</em> to say “APIs are how programs talk to programs,” it’s just not the full story. In order for one program to talk to another via their APIs, a programmer (read: human) has to write out the dialog. That script turns out to be pretty brittle; if one speaker suddenly starts speaking in a different language or even deviating ever so slightly from the words on paper, the other conversants won’t know how to respond. That’s when your API integration <em>breaks</em>. A programmer (a human, again) has to be alerted that something’s not working the way it should, and rewrite the dialog to accommodate the shift in language. Now the scripted dialogue may proceed.</p>

<p>This is exactly why we at DevResults have neither committed to build nor maintain client-specific integrations — it's a significant investment and risk to rely on a third-party’s API infrastructure that we have little control over. Even when we add “baked-in” integrations to our app, we are selective about who we integrate with — ideally, someone that has a well-documented API, that knows not to change that API unexpectedly, and is friendly and easy to work with if something unexpected happens. In return, we endeavor to also have a well-documented API that changes rarely with much notice, and failing that, to be a good neighbor when something breaks.</p>

<h3 id="sohowdoesanorganizationbuildintegrationswithdevresults">So how does an organization build integrations with DevResults?</h3>

<p>Most users won’t ever read or even be aware of our API documentation, but we’ve invested time in documenting and maintaining it so that your IT teams, consultants, and programmers (if you’re lucky enough to have any) can tie your internal systems into our platform. However, given the complexities involved — some of which we’ve discussed, others we have not — building an integration with our API is probably best thought of as a last resort.</p>

<p><strong>We recommend starting the integration process by asking a few key questions:</strong></p>

<ol>
<li><strong>What problem needs to be solved? What task needs to be accomplished?</strong>  </li>
<li><strong>How often, and by how many people?</strong>  </li>
<li><strong>How tedious, complicated, or difficult is it to do manually?</strong></li>
</ol>

<p>Knowing the answer to <strong>#1</strong> is important. People ask us all the time if we can integrate with another system. We ask, “what information do you want to move or update, in which system, from where, and based on what criteria?” Most people aren’t sure. If you’ve narrowed it down to some specific needs — for instance, “Program managers need to update their projects with information from the grant management system” — then you’re ready to proceed.</p>

<p>If the answer to <strong>#2</strong> is “rarely by several people” or “regularly, but only by one person,” you might want to consider options that are easier and cheaper than building an API integration. Remember: the goal is not necessarily “integrate all the things!” The goal is to be good stewards of scarce resources, chiefly: time, money, skilled personnel, and high-quality data. It wouldn’t make sense to replace a 20-minute-per-quarter task with an automated API integration that could take months to build.</p>

<p><strong>Here’s some alternatives to API integrations to try first, in order of the expense to your organization in terms of your staff’s time and effort ($-$$$):</strong></p>

<ul>
<li><strong>Shared key values or unique IDs ($)</strong> can join or link two or more records in different systems if and when data need to be combined. The joining/linking process is somewhat manual, but can still be done systematically with just a little bit of expertise (for instance, using the <a href="https://support.microsoft.com/en-us/office/vlookup-function-0bbc8083-26fe-4963-8ab8-93a18ad188a1">VLOOKUP function in Excel</a>). There’s lots of ways to do this in DevResults: a few purpose-built fields are <a href="https://help.devresults.com/help/define-an-activity">project short names or reference numbers</a>, <a href="https://help.devresults.com/help/define-an-indicator">indicator codes</a>, and <a href="https://help.devresults.com/help/define-an-organization">organization short names</a> or <a href="https://help.devresults.com/help/iati-configure-your-site-for-iati-exports">organization identifiers</a>.</li>
<li><strong>Cross-referenced hyperlinks ($$)</strong> can ensure that users can jump directly from a record in one system to a related record in another system quickly and easily. It’s only slightly more “expensive” than shared key values because links can and do break from time to time, but luckily they’re easy to fix. Even with a team of developers in our company, we regularly use this integration method internally to link help tickets to development tasks and back again. That way, we never have to hunt for the right email thread to reply back to the user that we’ve finished a bug fix or a feature improvement. You can add links to most text fields in DevResults wherever they may be relevant, such as project or indicator description text fields — use <a href="https://help.devresults.com/help/formatting-text#anchorfive">Markdown formatting</a> like this: <strong>[link text](www.website.com)</strong> — or in <a href="https://releasenotes.devresults.com/add-links-to-data-tables-171007">data table cells</a>.</li>
<li><strong>Structured imports and exports ($$$)</strong> require a bit more coordination between different systems upfront, but then the export/import process itself is just a few clicks for each user. For instance, let’s say you want to take your grant management system records and use them to populate a batch of new projects in DevResults. If you can get your grant management system to generate a spreadsheet-based export of new grants similar to DevResults’ <a href="https://help.devresults.com/help/define-an-activity#create-upload">project upload template</a>, a quarterly, monthly, or even weekly update process will be a cinch — less time than it takes to write an email to tell an intern to do it for you. If you’re going the other way — from DevResults to another system — you can either use one of our many built-in exports, or request a <a href="https://help.devresults.com/help/custom-queries">custom query</a> that structures the data in the format that your other system is expecting.</li>
</ul>

<p>If information needs to be exchanged frequently or by many people, or the process is very tedious, with lots of possibilities for human error, then it might be time to build a true, API-based integration. Actually, building it might be the easiest and cheapest part. The full cost of an API-based integration includes:</p>

<ul>
<li><strong>Building it</strong> which typically requires hiring a developer or engaging a consultant.</li>
<li><strong>Testing it</strong> to make sure that it holds up <a href="https://foreignpolicy.com/2020/10/08/uk-coronavirus-covid-spreadsheet-excel-error-outsourcing/">under real world conditions</a> with millions of records, not just a handful of test cases.</li>
<li><strong>Maintaining it</strong> over time (again, via an on-staff developer or third-party contractor) as systems change, security patches are required, or user needs evolve.</li>
<li><strong>Socializing it</strong> when unfamiliar users may prefer to manually transfer data themselves, rather than relying on an invisible robot to do it for them. (You’d be surprised how many people still prefer to import data from survey platforms manually, despite the fact that we’ve had multiple automated integrations over the years.)</li>
</ul>

<p>If you’ve considered these elements and done the cost-benefit analysis, then we’re ready to help you use our API to its fullest extent! Start by familiarizing yourself with our <a href="https://www.devresults.com/api-help">API documentation</a>, either at that link or at <strong>[your_site].devresults.com/api-help</strong> and get in touch if you have any questions. We’d like to hear how you’re using our API and how helpful you find the documentation so that we can publish new endpoints or add more detail where needed!</p>

<h3 id="letshavesomefun">Let’s have some fun...</h3>

<p>Want to earn some bragging rights? Let’s unlock your API achievement! All you need for these examples is your web browser. No coding required! </p>

<p><strong>First, log into your DevResults site.</strong> This gives your browser the necessary “authentication token” to not only use the site, but also to use the API.</p>

<p><strong>Then, enter the following GET request just like you would a website URL,</strong> being sure to replace the text in brackets with your site’s subdomain/name:</p>

<pre><code>https://[your_site_name_here].devresults.com/api/awards
</code></pre>

<p><strong>Next, hit enter.</strong> <em>Congratulations</em> - you’ve just made a GET request (your first?) from our projects endpoint! You told the API you wanted to get a list of projects (née <em>awards</em> in our database and API). Now let’s look at what you got back. It should look something like this:</p>

<pre><code>[{"AwardID":38004,"Title":"Access to School Lunches","ShortTitle":"ASL","Code":"ED-08","ReferenceNumber":"01-519-HBD-00-5414","AwardingOrganizationID":27501,"StatusOptionID":2998,"MechanismID":8730,"PrimaryUrl":"awards/Award/38004","ShortTitleAndTitle":"Access to School Lunches (ASL)","PrimaryOrganization_OrganizationID":27481},{"AwardID":38013,"Title":"Addressing Corruption in Local Government","ShortTitle":"ACLG","Code":"DR-05","ReferenceNumber":"01-172-FEE-00-6674","AwardingOrganizationID":27501,"StatusOptionID":2998,"MechanismID":8727,"PrimaryUrl":"awards/Award/38013","ShortTitleAndTitle":"Addressing Corruption in Local Government (ACLG)","PrimaryOrganization_OrganizationID":27493},{"AwardID":38003,"Title":"AgriMAX","ShortTitle":"AgriMAX","Code":"AG-07","ReferenceNumber":"01-950-GDC-00-4751","AwardingOrganizationID":27501,"StatusOptionID":2998,"MechanismID":8729,"PrimaryUrl":"awards/Award/38003","ShortTitleAndTitle":"AgriMAX (AgriMAX)","PrimaryOrganization_OrganizationID":12345} …]
</code></pre>

<p>Note: if you forgot to log in to your site first, or if you don’t have permission to view your project index, you will instead see this:</p>

<pre><code>{"Message":"Authorization has been denied for this request."}
</code></pre>

<p>Behold, this is what your project index looks like in JSON (JavaScript Object Notation, a common machine-readable language and data interchange format). You might see some familiar names and numbers, but on the whole this output is illegible and unusable… <em>unless</em> you’re a computer!</p>

<p>If you <em>were</em> a computer, you would be able to recognize, deconstruct, and parse this blob of text into useful things, like project reference numbers or partner organization IDs. Let’s see how! This time we’re going to make a more-specific GET request — not just a data dump — based on the first.</p>

<p><strong>To get started, find your favorite project name in the text blob from earlier,</strong> then very carefully start reading from that name until you see "PrimaryOrganization_OrganizationID:" The number that follows is the ID that DevResults uses to uniquely identify which partner organization goes with which project. </p>

<p><strong>Copy or write that number down and stick it in the following request</strong> (don’t forget to replace your site subdomain/name again too!):</p>

<pre><code>https://[your_site_name_here].devresults.com/api/organizations/[that_ID_number]
</code></pre>

<p>What you should get back is another (much shorter) blob of text, this time with the name and short name of the primary partner organization for your favorite project. It should look something like:</p>

<pre><code>{"OrganizationID":12345,"Title":"Caudill Associates","ShortTitle":"Caudill"}
</code></pre>

<p>These two GET requests show you existing information in your DevResults site. To make changes to DevResults via API, like creating a new user, editing a project, or writing an indicator result to the database, you would use a more sophisticated tool like <a href="https://www.postman.com/">Postman</a> to make POST, PUT, and DELETE requests. A computer could run a complex series of requests on a schedule (or when a human clicked a button in another system) to do things like upload data to DevResults, export data from DevResults and import it somewhere else, update a project's budget, generate a report, add new users and assign them to projects, and pretty much anything else you can do in DevResults. </p>

<h3 id="howcanwehelp">How can we help?</h3>

<p>As a company, we provide an evolving platform that enables our partners to advance as quickly as technology changes. We commit our time and resources to create end-to-end continuity of data utilization. One of our key values as a <a href="https://blog.devresults.com/are-you-savvy-on-saas-why-software-as-a-service-makes-sense-for-m-e/">SaaS company</a> is focusing on “what’s next” in order to ensure that our platform evolves along with the sector. It’s this concept that has made us successful for 10 years running.</p>

<p>If you can think of a way that our API could help your organization connect and integrate your data systems more seamlessly, please reach out to our Helpdesk at <a href="mailto:help@devresults.com">help@devresults.com</a> and we’ll guide you through the process!</p>]]></content:encoded></item><item><title><![CDATA[Sabbaticals, Projects, and Unexpected Storytelling with Data]]></title><description><![CDATA[<p>Last year, DevResults instituted paid sabbaticals for employees with five years of service in order to expand our collective skills and reward long-term commitment. I was the third person in the company to take advantage of this personal and professional development opportunity and I’d like to share a bit</p>]]></description><link>https://blog.devresults.com/sabbaticals-projects-and-unexpected-storytelling-with-data/</link><guid isPermaLink="false">771640e4-5b88-4a94-b89d-f6ddf12828d1</guid><category><![CDATA[Life at DevResults]]></category><dc:creator><![CDATA[Diego Mijelshon]]></dc:creator><pubDate>Wed, 28 Oct 2020 14:00:00 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2020/10/DiegoImage.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2020/10/DiegoImage.jpg" alt="Sabbaticals, Projects, and Unexpected Storytelling with Data"><p>Last year, DevResults instituted paid sabbaticals for employees with five years of service in order to expand our collective skills and reward long-term commitment. I was the third person in the company to take advantage of this personal and professional development opportunity and I’d like to share a bit of my experience with you.</p>

<h2 id="motivations">Motivations</h2>

<p>There’s always more than one reason to take a sabbatical. In my case, it was a mix of the following:</p>

<ul>
<li>Curiosity about the world of AI, something I had never had the time to pursue</li>
<li>A need to switch gears and use different tools. 
When you work in a single product for over five years, the world changes around you. I felt like I was missing out.  </li>
<li>My body telling me it needed me to take better care of it</li>
</ul>

<h2 id="timing">Timing</h2>

<p>I started planning this before Covid-19 hit the world. Initially, I had picked a time of the year that interfered as little as possible with the company’s busiest months, my summer vacations (I’m in the southern hemisphere, so that’s January-February), and other commitments.</p>

<p>The pandemic made me and my colleagues reconsider. Ultimately, we acknowledged that unforeseen circumstances could have happened in any context, and it was still in our best interest to carry out the original plan.</p>

<p>I’m thankful for the company making this decision, as the stress resulting from the long and strict lockdown in my country would have been extremely detrimental to my health. Being able to take care of myself, my house, and my family (besides learning) while knowing my teammates weren’t depending on my input was extremely important.</p>

<h2 id="preparation">Preparation</h2>

<p>In order to get the best value out of my sabbatical time, I talked to the other people in the company that had <a href="https://blog.devresults.com/professional-development-at-devresults/">had the experience</a>. Besides planning specifics, like which online courses I was going to take, this helped me moderate my expectations. A great piece of advice I got: “Whenever you take on a project with lots of unknowns, you will accomplish a fraction of what you thought you would. Accept that and don’t let it discourage you.”</p>

<h2 id="initialdirection">Initial direction</h2>

<p>I started with an online course that covered a pretty good number of ML scenarios, from simple linear regressions to image recognition with deep learning. Around the middle of it, and once I had grasped the fundamentals of classification, I decided what my programming project was going to be: a personal expense tracker that would read transactions from a PDF and automatically classify them. This idea was born out of frustration with existing software, and I still think I can do better than the products I tried.</p>

<h2 id="issues">Issues</h2>

<p>As I should have remembered from my experience, writing software usually entails 5% of the fun, shiny ideas and technologies that you want to use, and 95% of boilerplate, infrastructure, and many things you are not really interested in. When you work with a team, it’s easy to split the tasks in a way that everyone gets a reasonable share of cool and boring stuff. When you’re on your own, that’s not possible.</p>

<p>I did not abandon the project, but ultimately decided to do it as a longer-term, on-the-side thing.</p>

<h2 id="newpaths">New paths</h2>

<p>At the beginning of August, a local network of schools which included my kids’ started a fundraiser for emergency scholarships, as many families were being hit very hard by the economic crisis due to covid-related restrictions.</p>

<p>When I contributed to this campaign, I found out a good amount of information about the donations was made public, and it was not hard to parse it from the website. I thought it would be fun and maybe useful to apply some data science to it.</p>

<h2 id="anewinterest">A new interest</h2>

<p>The reaction to the analysis results I shared was very positive, and encouraged me to pursue data science for fundraising as a central topic of my sabbatical.</p>

<p>For this next part of my journey, I mostly used a book. I enjoyed it very much. It didn’t only teach me how data science and machine learning can help for fundraising - it gave me a better understanding of how visualizations, particularly, can help tell a story.</p>

<h2 id="circlingbacktomyjob">Circling back to my job</h2>

<p>Visualizations happen to be one of the things I was involved in the most at DevResults. I was a part of the teams that built our dashboard system, the indicator reports (graphs, maps, pie charts, matrix) and more.</p>

<p>I always liked creating tools that helped our users understand, analyze and report on the data in the easiest, fastest, most accurate way possible. However, as a more technically-focused person, I had not stopped to think about the <strong>stories</strong> our users are telling with these visualizations. A compelling story, which the appropriate images can tell better than thousands of words, can help get programs funded, priorities changed, and actions executed.</p>

<h2 id="thefuture">The future</h2>

<p>As I write this in the last week of my sabbatical, I’m looking forward to working again in our product, and having a chance to engage with users about the stories they’re telling with data and to apply the things I learned to bring you better tools to tell your story and help your team improve the world.</p>]]></content:encoded></item><item><title><![CDATA[So long, Pito old friend]]></title><description><![CDATA[<p>The Pito tool has been serving DevResults users’ data-pivoting needs for nearly seven years. With the release of Matrix and MultiMatrix <a href="https://blog.devresults.com/upgrade-your-pivot-table-reports-with-multimatrix/">earlier this year</a>, we migrated all existing Pito reports to the Matrix format and redirected the links in our menus and Knowledge Base. Now it is time to bid</p>]]></description><link>https://blog.devresults.com/so-long-pito-old-friend/</link><guid isPermaLink="false">f78907f6-4706-4f85-bacc-4b37e22c5227</guid><category><![CDATA[Shout-outs]]></category><dc:creator><![CDATA[Reid M. Porter]]></dc:creator><pubDate>Tue, 28 Jul 2020 14:00:00 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2020/07/pito.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2020/07/pito.png" alt="So long, Pito old friend"><p>The Pito tool has been serving DevResults users’ data-pivoting needs for nearly seven years. With the release of Matrix and MultiMatrix <a href="https://blog.devresults.com/upgrade-your-pivot-table-reports-with-multimatrix/">earlier this year</a>, we migrated all existing Pito reports to the Matrix format and redirected the links in our menus and Knowledge Base. Now it is time to bid our old friend Pito adieu. </p>

<p>But before we say goodbye, we thought it a fitting tribute to reveal the origin story of the Pito tool, and the very real person who unwittingly lent the Pito tool its name.</p>

<h3 id="wheredidthenamepitocomefrom">Where did the name ‘Pito’ come from?</h3>

<p><img style="display:inline-block;margin: 10px 10px 10px 10px;height: 70px;width: 70px;border-radius: 50%;border: 4px solid white;left: -30px;top: 40px;transform: rotateY(180deg)" src="https://blog.devresults.com/content/images/2020/07/leslie.jpg" title="Leslie Sage, Director of Data Science" alt="So long, Pito old friend"><strong>As with most of our best ideas, it started out partly in jest...</strong></p>

<p>Back in 2013, mere days after joining DevResults, I flew to Zambia with Herb. We spent the first weekend at Victoria Falls, much of it working on laptops in an open-air hotel courtyard. </p>

<p>I was of little use at that time, being brand new to both international development and the software industry, so to give me something to do, Herb had me come up with a list of potential names for features. I thought naming features after pivotal figures in computer science would be clever.</p>

<p>Given that the report builder was essentially a pivot table, I thought that the name of the inventor (if there even <em>was</em> a single inventor) might work. A quick Google search confirmed that <strong>Pito Salas</strong> was indeed widely regarded as the “<a href="https://en.wikipedia.org/wiki/Pito_Salas">father of pivot tables</a>.”  </p>

<p>I'd recently learned about "managing up" so I amused myself by trying it on Herb: I presented the outcome I wanted alongside a few other truly terrible ideas. The result was, of course, the name 'Pito'.</p>

<h3 id="howdidclientsrespondtothenamepito">How did clients respond to the name ‘Pito’?</h3>

<p><img style="display:inline-block;margin: 10px 10px 10px 10px;height: 70px;width: 70px;border-radius: 50%;border: 4px solid white;left: -30px;top: 40px;" src="https://blog.devresults.com/content/images/2020/07/reid.jpg" title="Reid Porter, Senior Data Strategist" alt="So long, Pito old friend"><strong>I think the name ‘Pito’ has always said more about the people of DevResults than the tool itself...</strong></p>

<p>Long before I joined the DevResults team, I became a client and user of DevResults in late 2013. My organization selected the platform because we were impressed with the demos and pilots we did at HQ. While I was fairly new to the M&amp;E and international development world, I had to agree that it was a robust piece of software...with one exception: the query tool that allowed you to build reports and pivot data from across the platform left much to be desired, to put it mildly. "Don't worry," they said, "we're about to release a new upgraded report builder." </p>

<p>A few weeks later, I was traveling to Kyiv, Ukraine with a colleague (in <a href="https://en.wikipedia.org/wiki/2014_Ukrainian_revolution">January 2014</a>, no less) to role out our new DevResults M&amp;E platform with two of our program teams. We met Leslie for the first time during our layover in Frankfurt as we boarded our flight to Kyiv. </p>

<p>As the situation on the Maidan began to escalate, we sat just blocks away watching the snow fall gently outside as we learned the ins and outs of DevResults. At some point, Leslie unveiled the promised report builder upgrade. <em>It was fantastic!</em> It let us build exactly the tables and reports we were hoping to build. </p>

<p>"We call it 'Pito',” she said. I puzzled for a minute and responded, "Oh right, <em>Pi-To</em>, short for <em>Pivot-Tool</em>, right?" She responded, "No, it's named 'Pito' after <strong>Pito Salas</strong>, the 'father of pivot tables.'" I had to quickly arrest a dramatic eye roll — I knew the DevResults team was a bunch of nerds, but that was some <em>deep</em> trivia!</p>

<h3 id="whydidmultimatrixreplacepito">Why did MultiMatrix replace Pito?</h3>

<p><img style="display:inline-block;margin: 10px 10px 10px 10px;height: 70px;width: 70px;border-radius: 50%;border: 4px solid white;left: -30px;top: 40px;" src="https://blog.devresults.com/content/images/2020/07/ritika.jpg" title="Ritika Bhasker, Data Scientist" alt="So long, Pito old friend"><strong>While the Pito tool did many wonderful things, it had several shortcomings...</strong></p>

<p>It didn’t let you turn off subtotals or totals columns, it didn’t let you display targets or disaggregations elegantly, it had somewhat limited configuration options, and above all it was computationally intensive, meaning that it took a long time to generate data for even simple queries.</p>

<p>For these reasons and more, we had been keeping a list of things we wanted a New Pito tool to do. Finally, with other priorities completed, we had the capacity on the engineering team and room on the calendar to begin an overhaul of Pito — and so began MultiMatrix.</p>

<h3 id="didanyoneevercrosspathswiththe_real_pitosalas">Did anyone ever cross paths with the <em>real</em> Pito Salas?</h3>

<p><img style="display:inline-block;margin: 10px 10px 10px 10px;height: 70px;width: 70px;border-radius: 50%;border: 4px solid white;left: -30px;top: 40px;" src="https://blog.devresults.com/content/images/2020/07/aasit.jpg" title="Aasit Nanavati, Director of Partnerships" alt="So long, Pito old friend"><strong>Funnily enough, we did only just recently, and quite unintentionally...</strong></p>

<p>About the time we finally released MultiMatrix, a few of us found ourselves on the island of Curaçao. (This job often takes you to amazing places!) While we were there, we decided to tour the historic <a href="https://en.wikipedia.org/wiki/Cura%C3%A7ao_synagogue">Mikvé Israel-Emanuel Synagogue</a>, the oldest surviving synagogue in the Americas. The complex includes a small museum dedicated to the history of the Jewish community in Curaçao, as well as a large sanctuary with sandy floors, intended to muffle the footsteps of worshippers and hide their numbers during the Inquisition.</p>

<p>The tiny museum was surprisingly well-curated. There were old Torahs, priceless antiques, photos of prominent families from the Jewish community, and decorative family trees. Of course we barely glanced at the names or the captions — it’s not like we would have known anyone from the Curaçaoan Jewish community...</p>

<p><img style="display:inline-block;margin: 10px 10px 10px 10px;height: 70px;width: 70px;border-radius: 50%;border: 4px solid white;left: -30px;top: 40px;" src="https://blog.devresults.com/content/images/2020/07/reid.jpg" title="Reid Porter, Senior Data Strategist" alt="So long, Pito old friend"><strong>...if only we had known then how close our paths were!</strong></p>

<p>A few weeks later, we were discussing our plans to sunset the Pito tool and finalize the shift to MultiMatrix. It occurred to me that I had never fact-checked the validity of the whole “Pito Salas is the father of pivot tables” story. </p>

<p>So I googled it and discovered:</p>

<ol>
<li>Pito Salas really <em>did</em> invent the pivot table, way back in 1991!  </li>
<li>Pito Salas was from <em>Curaçao</em>!  </li>
<li>Pito Salas and his family worshipped at <em>that very synagogue</em>!</li>
</ol>

<p>I shared these revelations with the team in a couple different Slack threads:</p>

<div style="display: flex;align-items: start;">  
  <div><img src="https://blog.devresults.com/content/images/2020/07/slack2.png" alt="So long, Pito old friend"></div>
  <div><img src="https://blog.devresults.com/content/images/2020/07/slack1.png" alt="So long, Pito old friend"></div> 
</div>

<p>We realized that none of us had ever spoken to or even tried to communicate with Pito Salas. We googled some more and found that he was a <a href="https://www.brandeis.edu/facultyguide/person.html?emplid=69957fcf6528db656418863916878ea0e4046b09">professor at Brandeis University</a> in Massachusetts. Obviously we emailed him the entire story: how we named one of our core tools after him, how we frequently shared the story of his invention with our clients, and how we unknowingly stood in the very synagogue where (we later learned) he once celebrated his Bar Mitzvah.</p>

<p>I was hoping against hope that the real Pito Salas would read the email, laugh uproariously, share it with his friends and family, and join our weekly team meeting on Zoom. But I was secretly afraid that even if the email got past his spam filters, it would reach a stodgy old grump, too busy with his own research to trifle with long emails from adoring fans. “Never meet your heroes,” right?</p>

<h3 id="howdidpitorespond">How did Pito respond?</h3>

<p><img style="display:inline-block;margin: 10px 10px 10px 10px;height: 70px;width: 70px;border-radius: 50%;border: 4px solid white;left: -30px;top: 40px;" src="https://blog.devresults.com/content/images/2020/07/reid.jpg" title="Reid Porter, Senior Data Strategist" alt="So long, Pito old friend"><strong>To our immense delight, Pito responded graciously a few days later:</strong></p>

<blockquote>
  <p>Hi Reid and the rest,
  <br> <br>
  What a great email! I really enjoyed reading it...I shared this story with all my family and they all found it really cool...I’d be glad to zoom up. Let me know what you think!
  <br> <br>
  -Pito</p>
</blockquote>

<p>A few weeks later, he did in fact join our weekly Zoom meeting. After we introduced him to DevResults and his namesake report builder, Pito regaled us with the story of the rise — and <a href="https://salas.com/2004/11/29/20041129why-improv-didnt-succeed-html/">fall</a> — of <a href="https://en.wikipedia.org/wiki/Lotus_Improv">Lotus Improv</a>, the forerunner of the pivot table that was hand-picked by Steve Jobs himself for his <a href="https://en.wikipedia.org/wiki/NeXT_Computer">NeXT computer system</a>.</p>

<p><img src="https://blog.devresults.com/content/images/2020/07/pitozoom.png" title="Not pictured: Shane and Nathan" alt="So long, Pito old friend"></p>

<h3 id="solongfarewellaufwiedersehengoodnight">So long, farewell, auf Wiedersehen, good night</h3>

<p>There you have it. Having come full circle, we have now officially retired the Pito tool. Many thanks to our users for all the feedback that led to the creation of the MultiMatrix tool, and special thanks to <a href="https://www.linkedin.com/in/pitosalas/">Pito Salas</a> for not serving us any cease-and-desist orders! </p>

<p>If there’s anything to take away from this meandering tale, perhaps it’s this: much like art, software can reveal the craft and often the personality of its creators. We take great pride in our craft here at DevResults...but we like to have a little fun too! </p>

<p>We hope that you’ve enjoyed learning about the history of the Pito tool and its eponymous originator. More than that, we hope that you've enjoyed using the Pito tool over the past seven years. <br>
<br>  </p>

<h4 id="divstyletextaligncenter_pitothetoolisdeadlonglivemultimatrixhttpshelpdevresultscomhelpmultimatrix_"><div style="text-align: center;"><em><strong>Pito (the tool) is dead...long live <a href="https://help.devresults.com/help/multimatrix">MultiMatrix</a>!</strong></em></div></h4>]]></content:encoded></item><item><title><![CDATA[The DevResults Guide to Best-in-Class Trainings]]></title><description><![CDATA[<p>DevResults has been providing engaging, hands-on trainings for seven years. With thoughtful adaptation and continuous innovation, we’ve crafted effective and fun trainings, whether in-person or virtual. Below are our four core pillars of a successful training and how we translate them to an online setting.</p>

<h3 id="whatarethehallmarksofanexcellenttraining">What are the hallmarks</h3>]]></description><link>https://blog.devresults.com/the-devresults-guide-to-best-in-class-trainings/</link><guid isPermaLink="false">2f0f8efa-4995-402f-baba-38d331894489</guid><category><![CDATA[Insights]]></category><dc:creator><![CDATA[Ritika Bhasker]]></dc:creator><pubDate>Tue, 26 May 2020 13:53:08 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2020/05/tomasz-frankowski-kBUfvkbFIoE-unsplash-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2020/05/tomasz-frankowski-kBUfvkbFIoE-unsplash-1.jpg" alt="The DevResults Guide to Best-in-Class Trainings"><p>DevResults has been providing engaging, hands-on trainings for seven years. With thoughtful adaptation and continuous innovation, we’ve crafted effective and fun trainings, whether in-person or virtual. Below are our four core pillars of a successful training and how we translate them to an online setting.</p>

<h3 id="whatarethehallmarksofanexcellenttraining">What are the hallmarks of an excellent training?</h3>

<ul>
<li><strong>Trainees learn by doing:</strong> Trainees should perform 100% of the skills they’ll need to acquire, first to learn a new process and later to reinforce that learning. Hands-on exercises not only help with internalizing key concepts, they also bolster internal capacity development. For example, we ask our trainees to demonstrate new steps to colleagues in preparation for them training others in their organization. </li>
<li><strong>The training provides opportunities to have necessary conversations:</strong> A training must provide dedicated time to discuss issues and resolve questions while everyone is gathered together. We’ve found that during the course of a training, stakeholders across M&amp;E, IT, and program teams bring up issues that others might not have considered. The conversations that come out of our training sessions focus on everything from complicated indicators, to approval workflows, to naming and usage conventions, to how to train and build capacity throughout the organization.</li>
<li><strong>Attendees are fully engaged:</strong> Whether in-person or remote, the pull of distractions is strong. By engaging with trainees on every topic with exercises, mini quizzes, and colleague-to-colleague conversations, we help keep the focus on processing new skills and ideas.  </li>
<li><strong>The training emphasizes problem solving:</strong> No one is expected to remember everything from a multi-day training. Effective trainings reinforce how to find information and solve problems weeks and months later. Throughout a training, we provide opportunities to use our <a href="https://help.devresults.com/help">knowledge base</a> and <a href="emailto:help@devresults.com">help desk</a> to answer questions as well as to familiarize users with all available resources. </li>
</ul>

<h3 id="whatchallengesdovirtualtrainingsposeandhowdoesdevresultsaddressthem">What challenges do virtual trainings pose, and how does DevResults address them?</h3>

<ul>
<li><strong>While it’s reasonable to host an all-day training in person, virtual sessions must be much shorter.</strong> There’s <a href="https://www.bbc.com/worklife/article/20200421-why-zoom-video-chats-are-so-exhausting">plenty of research</a> on how conference calls drain your energy. We’ve been a <a href="https://blog.devresults.com/how-devresults-has-worked-from-home-for-over-a-decade/">fully remote company for a decade</a>, and even we get tired of Zoom.
<ul><li>Instead of a few days dedicated to training, we’re running <strong>2-hour sessions for 5 days, spread out over two weeks.</strong> This way, the amount of time and energy dedicated to training sessions is more manageable for everyone. </li>
<li><strong>We’re setting all trainees pre-work</strong> to get them ready and properly set up before a training begins. This way, trainees get familiar with the sites they’ll be working in, properly configure their hardware and software, and know how to reach out to trainers for assistance even before we start.</li>
<li>We assign <strong>asynchronous activities</strong> between and after sessions that encourage trainees to practice skills, discuss what they’ve learned with one another, and consolidate new processes with existing organizational workflows. </li></ul></li>
<li><strong>Interacting with many people is more difficult remotely.</strong> It’s harder to gauge facial expressions, engagement, and attentiveness through a webcam. There are also technical hurdles in facilitating side conversations.
<ul><li>We ask our trainees to use <strong>temporary Slack groups for co-working and collaboration.</strong> This helps foster an atmosphere of ongoing discussion for both internal and app-related issues as they come up. It also means that trainees have a record of all conversation topics and can rely on them in the future.</li>
<li>We’re also using Slack to run several <strong>interactive polls and conversation threads</strong> to increase engagement throughout the training. The questions we ask are great for reinforcing key concepts and solidifying new skills.</li>
<li>We’ve <strong>expanded the number of interactive exercises we do</strong>, including our group scavenger hunt and troubleshooting exercises. We’re also making sure that every participant shares their screen and walks everyone through an exercise at least once every 2-hour session. If this isn’t practical, we can rely on polls, breakout rooms, and conversation threads to engage our attendees.</li></ul></li>
</ul>

<h3 id="virtuesofvirtual">Virtues of Virtual</h3>

<ul>
<li><strong>Better for retention:</strong> With short online trainings spread out over a week or two, trainees can internalize more content than if they receive it all at once. Trainees also have more opportunities to leverage helpful resources (both ours and the input of their colleagues). </li>
<li><strong>Better for practice:</strong> Practice makes perfect and spacing out virtual trainings offers opportunity for more asynchronous exercises.</li>
<li><strong>More efficient:</strong> Virtual trainings take less time overall, ensuring minimal disruption to ongoing work.</li>
<li><strong>Cheaper:</strong> DevResults is able to provide virtual trainings at a fraction of the cost of in-person trainings. Many organizations will save more without the need to gather folks from the around the world in a hotel or conference center. </li>
<li><strong>Environmentally friendly:</strong> Reduce your carbon footprint by reducing air travel.</li>
<li><strong>Develop related technology skills:</strong> DevResults has worked remotely for a decade; we’ve tested countless tools and practices for online collaboration. We take a holistic approach to trainings and include guidance on making the most of distance learning.  </li>
</ul>

<p>Have any questions for us, or just want to know more about what we’re doing? Reach out to us any time at <a href="mailto:help@devresults.com">help@devresults.com</a></p>]]></content:encoded></item><item><title><![CDATA[Why Your Indicators are More Complicated than You Think]]></title><description><![CDATA[<p>A blog post for anyone who writes indicators</p>

<h3 id="contents">Contents:</h3>

<ol>
<li>Percentages  </li>
<li>Percent Change  </li>
<li>Cumulative vs. Incremental Targets  </li>
<li>Cumulative vs. Incremental Actuals  </li>
<li>Disaggregation vs. Free Response  </li>
<li>Cross-Disaggregation vs. Parallel Disaggregation  </li>
<li>Deduplication</li>
</ol>

<h1 id="background">Background</h1>

<p>In seven years as a data scientist at DevResults, I’ve worked with donor agencies, implementing partners, nonprofits, and private</p>]]></description><link>https://blog.devresults.com/why-your-indicators-are-more-complicated-than-you-think/</link><guid isPermaLink="false">f70e8d9e-0b4c-49dd-bc1d-d270e2a94ee2</guid><category><![CDATA[Insights]]></category><dc:creator><![CDATA[Leslie Sage]]></dc:creator><pubDate>Tue, 05 May 2020 14:00:00 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2020/04/Photo-by-Kaung-Myat-Min-on-Unsplash.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2020/04/Photo-by-Kaung-Myat-Min-on-Unsplash.jpg" alt="Why Your Indicators are More Complicated than You Think"><p>A blog post for anyone who writes indicators</p>

<h3 id="contents">Contents:</h3>

<ol>
<li>Percentages  </li>
<li>Percent Change  </li>
<li>Cumulative vs. Incremental Targets  </li>
<li>Cumulative vs. Incremental Actuals  </li>
<li>Disaggregation vs. Free Response  </li>
<li>Cross-Disaggregation vs. Parallel Disaggregation  </li>
<li>Deduplication</li>
</ol>

<h1 id="background">Background</h1>

<p>In seven years as a data scientist at DevResults, I’ve worked with donor agencies, implementing partners, nonprofits, and private companies. I’ve had a front-row seat to M&amp;E planning in the sectors of health and sanitation, education, democracy and government, humanitarian response, justice and law enforcement, agriculture, and economic growth. In that time, I’ve seen many indicators that were mathematically incorrect or fatally vague. Indicators get mangled in bureaucratic processes and often poorly reflect the original intent. This post will cover the most common problems I’ve encountered — problems that originate with the way indicators are defined and the way tools are set up to track results.</p>

<h1 id="1percentages">1. Percentages</h1>

<p>Take a humble percentage indicator: Percent of people who passed a test. This is calculated as: </p>

<blockquote>
  <p>People who passed the test ➗ People who took the test</p>
</blockquote>

<p>If 1 person passed out of 2 who took it, 50% passed. Simple enough. The problem arises when comparing results between different disaggregations, places, projects, or time periods. </p>

<p>Consider the example below, where many more people took the test in location B than A. If implementers report 50% and 99% for these locations, you might average them to get 74.5%. But this is clearly false. In total, 100 passed out of 102 who took it. This is a 98% pass rate. The only way to get to the correct result is to collect the numerator and denominator separately, NOT the percentage. You can always calculate the percentage yourself across disaggregations, places, projects, or time periods that you’d like to analyze. </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Percentages.png" style="width: 50%">
</p>

<p>Put another way, <strong>taking an average of percentages is always incorrect</strong> where denominators vary. </p>

<p>If you write indicators, you should <strong>require that the numerator and denominator are reported separately.</strong> If you're not in the position of writing indicators, it's always good practice to keep track of your numerator and denominator separately, even if you’re not required to. </p>

<p><strong>Percentages are analysis done on data, not the data itself.</strong></p>

<h1 id="2percentchange">2. Percent Change</h1>

<p>Calculating percent change presents the same challenges as described above: <strong>any aggregation of percent change would be incorrect if collected on its own.</strong> Instead, percent change should be calculated using underlying data for the two time periods to be compared. This is the same math as above.</p>

<p>But percent change offers additional pitfalls. Percent change from what? Here are a few options for change analysis with dramatically different results: </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Percent-Change.png" style="width: 97%">
</p>

<p>Each of these percentages is valid, but each means something completely different. Our advice is to collect the underlying data, enabling any of these kinds of analysis.</p>

<blockquote>
  <p>Good indicator: # fuel-efficient cookstoves in use <br>
  Resulting analysis: % increase in fuel-efficient cookstoves</p>
</blockquote>

<p>If you use the first indicator:</p>

<ul>
<li>You can aggregate current and former data before calculating percent change, ensuring accuracy. </li>
<li>You can always compare current data to any previous data.</li>
</ul>

<p>If you don’t use the first indicator and only have people report their analysis:</p>

<ul>
<li>Comparisons across projects and places will be necessarily incorrect. They won’t be properly weighted by the number of cookstoves previously in use in different places or different projects. </li>
<li>A location going from 1 to 2 cookstoves would have a 100% improvement, while a location going from 2 to 3 would have a 50% improvement. If the only data you have are the percentages, they seem very different, even though these results are nearly the same. </li>
</ul>

<p>In short, <strong>percent change is analysis done on data, not the data itself.</strong></p>

<h1 id="3cumulativevsincrementaltargets">3. Cumulative vs. Incremental Targets</h1>

<p>Some organizations and projects think of targets as “This is what should be accomplished from the start of the project up to this date.” We call those <strong>cumulative.</strong> Some organizations and projects think of targets as “This is what should be accomplished only during this reporting period”. We call those <strong>incremental.</strong> Each is equally valid, but to avoid major problems in interpreting progress to target, the choice must be clear. </p>

<p>In the example below, the cumulative and incremental options are mathematically equivalent. </p>

<ul>
<li>For the cumulative row, there should be 50 things done by the end of Q1, then another 50 by the end of Q2 for a total of 100, and so on. </li>
<li>In the incremental row, it’s simply stating that 50 things should be done each quarter. Both mean that 200 things should be done during the year. </li>
</ul>

<p>Without the labels, you’d probably intuitively understand what each row meant. </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/CvI-Targets---1.png" style="width: 50%">
</p>

<p>But take the example here. Are these cumulative or incremental? </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/CvI-Targets---2.png" style="width: 40%">
</p>

<p>They could be either. If you interpreted them as cumulative, the goal would be to do 180 things by the end of the year: </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/CvI-Targets---3.png" style="width: 50%">
</p>

<p>But those targets could also be interpreted as incremental. In this case, the goal would be to do 180 things in the last quarter alone. The goal for the whole year would be 430:</p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/CvI-Targets---4.png" style="width: 50%">
</p>

<p>If you assign targets, make sure you <strong>identify whether each indicator’s targets are cumulative or incremental.</strong> Each is equally valid, but if not clearly defined, analysis of progress to target could be dramatically wrong. If you're not assigning targets, it's always worth clarifying whether the targets you're working toward are cumulative or incremental.</p>

<h1 id="4cumulativevsincrementalactuals">4. Cumulative vs. Incremental Actuals</h1>

<p>The meaning of <strong>cumulative</strong> <em>vs.</em> <strong>incremental</strong> for actuals is the same as for targets, but the considerations for handling actuals is different. In this case, the question is not how to interpret written targets, but how to enter the data requested. Whether or not indicator results should be recorded incrementally or cumulatively is dictated by the indicator definition. </p>

<p>In this respect, there are two kinds of indicators — those that measure work done over a period of time, and those that observe a state at a point in time. </p>

<p><strong>Measurements of work done:</strong></p>

<blockquote>
  <p># schools built <br>
  # kilometers of roads cleared <br>
  # vaccinations administered  </p>
</blockquote>

<p><strong>Observations:</strong></p>

<blockquote>
  <p># schools in community <br>
  # kilometers of clear roads <br>
  # community members who are vaccinated  </p>
</blockquote>

<p>Measurements of work done should be reported incrementally. Each reporting period, implementers should report just what work was done since the end of the last reporting period. </p>

<p>In contrast, observations are necessarily cumulative. At the end of a reporting period, you report the state of affairs at that moment. </p>

<p>Consider the indicator # people trained. Training someone is “work done” during a certain time period, so it should be reported incrementally. Features of “work done”, or incremental indicators:</p>

<ul>
<li>The baseline is zero. Before you train anyone, you’ve trained 0 people. </li>
<li>A sum of all the reported data gives you the total (see below in yellow). </li>
</ul>

<p>If you really want to report this data cumulatively, then the indicator should be named clearly (see in red), but it’s inadvisable. It just makes it harder to analyze things like change over time and the total is meaningless. How many people were trained in the second half of the year? That’s easy if you look at the incremental data, but less intuitive looking at the cumulative data. (96). </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/CvI-Actuals---1.png" style="width: 70%">
</p>

<p>Now consider the indicator # people with access to clean water. Handling this data cumulatively is straightforward -- you just report who has clean water at the end of the quarter. Features of “observations”, or cumulative indicators:</p>

<ul>
<li>The baseline is most often not zero. There will likely be some people with access to clean water prior to a program’s efforts.</li>
<li>Cumulative data should never be added together. Any sum or total is meaningless. The end result is simply the last datapoint entered (yellow). </li>
</ul>

<p>If you really want to report this data incrementally, then the indicator should be named clearly (see in red), but it’s inadvisable. Here, Q2 ended with fewer folks with access to clean water than in Q1. This is easy to read in the cumulative row. But a “-32” as an incremental change makes less intuitive sense. </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/CvI-Actuals---2.png" style="width: 70%">
</p>

<p>If you write indicators, <strong>make sure the indicator name explains whether the data is incremental or cumulative.</strong> It should be clear whether someone is measuring work done or making a point-in-time observation. </p>

<h1 id="5disaggregationvsfreeresponse">5. Disaggregation vs. Free Response</h1>

<p>Two pieces of information are required for defining a disaggregation. </p>

<ol>
<li>The disaggregation, such as sex.  </li>
<li>The disaggregation categories, such as male, female.</li>
</ol>

<p><strong>No disaggregation is complete without its set of disaggregation categories.</strong> If you want to disaggregate by age groups, what are the age groups? If you want to disaggregate by training type, what are the training types? Defining this information is required for any indicator definition. </p>

<p>Occasionally I talk to a project that plans to offer a free response option in a survey. The project wants to learn from beneficiaries what the categories should be (what type of fertilizer do you use?), or to hear what beneficiaries have to say in their own words (how do you feel about your local police?). The project doesn’t want to pre-suppose a narrow set of potential options to choose from. This is a perfectly valid survey method, but writing surveys is not the same thing as writing indicators. Disaggregating indicator results means taking each response/event/observation and putting it into a bucket; the bucket is the disaggregation category. You simply can’t put something in a bucket if the bucket doesn’t exist. </p>

<p>Take this set of survey responses. To a computer, all 18 responses are different. If you made a report disaggregated by fertilizer, you’d just have a list of every response with a count of “1”. This isn’t very useful for summarizing large datasets. If you consider all the differences in terminology (and spelling!) then 1000 people could give 1000 different responses. Listing them doesn’t equal disaggregation. </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/05/Disag-v-free-1-1.png" style="width: 80%">
</p>

<p>If you start with a list of free responses, you have to decide how to group them -- that is, what the disaggregation categories should be. There’s rarely one right answer for how to do this. In our example, you could simply remove the duplicates/synonyms, or group them with various levels of specificity.</p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/05/Disag-v-free-2.png" style="width: 70%">
</p>

<p>The choice in how the responses are categorized can produce a range of results. Regardless, no result is possible without first settling on a finite set of disaggregation categories, thus completing the indicator definition.</p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/05/Disag-v-free-3.png" style="width: 85%">
</p>

<p>Categorizing free responses can be laborious and can introduce the biases of the person doing the sorting, but it can also provide unexpected insights and avoid presumptions of an indicator-writer. It really depends on what you need the data for. If the goal is simply to understand the prevalence of inorganic vs. organic fertilization, you could skip the free response and go with multiple choice. </p>

<p><strong>All the same warnings apply to offering a category like “Other (please specify)”.</strong> That’s a free-response list within a multiple-choice answer. It would be subject to the same requirements that the data be cleaned and grouped by meaningful categories. The same would even be true of a survey that invites paragraph-length narrative responses. </p>

<p>To indicator writers: <strong>indicator definitions are not complete until disaggregation categories are finalized.</strong> If disaggregation categories won’t be determined until after a free-response survey is given, make sure there is a process in place for defining them then. </p>

<h1 id="6crossdisaggregationvsparalleldisaggregation">6. Cross-Disaggregation vs. Parallel Disaggregation</h1>

<p>Frequently, indicators have multiple disaggregations, each with their own set of disaggregation categories. In these scenarios, data can either be reported for category combinations <strong>(cross-disaggregated)</strong> or for each category in isolation <strong>(parallel-disaggregated).</strong></p>

<p>Consider disaggregation by sex and age. With cross-disaggregation, each sex category is subdivided by all of the age categories. In this scenario, adding up all the results gives us the total number of teachers:</p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Parallel-v-Cross---1.png" style="width: 70%">
</p>

<p>Since we have one disaggregation with two categories and one with three, the total possible combinations is 2 x 3 = 6. Imagine if you wanted to disaggregate by sex (2 categories), age (3 categories), training type (5 types), course level (4 levels), and location (10 places). That would be 2 x 3 x 5 x 4 x 10 = 1,200 combined categories. If you write indicators, <strong>be aware of the multiplication effect with heavily cross-disaggregated indicators.</strong> If such specificity is even warranted, make sure implementers have the resources they need for handling this quantity of data. </p>

<p>In contrast, with parallel disaggregation, the sex and age categories are handled separately. In this version, we don’t know how many females are under 18, or how many 30+ folks are male. The categories are not subdivided. With parallel disaggregation, our total number of teachers comes from just adding the females and males together. This has the benefit of reducing the reporting requirements but there’s a loss of specificity in the information. </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Parallel-v-Cross---2.png" style="width: 70%">
</p>

<p>An alternative use of parallel disaggregation is the case where the second disaggregation is not mutually exclusive. For example, you could vaccinate 100 people and give all 100 each vaccination:</p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Parallel-v-Cross---3.png" style="width: 70%">
</p>

<p>This gives us information about how many people were vaccinated and the vaccinations received. Since we’re counting people, it would be meaningless to add up the vaccination counts to get 300. (That would be a different indicator, # vaccinations administered). Parallel disaggregation gives us the option to mix mutually exclusive and non-mutually exclusive categories, which is impossible with cross-disaggregation. </p>

<p>If you write indicators, <strong>make sure that indicators with multiple disaggregations are clearly defined as cross-disaggregated vs. parallel disaggregated.</strong> For cross-disaggregation, be especially aware of the number of potential category combinations. </p>

<h1 id="7deduplication">7. Deduplication</h1>

<p>Now the fun starts. Instead of numerical data, consider the raw records that they come from. Imagine keeping this log of trainees:</p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Count-unique---1.png" style="width: 40%">
</p>

<p>It’s very common for programs to be interested in deduplicated — or “unique” — counts of trainees or other beneficiaries. But this can be much more complicated than it sounds. First, let’s look at three ways of calculating a deduplicated count of trainees. </p>

<p>In the most basic sense, 4 people were trained: Anita, Bob, Crispin, and Delvan. </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Count-unique---2.png" style="width: 35%">
</p>

<p>However, what happens when we report a unique count each quarter? Anita, Bob, and Cripin were trained in Q1, while Anita, Bob, and Delvan were trained in Q2. It would make perfect sense for an implementer to report Q1: 3 and Q2: 3. The problem is that the total would be 6, even though we know that only four people are involved. </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Count-unique---3.png" style="width: 45%">
</p>

<p>Are you expecting to receive a report that says Q1: 3, Q2: 3, Total: 4? If so, you’ll need a tool that can handle such complexity. If you don’t have a tool that does that, then it’s better to handle quarterly unique counts as separate indicators from all-time unique counts. </p>

<p>But there’s another way to think of a unique/deduplicated count that leaves a lot less room for confusion. You could define the indicator as a count of the first time someone was trained. This necessarily removes duplicates and simplifies the math for totals. </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Count-unique---4.png" style="width: 45%">
</p>

<p>Both “count unique per quarter” and “count first appearance” are valid strategies, but they produce different results. If you write indicators, you should make it impossible to misunderstand which type of count you’re looking for. </p>

<p>The same complexity arises with disaggregations. Let’s look at the table again:</p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Count-unique---1-1.png" style="width: 40%">
</p>

<p>How many people were trained in irrigation? Anita, Bob, and Crispin: 3. And Crop rotation? Anita and Delvan: 2. </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Count-unique---6.png" style="width: 50%">
</p>

<p>So what’s the sum? Is it 5? Or is it the 4 actual people? Put another way, how do you feel about counting Anita twice since she was trained on two different topics? There’s no right answer, but implementers require clarity, tools, and guidance to arrive at the result you want.</p>

<p>Things only get more complicated when you combine the disaggregations you’re investigating, such as “per topic” and “per quarter”. In this example, the crop rotation total comes out matching the unique count above (2 people), but the irrigation total is different because we’re counting Bob twice, once in each quarter. </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Count-unique---7.png" style="width: 57%">
</p>

<p>Since only three separate people were actually trained on irrigation, should the total be 3 or 4? Again, are you OK with counting Bob twice since he was trained on irrigation during two different quarters? If not, then the quarterly unique counts should probably be a separate indicator from the overall unique counts. </p>

<p>Compound units offer an opportunity to clarify unique counts. The most common compound unit is the “person-hour”. If 2 people work 5 hours, that’s 10 person-hours. If 1 person works 10 hours, that’s also 10 person-hours. The same logic applies to a deduplicated count of “person-topics”. Applied to our sample dataset, we get 5 unique person-topics. This takes the 7 rows of the table, disregards the second and third time that Bob was trained in irrigation, and gives us a result of 5. This value doesn’t tell us exactly how many separate individuals were involved (since Anita is counted for each topic), but it “gives credit” for every time a person was exposed to a new topic. </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Count-unique---8.png" style="width: 18%">
</p>

<p>Another way to “give credit” would be to count person-trainings. In this case, the project would get credit for training Bob 3 times on the same topic. </p>

<p align="center">  
 <img alt="Why Your Indicators are More Complicated than You Think" src="https://blog.devresults.com/content/images/2020/04/Count-unique---9.png" style="width: 20%">
</p>

<p>With almost every organization I’ve ever worked with, there’s been a conversation along the lines of, “if you train Bob twice, do you count him twice? What if you train him in separate reporting periods? What if you train him on different topics?” It’s rare that people are sure of the answers or that everyone agrees. If you write indicators, the answers to these questions should be explicit. Here, we’re counting a tiny dataset by eye. It’s extremely complicated to use Excel for something like “count first”, or to “count unique per quarter but with an all-time unique total”. If you have a voice in choosing indicators for projects, <strong>ensure that they have the tools and know-how to produce accurate results.</strong> </p>

<h1 id="contactus">Contact Us</h1>

<p>If you’d like to learn about how our tools and expertise could help your organization, or if you’d just like to talk more about indicators, please don’t hesitate to reach out to us at <a href="mailto:info@devresults.com?subject=Indicators%20Blog">info@devresults.com</a>.</p>]]></content:encoded></item><item><title><![CDATA[“Can I speak to a human being please?”: Spotlight on the DevResults Helpdesk]]></title><description><![CDATA[<p>Helpdesks are fairly ubiquitous nowadays, but you may still wonder who is waiting on the other end of <a href="mailto:help@devresults.com">help@devresults.com</a> to answer your questions. The current DevResults Helpdesk is the result of dozens of iterations, and it is still very much a constantly evolving work-in-progress. So what can it</p>]]></description><link>https://blog.devresults.com/can-i-speak-to-a-human-being-please-spotlight-on-the-devresults-helpdesk/</link><guid isPermaLink="false">94359014-f7e7-4191-acb3-dd05a230b93e</guid><category><![CDATA[Spotlight]]></category><dc:creator><![CDATA[J. Shane Kunkle]]></dc:creator><pubDate>Tue, 28 Apr 2020 13:50:00 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2020/04/matthew-waring-MJAoiige14E-unsplash.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2020/04/matthew-waring-MJAoiige14E-unsplash.jpg" alt="“Can I speak to a human being please?”: Spotlight on the DevResults Helpdesk"><p>Helpdesks are fairly ubiquitous nowadays, but you may still wonder who is waiting on the other end of <a href="mailto:help@devresults.com">help@devresults.com</a> to answer your questions. The current DevResults Helpdesk is the result of dozens of iterations, and it is still very much a constantly evolving work-in-progress. So what can it do for you?</p>

<h3 id="whostaffsthesupportdesk">Who staffs the support desk?</h3>

<p>DevResults maintains an on-call team comprising one software developer and one data scientist at all times. It’s their job to field and resolve Helpdesk tickets, allowing the rest of the DevResults team to focus on new features and other projects. Engineers typically rotate every three weeks (the length of our development sprints) whereas the Data Team cycles out weekly, with liberal use of “tag-outs” as life or illness intervene.</p>

<p>In the early days, our Helpdesk was staffed by a single data scientist (sorry <a href="https://www.devresults.com/about#leslie">Leslie!</a>) but that approach didn’t scale well. We added an engineer to the rotation to ensure that bugs and other technical issues got immediate attention without disrupting on-going feature development work. If there are no bugs to squash, that engineer has carte blanche to do so-called “grease work” — the odds-and-ends tasks that result in small quality-of-life changes for users but never rise to the level of a top priority.</p>

<p>DevResults has never hired specifically for a support or on-call role – it’s always been staffed by experienced, senior team members. There may be cheaper ways to respond to help tickets, but we find the regular cycle of user interaction to be beneficial and grounding for everyone; it forces us to get familiar with every corner of our platform and take note of how people are using it. If we get the same question two or three times, maybe we need to write a new article in our <a href="https://help.devresults.com/help">Knowledge Base</a>. If we get the same question weekly, maybe we need to rethink how a page in the app is designed.</p>

<p>Rotating on-call duty is also an opportunity for us to go beyond the mechanics of the site and offer our clients advice on evaluation methodology, M&amp;E strategy, and change management as our prior experience and expertise allow. We don’t offer any formal consulting, but we do what we can to make people’s lives easier when they ask for our opinion. </p>

<h3 id="howtofindus">How to find us</h3>

<p>Both the Helpdesk email — <a href="mailto:help@devresults.com">help@devresults.com</a> — and the “Help” menu inside of DevResults go to our ticketing system. We encourage users to take advantage of the in-app “Contact help desk” wizard because it quietly reports a bunch of helpful information to us, like which browser you’re using or what page you were looking at when you contacted us. </p>

<p>There are lots of ticketing systems out there, but we like Freshdesk because it's easy to use and integrates with our company Slack #help channel. Most of our users prefer to use email for communicating with our Helpdesk, but Freshdesk does give users the option of tracking and responding to the ticket in Freshdesk itself if they prefer.</p>

<h3 id="howtowritebetterhelptickets">How to write better help tickets</h3>

<p>Few topics arouse more passion from software professionals than the dos and don’ts of writing help tickets. We don’t expect anyone to follow our own internal rules for writing tickets, but it doesn’t hurt to know what information we require to track down a bug or register a feature suggestion. If you don’t tell us, we’ll just ask!</p>

<p>We have a simple template for (internally reported) bug reports:</p>

<ul>
<li><strong>Steps to reproduce</strong>: how did you get to a bad place?</li>
<li><strong>What I expected to see</strong>: what should it have done?</li>
<li><strong>What I saw instead</strong>: what did it do?</li>
</ul>

<p>Likewise, we have a slightly longer template for logging <a href="https://blog.devresults.com/how-a-suggestion-becomes-a-feature/">feature suggestions</a>:</p>

<ul>
<li><strong>Current functionality</strong>: what does it do or not do now?</li>
<li><strong>Use case, user story, or problem to solve</strong>: what do you need it to do instead?</li>
<li><strong>Proposed workflow or functionality</strong>: how do you suggest we solve the problem?</li>
<li><strong>Mockup</strong>: a simple sketch (Microsoft Paint works fine) of how and where?</li>
</ul>

<p>The key with both bug reports and feature suggestions is to clearly define the <em>problem to be solved</em>, not necessarily the solution itself. The problem may seem obvious to you, but there are lots of reasons we need to know that context. Sometimes, there’s an alternative solution to the problem that may be non-intuitive but ultimately more elegant and robust for other users, including the ticket-writer. In other cases, there’s actually already a tool that addresses the issue, you may just not know about it yet.</p>

<p>Again, consider this as advice for getting the most out of your software and your vendors, not a requirement! It takes a bit of time to write a good help ticket, but in the end, your problem gets resolved faster with less back-and-forth if you invest the time upfront.</p>

<h3 id="settingupyourownhelpdesk">Setting up your own Helpdesk</h3>

<p>The DevResults Helpdesk will always be a part of our service to clients, but many organizations — especially large ones — set up or already have in place their own ‘frontline’ internal help desk. <strong>We strongly encourage this practice.</strong> </p>

<p>We get a lot of help tickets that we can’t answer because they have to do with organizational policy or clients’ internal systems. Even when the question is specific to DevResults, we’re often unaware of the guidance or norms that have been established by site owners. And last but not least, there’s lots of stuff that even brand new site owners can answer, like how to reset a password. </p>

<p>For all these reasons and more, it’s in everyone’s interest to have an <em>M&amp;E or program help desk</em> — nothing more than an email account shared by site owners — which can always elevate incoming, DevResults-specific tickets to us. Many of our clients who use these systems report that they are indispensable tools for program quality assurance!  </p>

<h5 id="gotaquestionabouttheappgoaheadgetintouchhelpdevresultscommailtohelpdevresultscom">Got a question about the app? Go ahead, get in touch! <a href="mailto:help@devresults.com">help@devresults.com</a></h5>]]></content:encoded></item><item><title><![CDATA[A Growing DevResults Family]]></title><description><![CDATA[<p>I just returned from parental leave following the birth of my second daughter. I was able to do so thanks to the generous support of my company, which offers (as a norm, not a limit) 12 weeks paid leave for employees that have a new baby at home or are</p>]]></description><link>https://blog.devresults.com/a-growing-devresults-family/</link><guid isPermaLink="false">2e74461e-6155-4211-b3d9-7309f1233933</guid><category><![CDATA[Life at DevResults]]></category><dc:creator><![CDATA[Reid M. Porter]]></dc:creator><pubDate>Tue, 21 Apr 2020 13:30:00 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2020/03/rubberducks.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2020/03/rubberducks.jpg" alt="A Growing DevResults Family"><p>I just returned from parental leave following the birth of my second daughter. I was able to do so thanks to the generous support of my company, which offers (as a norm, not a limit) 12 weeks paid leave for employees that have a new baby at home or are experiencing some other life change that requires full-time attention. This is in addition to unlimited sick and vacation time, and as a remote-first company, we all enjoy unlimited work-from-home privileges.</p>

<h3 id="thecaseforpaidfamilyleave">The case for paid family leave</h3>

<p>It has been <a href="https://www.pewresearch.org/fact-tank/2019/12/16/u-s-lacks-mandated-paid-parental-leave/">well-documented</a> that the US is the only country among its peers that has no nationally guaranteed paid family leave. Of course <a href="https://www.pewresearch.org/fact-tank/2017/03/23/access-to-paid-family-leave-varies-widely-across-employers-industries/">some family leave policies in the US are extremely generous</a>, though typically only for large companies or already well-compensated employees. Even when family leave (paid or unpaid) is available, <a href="https://www.forbes.com/sites/aparnamathur/2016/03/04/the-problem-with-paid-family-leave-in-the-u-s-access-is-not-the-same-as-take-up/">it’s not always used</a>.</p>

<p>The <a href="https://www.jec.senate.gov/public/_cache/files/646d2340-dcd4-4614-ada9-be5b1c3f445c/jec-fact-sheet---economic-benefits-of-paid-leave.pdf">benefits of paid leave</a> to families are fairly obvious (a short list includes: more financial security, improved health and development outcomes, reduced gender pay gap), and made more obvious by the ongoing coronavirus pandemic. Equally obvious are the costs to employers and the potential for disruption when a key team member suddenly disappears, especially in a small organization. Morally, we believe that the intangible social benefits outweigh the costs at any scale — whether within an organization, at the state-level, nationally, or globally. Even so, employers that offer paid family leave realize tremendous benefits in the form of <a href="https://www.nationalpartnership.org/our-work/resources/economic-justice/paid-leave/paid-leave-good-for-business.pdf">better employee morale and staff retention</a>. </p>

<p>It might be tempting to consider high employee morale a "nice to have," but it permeates everything that an organization does. As a personal anecdote, I elected to take my leave in two chunks — the first immediately following my daughter's birth, the second a few months later. After the first few weeks off, I returned to work as soon as I was achieving functional levels of sleep each night. I quickly realized that I wasn’t giving the job or my colleagues my best. I may have been able to work, but pulling myself away from my child each morning was taxing. After the second break, I could tell immediately that my attitude and contribution to the team was much improved. I don’t regret the decision to take my leave in two parts, but for the sake of my company’s morale and effectiveness, I deeply appreciated (and needed) the extra time.</p>

<h3 id="paidfamilyleaveatdevresults">Paid family leave at DevResults</h3>

<p>When my colleagues and I sat down to write our family leave policy, we weren’t sure where to start. We recruit about half of our employees from public- and nonprofit-sector backgrounds where little to no paid family leave is offered, but the other half (our engineers) come largely from the private sector where generous family leave is the norm. In the end, we chose a middle path, one that balanced our commitment to our clients, to our teammates, and to our families. </p>

<p>We crafted our policy with an eye toward three forthcoming paid leave benefits:</p>

<ul>
<li>The <a href="https://does.dc.gov/page/dc-paid-family-leave">DC Universal Paid Leave Amendment Act of 2016 (UPLA)</a> offers DC-based employees 8 weeks paid leave for the birth of a child, 6 weeks paid leave to care for an ailing loved one, and 2 weeks paid leave to care for one’s own serious health condition.</li>
<li>The forthcoming <a href="https://federalnewsnetwork.com/budget/2019/12/trump-signs-shutdown-averting-spending-bills-makes-federal-pay-raise-law/">Federal Employee Paid Leave Act (FEPLA)</a> will offer (<a href="https://www.govexec.com/pay-benefits/2020/01/feds-two-major-agencies-would-not-get-paid-parental-leave-under-new-law/162254/">most</a>) federal employees 12 weeks paid leave for parents that give birth, adopt, or foster a child, though it has not taken effect yet, nor will the details of the policy be clear until it goes through the <a href="https://federalnewsnetwork.com/benefits/2020/01/questions-about-the-new-paid-parental-leave-law-youre-not-alone/">regulatory process</a>.</li>
<li>The <a href="https://www.dol.gov/agencies/whd/pandemic/ffcra-employer-paid-leave">Families First Coronavirus Response Act (FFCRA)</a> which guarantees employees (and incentivizes employers to provide) paid leave for Covid-19-related quarantine, illness, care taking, and childcare.</li>
</ul>

<p>As a company striving to be more family friendly, we cheer these advancements, and hope that other organizations in our sector will join us and others in offering generous family leave.</p>

<h3 id="puttingpolicyintopractice">Putting policy into practice</h3>

<p>But having a generous leave policy isn’t enough. We have worked hard over the years to go further in supporting employees. We do everything we can to make sure no important knowledge or expertise resides solely in one person. We trade responsibilities, document workflows, and share task lists. Compared to our early days, this seems like a luxury, but it’s also vitally necessary to give people the freedom to disappear at a moment’s notice to care for a family member, spend time with a new baby, or just take a nap when they don’t feel well. It isn’t always easy — especially when you’re a team of 9 — but we make it work through a combination of volunteering, turn-taking, and looking out for one another.</p>

<p>I’m proud and grateful to work for a team that not only gives me time off, but also has my back when I take time off, so that I don’t have to look over my shoulder or down at my phone when I’m away. My little one doesn’t realize it yet, but she’s grateful too!</p>]]></content:encoded></item><item><title><![CDATA[Don't Repeat Yourself, Share Instead]]></title><description><![CDATA[<p>Over the last decade, DevResults has invested time and resources into learning what best practices enable us to be a lean company while still supporting some of the biggest government agencies, implementing partners, and non-profits in the international development and humanitarian sector. Recently, my colleague released a blog post on</p>]]></description><link>https://blog.devresults.com/dont-repeat-yourself-share-instead/</link><guid isPermaLink="false">2788eedb-a950-4f48-89ee-4b3adb24d2fc</guid><category><![CDATA[Opinions]]></category><dc:creator><![CDATA[Brent Keller]]></dc:creator><pubDate>Tue, 14 Apr 2020 15:09:41 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2020/03/repeat-myself.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2020/03/repeat-myself.jpg" alt="Don't Repeat Yourself, Share Instead"><p>Over the last decade, DevResults has invested time and resources into learning what best practices enable us to be a lean company while still supporting some of the biggest government agencies, implementing partners, and non-profits in the international development and humanitarian sector. Recently, my colleague released a blog post on how we have as a company have <a href="https://blog.devresults.com/how-devresults-has-worked-from-home-for-over-a-decade/">created a remote work culture that has been going strong for ten years</a>. While we have specific tools that help us stay connected in a digital work environment, we also believe in implementing principles that encourage efficiency and ensure productivity.  </p>

<p>In programming it is common to hear people mention the DRY principle, “Don't Repeat Yourself”. This concept is a reminder that if you need to use some piece of code in more than one place that you <strong>shouldn't just copy and paste</strong>,  but instead extract it out into a <strong>reusable module</strong>, which can be referenced where necessary. At DevResults, we strongly believe in the DRY principle because it greatly aligns with our desire to operate efficiently. By not repeating ourselves in our code we can minimize the amount of wasted time and effort required to maintain duplicate code. It also provides consistency in the way we perform particular actions, producing a predictable result every time. As a team, we’ve collectively taken the DRY principle beyond our code and we strive for efficient and scalable communications internally and externally with our partners and customers. If you have ever received a help link to one of our <a href="https://help.devresults.com/help">knowledge base</a> articles, you've seen DRY at work!</p>

<p>We've made it a habit to try to leave tangible artifacts of our solutions and discoveries with the hope of preventing duplicate effort and also to share our knowledge with others. This comes in many forms including knowledge base articles, blog posts, and wiki pages. If you find yourself providing instructions for something or giving a detailed answer to a question, we would bet that there are good odds that this situation will arise again and someone, possibly even you, will be re-iterating, or even worse, once again searching for these answers. It can be well worth taking a few extra minutes to publish your work somewhere for future reference. It has been said that "an email helps one person, an article can help thousands." We find this to be very true and we hope that you'll also take it to heart.</p>

<p>What's that you say? This sounds like it's going to be difficult, and possibly expensive? It certainly doesn't need to be and there isn’t a sales pitch coming. It is true that it takes some effort to establish systems for storing the information, and the habits to keep using those systems, but it doesn't have to cost you anything. You're probably already using tools that could be leveraged to start building a library of information that will save you and your organization a ton of time down the road.</p>

<p>Let's explore a few types of things you might want to share:  </p>

<h3 id="guidesandhowtos">Guides and How-To's</h3>

<p>These are probably one of the best things to put in your library. You know, that report you have to run at the end of every quarter but always spend an extra 20 minutes trying to remember exactly what you did last time? Just take a few moments as you go to write down what you're doing and once you're done doing the thing you'll have a handy guide for next time. Bonus points for including screenshots of your process!</p>

<p>Some things we have guides for at DevResults:</p>

<ul>
<li>How to connect to the VPN  </li>
<li>How to install [software package X, Y, or Z]  </li>
<li>How to refresh the training site each month  </li>
</ul>

<h3 id="checklistsandtemplates">Checklists and Templates</h3>

<p>Sometimes it's just nice when things are consistent. Whether it's structuring meetings the same way, making sure a task is performed properly, or even letting your teammates know what you got done this week, there's a lot of value in having predictable output. Checklists and templates are a great thing to share with your team to make sure no matter who does the thing, it always includes the same bits you'd expect it to.</p>

<p>Some examples:</p>

<ul>
<li>Weekly all hands meeting template  </li>
<li>New employee onboarding checklist  </li>
<li>Packing list for the conference booth (never forget the swag again!)  </li>
</ul>

<h3 id="knowledgeispower">Knowledge Is Power</h3>

<p>Regardless of the tools you choose to use or how you get started, we think that having shared access to knowledge is a wonderful thing. As you grow the habits of collecting and using information you'll find that everyone becomes empowered and there's a lot less time spent (re-)explaining things. So next time you're about to hit send on that email full of instructions on how to do that thing no one can remember how to do, please consider writing it down somewhere that people can find it and sharing the link instead.</p>]]></content:encoded></item><item><title><![CDATA[Tracking the global response to Covid-19 using DevResults and IATI]]></title><description><![CDATA[<p>The <a href="https://iatistandard.org/">International Aid Transparency Initiative (IATI)</a> is a global initiative to improve the transparency of development and humanitarian resources and their results to address poverty and crises. Tracking the response to Covid-19 is no exception. Whether you’re required to publish IATI data by your donor or not, doing so</p>]]></description><link>https://blog.devresults.com/tracking-the-global-response-to-covid-19-using-devresults-and-iati/</link><guid isPermaLink="false">38ad31d9-8929-440e-b03b-f06a1412760b</guid><category><![CDATA[Insights]]></category><dc:creator><![CDATA[Reid M. Porter]]></dc:creator><pubDate>Tue, 07 Apr 2020 15:38:00 GMT</pubDate><media:content url="https://blog.devresults.com/content/images/2020/04/stayathome.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.devresults.com/content/images/2020/04/stayathome.png" alt="Tracking the global response to Covid-19 using DevResults and IATI"><p>The <a href="https://iatistandard.org/">International Aid Transparency Initiative (IATI)</a> is a global initiative to improve the transparency of development and humanitarian resources and their results to address poverty and crises. Tracking the response to Covid-19 is no exception. Whether you’re required to publish IATI data by your donor or not, doing so is important, as we have learned from previous crises like the <a href="https://iatistandard.org/en/news/using-iati-data-60-second-interview-with-liberian-government/">Ebola epidemic</a>.</p>

<p>Over ten years since its founding, IATI provides the world with an impressive and unprecedented view of where development and humanitarian resources are spent and what they are achieving. Even so, many organizations small and large do not voluntarily publish their data, and many publish only the bare minimum as required by their donors. Under the best of circumstances, this is a shame, but in the midst of a pandemic, it vastly underestimates the scale and scope of our collective response efforts.</p>

<h3 id="dataonacrisisforacrisis">Data on a crisis, for a crisis</h3>

<p>Organizations face many challenges when deciding how (or whether to) publish IATI data: hesitancy to open up internal data, privacy and security concerns, lack of technical clarity with the IATI data standard and available tools. We take these challenges seriously at DevResults, which is why we have advocated for <a href="https://blog.devresults.com/extroverted-data-beyond-open-data/">more attention and investment in open data</a>, done our utmost to <a href="https://blog.devresults.com/gdpr-devresults-you/">guard our users’ data security and privacy</a>, and worked hard to <a href="https://blog.devresults.com/iati-the-next-level/">reduce the technical burden of publishing IATI data</a>. </p>

<p>The new guidance from IATI — developed in coordination with the World Health Organization (WHO), UN OCHA Financial Tracking Service (FTS), and the Humanitarian Data Exchange — spells out three simple additions to standard IATI activity files to ensure that data on Covid-19 is discoverable by users:</p>

<ol>
<li>Add “COVID-19” somewhere in the activity title  </li>
<li>Mark relevant Covid-19 response activities and transactions as ‘humanitarian’  </li>
<li>Link to the <a href="https://fts.unocha.org/plan-code-list-iati">Humanitarian Response Plan</a> and <a href="https://data.humdata.org/dataset/unocha-glides">GLobal unique disaster IDEntifier (GLIDE)</a> codes pertaining to Covid-19</li>
</ol>

<p>DevResults enables you to set and forget these items, automatically ensuring the required data appears in all subsequent activity files that are generated.</p>

<h3 id="buttowhatend">But to what end?</h3>

<p>Why should organizations take the time to publish details on their programming using some arcane data standard to an anonymous audience? Where does this data go, and who uses it?</p>

<p>Perhaps it would be useful to see how this data is utilized and displayed downstream:</p>

<ul>
<li><strong>Development Portal (<a href="http://www.d-portal.org/ctrack.html#view=search">D-Portal</a>),</strong> helps users explore IATI data to find out who is doing what, where, and to what effect. A <a href="http://www.d-portal.org/ctrack.html?text_search=covid-19#view=main">simple search for ‘Covid-19’</a> reveals that several institutions are already publishing their outbreak response efforts.</li>
<li><strong>Donor dashboards</strong> showcase IATI data from activities they fund, such as DFID’s <a href="https://devtracker.dfid.gov.uk/">DevTracker</a>, or even data from across the development cooperation landscape, such as USAID’s new <a href="https://explorer.usaid.gov/donor">Beyond USG</a> tool on the Foreign Aid Explorer.</li>
<li><strong>UN OCHA’s Financial Tracking Services (<a href="https://fts.unocha.org/">FTS</a>)</strong> aims to present a complete picture of all international humanitarian funding flows. Organizations can report data to FTS using their IATI files to avoid duplicate efforts. The FTS summary of the <a href="https://fts.unocha.org/appeals/952/summary">Covid-19 Humanitarian Response Plan</a> shows data on funding linked to the appeal.</li>
<li><strong>Aid Management Platforms (AMPs)</strong> are a communication tool that enables donors and recipient governments to open and share aid data to enhance collaboration and information sharing. Many AMPs utilize IATI data, and some have public dashboards, such as <a href="http://www.amp-madagascar.gov.mg/TEMPLATE/ampTemplate/dashboard/build/index.html">Madagascar</a> and <a href="http://pgfe.finances.gouv.sn/portal/node/1?language=en">Senegal</a>.</li>
<li><strong>Researchers use IATI data</strong> to track and study <a href="https://politicsofpoverty.oxfamamerica.org/2017/09/can-you-track-the-ebola-funding-from-pledge-to-delivery/">responses to crises such as Ebola</a> or Covid-19 to determine what was achieved, if pledges were fulfilled, and whether trust and accountability were created in the process.</li>
</ul>

<p>...and this is just a taste of <a href="https://iatistandard.org/en/using-data/iati-tool-guide-for-data-use/">what’s out there</a>! </p>

<h3 id="theeconomicsofdata">The economics of data</h3>

<p>IATI and other open data platforms can be thought of as public goods, and as such they suffer from free-riding; the private cost (to your organization) of publishing open data exceeds the private benefit you derive from the published data. As actors in the business of creating public goods — in healthcare, governance, crisis response, public services, and more — we should be willing to bear these costs for the collective benefit of all, not to mention our own adaptive management and learning.</p>

<p>Our driving mission at DevResults is to reduce the costs — in time, in effort, in funds, and in technical knowledge — to act in the public interest. If ever you’ve considered opening up your programming data or publishing IATI data, now’s the time!</p>

<h3 id="howwecanhelp">How we can help</h3>

<p>DevResults is committed to providing our platform for organizations managing the Covid-19 response and will <strong>rapidly deploy a fully-functional DevResults site available within 24 hours</strong>. For more information on our platform and the work we are supporting around the world, please contact us at <a href="mailto:info@devresults.com">info@devresults.com</a>.</p>]]></content:encoded></item></channel></rss>