Call it what you may: skill development, research, or internal projects. At their core, these are all really just practice. As professionals in an ever evolving industry we have to practice our craft. When working with technology the industry moves fast; if you don't keep up you will be left behind. I have been working in the web for over ten years now and things are changing faster than ever.
There are several different ways that the Sparkbox team practices what we do. Some of the common ways are researching, prototyping, and working on internal projects. Other ways include learning new technologies or trying to master technologies we already use.
One of the most common ways we practice is by conducting research. This is often necessary so that we know the different ways to solve our clients' problems. This can be as small as trying to figure out how media queries work in different browsers to as large as building functional e-commerce sites to determine the best user experience. Sometimes this research ends up in a Foundry post, but often it just results in us making better decisions while working on projects.
Prototyping a solution before starting implementation is another way we practice. Often when working on a project we come across a problem that we either have not exactly encountered before or that we know there has to be a better way than our previous solution. When we realize that this is the case we often prototype a few solutions to find a good one. The best of the different prototypes often make it in to the final deliverable. Doing this enables us to find a better solution, but often we learn something unexpected.
When learning new technologies, reading is a great way to start. Often when learning something new I like to find a good book. Reading can be a great way to get a good overview and set a solid foundation when learning something new. Books and blogs are can be a great reference, but in order to master something new you have to get your hands dirty. Back in the day, starting a new technology often began with a version of "Hello World." While "Hello World" will always have its place, new ways that speed up the learning curve have been popping up. Online interactive tutorials and videos can increase the learning curve time. (http://railsforzombies.org/), (http://www.mongodb.org), (http://codeschool.com). These can allow experts to walk you through a set of exercises that demonstrate commonly encountered situations. This type of practice allows us to offer better services to our clients.
Code katas and code koans can be a great way to master skills and think about problems differently. This has been a very talked about topic lately in the Software Craftsmanship (http://manifesto.softwarecraftsmanship.org/) community. Becoming faster and more proficient at things we know can lead to huge efficiency gains. When trying to learn Ruby last year I went through Ruby Koans (http://rubykoans.com/) several times. While at first this allowed me to learn a new language, later this allowed me to learn all of the languages' edge cases. Each and every time I go through the koans I learn something new. There is also a rise in developers gathering just to practice together. Meet ups are starting to spring up that do not have a formal agenda but just allow developers to get together to learn from each other.
Internal projects are how the rest of the world can view our practice. Sometimes these projects start as something that we intend to release, other times they start out as another type of practice that we decide to share. With every internal project that we do, we try to find something new to try out. This gives us the excuse to try technologies, techniques, designs, and workflows, but have not used in client projects yet. This is a very important way that we can use internal projects to practice things before using them in client projects. Below are some examples of the results of our practice.
Eat at FORGE: http://eatatforge.com
eatatforge.com - This project was our 2010 Holiday project. This allows clients to sign up and come to lunch on Fridays. This project was our first production Ruby on Rails project. We starting playing with Rails early last year and when given the chance to build a simple web application we went for it. We learned quite a bit about Rails during this project.
Sparkbox Website: http://seesparkbox.com
seesparkbox.com - This is the website that you are now reading. During the design and development of this site we practiced how far media queries could be pushed to enhance the mobile experience while still not giving anything up in the design department.
FORGE Ideas Website: http://forgeideas.com
forgeideas.com - After completing the Sparkbox site we wanted to continue to experiment with site design with media queries to see if there were other ways they could be used.
A Modern Eden Apps: http://www.amoderneden.com
This project started out as us learning Objective-C while at the same time Ryan Clark was illustrating some animals for a side project. We decided early on to marry these two things to develop a universe with iPhone applications and a website with e-commerce. This was one of our first sites using Expression Engine.
iPad Pocket tees:
This internal project started out as a joke over lunch that turned into a website.
There are several other internal projects in the works here at Sparkbox. The good ones will be released out into the world, while the others will never make it out of the office.
Practicing seems natural––and necessary––for athletes, however I often hear people say it’s crazy for white-collar workers to practice. But the best professionals learn early on that practice is required to stay on top.