I recently just concluded a freelance project with a group of really talented people that I'd started with back in January and this last Friday was the last official meeting I had with them. My work as a developer cam to a close when we had a "post mortem" (sort of a morbid way of saying last meeting, but hey) and the project manager spearheading my work wanted to hear my and the other developers input on the successes, shortcomings, and overall thoughts of the work so far.
It was something I'd never encountered but although my work on the application is mostly finished outside of some input for any future developers, the manager wanted a better sense of where to take things in the future. And that meant revisiting the course of our work.
It was a tremendously cathartic experience to hear from others what occurred, what was learned, and what could be done better. Over and over again, what smacked me in the face about being an effective developer, designer, project manager, or whatever when trying to birth something into existence is being laser focused on what are the most essential features of what is being built. This leads me to the first important trait for anything creative...
Before starting something, a personal or client project, a piece of art, a design, or whatever, ask yourself "What am I making?", "Who is this for?", "What are the most important parts of it?". Then once you've answered them, think about them again. Then do it one more time. Keeping a store of meaning and importance at hand is crucial for developing any work because there isn't enough time in the day to build out every single feature with every single nice finely tuned UI animation.
What became so important in the course of the post mortem was that the race towards building an application from scratch was being crystal clear about what could be incorporated into the app and what didn't need to be. Or, when a designer handed off mockups, if there were certain designs that were more important than others, then what exactly were they?
I've been lucky enough to have had the chance to work worth more established teams in the course of contract work, but this was the first chance I've had where the application was built from absolute scratch while working with a project manager who defined the goals of what he wanted for the application. Especially because I was contracted out to work towards a functional proof of concept or minimum viable product, I had the chance of really shaping that initial feature list.
Why this is such an important trait to have, is that it saves you time and improves the end product. Allocating time on unnecessary features means you'll spend time on things that don't matter or will distract from the features that are important for what is being built. You have to think like an artist that cuts out all extraneous noise in a scene or portrait. An artists is like a technician that highlights the beautiful elements and removes all those features that simply just don't matter.
However, this is only part of the way to building something...
Even though you may have that laser focused idea of your end goal in mind, you also need to be able to communicate that to others. If you're a designer handing off a mockup to a developer then it's crucial that you communicate that vision you have or that hierarchy of importance. Developers are craftsman that can jerry rig and hack their way to a solution. But, again, time is a factor that can bite you.
Effectively communicating the essentialism is just as important as knowing those essential qualities to begin with. If things are lost in communication, then developers have no way to know what to build and vice versa. Developers who can't communicate a hierarchy of time so that project managers and designers understand what to strip away as a result are the worse for it.
So those are the two most important traits I found to have when in the course of my last contracting project. Refining your essential idea of the product and then being being able to communicate those qualities are hugely important for any designer, developer, manager, or anyone trying to build anything at all.
Let me know if you have any input these or can think of any additions.