blog

Asana Tasks as Plaintext

Ditch vendor lock-in, write custom scripts, and power up your team

1903 - a pivotal moment in history.

The last 120+ years have ahd a lot of pivotal moments, of course - and perhaps 1903 doesn’t stick out in your mind the way, say, 1914, 1939, or 2001 does.

Nevertheless, 1903 was important - and perhaps the most memorable reason why comprised just 0.00028% of that time.

That’s how long the Wright Brothers’ spent in the air that year.

Their first powered, sustained, and controlled flight was a pivotal moment in history. It marked the beginning of a new era - one of transportation, one of innovation. Bad things, too: aerial bombings - but that was still far in the future.

Interestingly, people often focus on the brothers overcoming long odds - they possesed willingness to continue when others might have failed.

Fearlessness alone, though, wouldn’t get the job done - the brothers’ also had meticulous data collection and analysis.

They conducted extensive experiments, recorded detailed notes, and iterated on their designs based on the data they collected. They understood that to achieve their dream of flight, they needed to have a deep understanding of the forces at play and how to control them.

That’s a good example for us today - whether you’re at a small tech startup or a giant enterprise, blending innovation with careful analysis can benefit you immensely.

However, our situation is not that found by the Wright brothers in 1903. There are important differences.

Today, we have more tools than the Wrights’ did - but as everyone has access to many of those tools, they become, not an advantage, but simply a disadvantage to those who don’t have access or don’t use them effectively.

Vendors know this. They often make decisions based, not on what is best for the customer, but what is best for the enterprise. At times, this may not be a severe problem; but at other times, it can be extremely vexing, such as when a critical functionality is removed or a critical software package discontinued. The more your company relies on a tool, the more vulnerable you are to the whims of the vendor.

Indeed, virtually rely on ticketing systems like Asana to manage our projects and collaborate with our teams. But like the Wright Brothers’ early flying machines, these tools sometimes crash - and like early airlines, they go out of business.

Data Silos and “Good Enough”

Asana, like many SaaS tools, stores your data in its own proprietary format - locked away in the cloud. While this is a common practice, it can make it difficult to use your data outside of Asana. The export options provided by Asana are limited and may not include all the data you need. Further, if you have many projects, it may become quite cumbersome to regularly export and re-import your data to another program.

This can lead to data silos and vendor lock-in. If your data is trapped in Asana’s format, you may be forced to continue using the tool even if it no longer meets your needs, simply because migrating your data would be too difficult. This lack of data portability can be a significant problem, especially for long-term projects or if you need to integrate your data with other systems. Indeed, many people stay wedded to a particular tool simply because it is “good enough.”

As Thomas Edison once said, “Many of life’s failures are people who did not realize how close they were to success when they gave up.” Don’t let proprietary data formats hold you back from achieving your goals. Ask yourself, are you confident that your tool is helping, rather than hurting, you? Do people use the tool as little as possible, or do they enjoy using the tool?

The Power of Plain Text

This is where the power of plain text shines. Plain text data, like YAML, is like a physical printed book. It can be read by anyone who understands the language, without needing any special tools. It will still be readable decades or even centuries from now, long after current software has become obsolete.

Syncing your Asana data to YAML gives other benefits, too - easy adhoc analysis and improving custom tools.

Here’s a simple example of what an Asana task might look like when exported to YAML:

---
id: '1200694331183094'
path: 
  - 1200694331045602
  - 1200694331046858
name: Research data export options
notes: |
  We need to find a way to regularly export our Asana data in a format that's easy to use outside of Asana. 
  
  Key requirements:
  - Human-readable format
  - Includes all relevant task data
  - Easy to version control
  - Can be automated to run regularly  

completed: false
assignee: James Smith

As you can see, the YAML format provides a clear, structured representation of the task’s fields and values. It’s readable by humans and can be parsed by virtually any programming language.

The exported YAML data opens up a world of possibilities. Regular exports ensure you always have a backup of your Asana data. You can store these backups in multiple locations for added safety. If you decide to move away from Asana, having your data in a standard format like YAML makes the migration process much easier.

With your data in a plain text format, you can use a wide variety of tools to analyze it. You could look for patterns in task completion times, measure project progress over time, or generate custom reports. Having your data in a format that’s easy to parse makes it possible to build custom integrations and automations. For example, you could write a script that automatically creates tasks in another system based on certain conditions in your Asana data.

Charles Babbage, the father of the computer, envisioned a machine that could be programmed to perform any calculation. Today, we often focus on speed - and, indeed, early computers were faster than hand calcuations, but by nearly the margin as today. The flexibility, though, of Babbage’s Analytical Engine and it’s descendents is no small factor - but we often lose the full advantage of such flexibility to vendor lockin. Exporting your project management data not only gives you safety, but also possibilities for custom analysis and automation using AI, spreadsheets, custom scripts, or any other tool you may imagine.

Getting Started with House of YAML for Asana

Alexander Graham Bell, the inventor of the telephone, famously said, “Before anything else, preparation is the key to success.” This principle applies well to setting up House of YAML for the first time.

  1. Make sure you have Ruby installed on your system. House of YAML is a Ruby gem, so you’ll need Ruby to use it. I recommend against using system packages, such as those provided by apt-get or brew; instead, use rbenv or mise to install them.

  2. Install the house_of_yaml gem:

    gem install house_of_yaml
    
  3. Configure the gem with your Asana API key. You can find this in your Asana account settings:

    require 'house_of_yaml'
    
    HouseOfYaml::Services::Base.add 'asana', asana_api_key: 'your_asana_api_key'
    
  4. Choose a location for your exported YAML files. This should be a directory managed by Git. Initialize a new Git repository there if one doesn’t already exist:

    mkdir asana-data
    cd asana-data
    git init
    
  5. Create a Ruby script (e.g., export_asana.rb) with the following content:

    require 'house_of_yaml'
    
    repo_path = '/path/to/your/repo'
    HouseOfYaml.sync(repo_path)
    
  6. Run the script:

    ruby export_asana.rb
    
  7. Commit and push the exported files to a remote Git repository:

    git add .
    git commit -m "Initial Asana data export"
    git remote add origin https://github.com/your-username/your-repo.git
    git push -u origin main
    
  8. Consider setting up a regular task (e.g., a cron job or a GitHub Action) to run the export script periodically. This will ensure that your exported data stays up to date.

Conclusion

The Wright Brothers achieved the first powered, sustained and controlled airplane flight in 1903. This milestone was made possible by their relentless experimentation, data collection, and iteration. In the age of SaaS, taking control of your data through tools like House of YAML is a similar kind of empowerment that opens up new possibilities.

By regularly exporting your Asana tasks as YAML files using House of YAML, you ensure that your data remains accessible, portable, and under your control. Storing these files in a Git repository adds the benefits of version control, backup, and collaboration.

Whether you’re looking to migrate to another tool, analyze your data in new ways, or build custom integrations, House of YAML provides a solid foundation. It’s like having a personal assistant that keeps your data in order, always ready for you to use it in new and innovative ways.

So take control of your data today. Install House of YAML, set up a regular export, and start exploring the possibilities. And while you’re at it, consider contributing back to the project. Like the Wright Brothers’ first flight, your contributions could help others soar to new heights.

Alternatively, if you’re not in the mood to customize your Asana installation, why not contact us? We’ll set you up with custom integration scripts - anything you can imagine, we can do it.