Designers + Developers: Collaborating on your Python project

Presenter: Julia Elman, Mark Lavin

Track: II

Description:

Working in teams is an important part of what we do as developers & designers. Whether it’s desktop applications or mobile sites, we work together to create successful end products. But how do we work together in different environments? What is the best work-flow for a mix of skill sets?

We’ll be talking about our various methods & work-flows that we found successful in working collaboratively.

You’ve Got an Idea

Sometimes you get an idea for a project, you start mulling it over and eventually you decide to work on it and try to make something. You might start recruiting people, and you’re likely going to recruit from your circle of friends, which means that they are probably a lot like you.

A Designer

Maybe you should try to recruit a designer? A stock UI framework (Twitter Bootstrap, for example) will only get you so far.

You need to bring in people who compliment your skillset, because if you bring in more people like you, than the will help you get things done faster, but maybe not better.

Beware Too Many Cooks

Keep your team compact, be selective, but seek for diversity.

Comfort Zones

Be careful not to go off into your own world and do your own thing, then try to smash the whole thing together at the end. Don’t work in a silo. Be willing to get outside of your comfert zone and expertise. Other people need your feedback, even if you’r enot an expert in their line of work, because you can have ideas that they might not think about.

Designers

It can be scary for designers (or anyone, really) to try to work with the terminal, it can be very intimidating. But designers should just dive in.

One of the best parts of collaboration is the knowledge exchange. Developers should be patient and help the designers, answer questions, and direct them to good tools. It will make your life easier to have your team up to speed.

Developers

We have to be willing to give up some control. Many developers fall into two categories:

  • They don’t have the confidence to say what is good design and what isn’t
  • They don’t care enough to pay attention

You can and should know what good design is. Pay attention to things that work intuitively, make a mental note of them, bring that to the table.

Developers should work on being better designers, think about how to make your software more intuitive for the users.

Automation

Use your expertise to remove the cruft so that you can focus on the idea. Automate the menial tasks.

  • Setting up dev environment
  • Deployments
  • Builds
  • Testing

Let designers and developers focus on the details of the idea.

Documentation

Document everything you can’t automate. Tailor those documents to every type of person that needs them. If you want people to get involved in your awesome idea, you should document what you have so far.

Bottom Line

In good collaboration you are stretched beyond your skillset and you learn something.

Also, in a good collaboration, failure becomes an option, because the act of the collaboration becomes the real positive outcome. The success of the projcet itself matters less because you have improved yourself.

It’s ok to fail in a good collaboration, as long as you don’t fail at collaborating.

Example

Wanted in page editing, using the power of the Django templating language, and wanted the developer to be able to put in sane defaults for when there isn’t anything in the database.

Inventing on Principle by Bret Victor - You should be able to see what you’re changing, while you’re changing. vimeo.com/36579366

Developers start thinking about the technical challenges right away, they start thinking about what they know they can do, and become sceptical.

They started talking about it to people, who shared additional ideas.

Django Scribbler - http://www.github.com/caktus/django-scribbler/

Closing Thoughts

People can contribute a lot more to a project than just git commits.