About Agile Work-flows

Note: I wrote this to describe agile/scrum development to my colleagues because on our team I have the most experience with it, but I’m not really expert on agile or scrum.

Developing a product involves a number of different roles that all need to coordinate with each other. There are designers, sales people, engineers, writers, managers, and much more. All those people need a way to track what they need to do and what other people are doing. Agile work-flow is a communications system that helps teams broadcast what needs doing and what is being done. Read More »

What I Do at Autodesk, Aug. 2015

I work at Autodesk with a team that includes urban planners, architects, and software engineers. Our goal is to make tools for people in regional and urban planning. The tools include a desktop geographic data viewer, statistical modeling of real estate markets, data pipelines, and much more.

I work on all of our data related projects, which are almost entirely Python. The projects involve the standard scientific Python data tools, of course, but also web libraries when we work on web-based data services. It’s also not unusual for JavaScript, HTML, and CSS to come up for user interfaces. (We even have a node.js server in the works.) On a team this small it helps to be have diverse experience and a willingness to learn new things. (Our larger group is ~12 people, but I work closely/regularly with about three, all urban planners.)

The users and collaborators on our data projects are mostly scientists, which sets a high bar for library usability, documentation, and technical communication. With only me doing the bulk of coding and operations things can often take time, but my colleagues are committed to having well tested, well documented code that will work for a long time. (And I wouldn’t have it any other way.)

Day-to-day my brain power goes to things like:

  • Asking my colleagues questions about their needs and how they do things
  • Thinking about how to make a sensible API or UI
  • Thinking about how to actually solve a problem
  • Writing tests
  • Writing documentation
  • Writing code
  • Figuring out how to work with a given data source (researching libraries and learning the data format)
  • Reviewing code and projects
  • Training colleagues in Python and software engineering practices
  • Learning new stuff to apply to a task

We’ve got a lot of interesting work coming up, including building several automated data processing pipelines and online services. As always we’ll be working together as a team of diverse expertise to create usable, useful software that has real-world applications and meaningful impact on the citizens of cities around the world.