We think the best software developers have a lot in common with artists. Think of some artists you know: painters, sculptors, photographers, musicians, poets, and such. What characteristics do they all share? As a start, I'd say that all artists...
- Begin their work with an overall theme, concept, or vision in mind.
- Cycle through various phases as they create their work, including refining, getting feedback from peers, and sometimes throwing everything away and restarting.
- Experiment with new materials, approaches, and techniques as part of their craft.
- Move easily between working on the fine details of their creation and stepping back to evaluate their art as a whole.
Software developers go about their craft in similar ways. They...
- Begin to design with a specific goal or idea in mind.
- Iterate through various phases with an eye on the goal, including writing code, testing, refactoring, responding to user feedback, and sometimes even removing code.
- Experiment with new languages, tools, and techniques to continually improve their craft.
- Move easily between working on the implementation details and stepping back to evaluate the project as a whole.
Now, anyone with a book on pencil sketches can draw a picture with a landscape, birds, and two rivers. But it takes a true artist like M.C. Escher to put these elements together into an intriguing, surreal print like "Day and Night". In the same way, anyone with a book on programming can code up an app that works. Yet it takes a true artist to develop software that puts together contemporary design and valuable features into software that people actually enjoy using.
So where do artists like M.C. Escher create their art? In a studio, of course. Escher's studio was a private room near his apartment in Rome. It was there that he spent his days drawing and cutting wood, making the art we appreciate today. He often invited friends to share a cup of tea, and glimpses at his work. And, for a moment of rest between his work, Escher would lie down on a bench in his studio. (How convenient!)
A studio is quite simply an artist's workroom. It's where they intensely engage in their craft. And that's exactly why we chose to name our training company The Pragmatic Studio. We model our training environment and courses around the concept of a studio: a place where developers come to practice and improve their craft.
In our Studios, we start each topic with a lecture and discussion, and then give you (the artist) time to practice with hands-on exercises. Some folks prefer to work a problem on their own and then discuss the results with the person next to them. Others work in small teams and share insights along the way. Either way, each Studio is an immersive environment where you nurture your inner artist, using a computer keyboard in the same way another artist might use a piano keyboard or potter's wheel. (And yes, we allow time for short naps if you'd like.) Our sole focus is on helping each developer add to their palette new skills, tools, and techniques so they can create true works of art on their own projects.
If that sounds like an environment you would enjoy, we would love the opportunity to meet you in The Pragmatic Studio!