Ever since I was young, I have wanted to know how things worked and how I could do such things myself. I learned to play guitar so that I could write my own music and I learned how to sew so that I could make my own clothes. I learned how to write HTML, so that I could create my own websites and mark out my piece of the internet.
It’s that particular hobby that lead me to my current position as a front-end developer. And I never used to think that home sewing and web development had a lot in common, but the more I learn about each discipline, the more techniques I believe they could share.
Sewing has the longer, more established history, where skills are more likely to be passed down through generations. These practices have evolved with the times, but at their heart, the way I sew is very similar to the way that my mother sews and the way my grandmother sewed as well. There is a well-worn path to turning out a wearable and flattering garment.
When it comes to web development, however, I believe we’re still finding out about the best practices that lead to consistent, functional and beautiful websites and applications. Below are some accepted principles from my weekends of home-sewing that I believe could help my workflow the other five days of the week.
Measure twice, cut once
Almost all sewing texts will tell you to take accurate measurements before you do anything else, otherwise you may end up with a garment that simply doesn’t fit. One centimetre can make all the difference between a perfect fit and looking like you’re wearing a sack. It’s an easy step to overlook in the excitement of a new project, but there is nothing more disheartening than reaching the end of a project with an item of clothing you will never wear.
Similarly, most web development texts will drive home the importance of the requirements gathering phase of a new project so that the final product meets the client’s needs. These requirements need to be as clear as the numbers on a tape measure, else they are left open to interpretation as they travel through production.
There is a big difference between the statement ‘users can buy products’ and ‘users can buy products using a valid credit card or PayPal’. The additional detail provided in the second statement stops confusion and assumption. By explaining exactly how a user can pay, you avoid the situation whereby the job is nearly done and the client asks, “so have you implemented the PayPal functionality yet?”
Toiles and prototypes
A toile is a trial garment, made out of inexpensive material (often unbleached calico or muslin), to check the fit and to see if the end result will be flattering on the wearer. It’s a process born from the European couture houses to ensure a perfect fit. However, many home sewers often take the chance to find out if that ruffle across your hips is a good idea or not without sacrificing often-expensive fashion fabric.
The equivalent step in the digital process is developing a prototype – an inexpensive mockup of what you intend to deliver. Prototypes can be as rough and ready as sketched wireframes, or high fidelity and interactive renders using software like Axure or Balsamiq. They are a chance to explore and, if need be, discard ideas before spending lots of costly design and development time implementing a solution that may not fit.
Prototypes also make great communication tools as well, because after all, it can be difficult to explain to a client why a gaudy animation on their website is a bad idea. If they can see it in action in a brief prototype, however, then that time can be better spent coming up with the ideal solution.
On that note, while prototypes are an investment of time, they shouldn’t take a lot of time to make up. Prototypes that appear finished can be confused for a final solution, which can hinder the exploration of ideas and counteract their ability to demonstrate functionality.
Don’t repeat yourself
Within the online home-sewing community, the goal is to develop a “TNT” pattern – a “tried and true” pattern. For example, a sewer may have a TNT trouser pattern, which means they no longer need to take measurements or create a toile to ensure a perfect pair of trousers. All the kinks and inconsistencies have been ironed out in previous makes. They can then reuse this pattern, using different fabrics and making minimal adjustments to change the style, to produce many pairs of unique trousers. Time is saved and the sewer can spend time doing what they love, which is the actual sewing.
The phrase “don’t repeat yourself” is a common mantra among developers too and overall, programmers are quite good at utilising code libraries and previous work rather than reinventing the wheel. However, the concept can apply to more than just the code within a project. It is difficult to reuse requirements, as each client will have a unique set of specifications, but there is room to develop templates and methods for collecting those requirements. Those old prototypes can be reused as well. If you’ve already proven once that a gaudy animation is not the best solution, bust that prototype out again for the next client that asks.
Much like the sewer who spends time perfecting their technique, it will take time to perfect these methods and resources. It’s easy to see improvement with a tactile hobby like sewing – stitches are straighter and hems are level. In regards to development, the benefits become evident in your workflow. With each project, the amount of new things you have to develop from scratch will decrease, as your collection of tried and tested solutions grows. Even if your requirements change, because measurements certainly do over time, you will never be truly back at square one.
It’s clichéd, but true – practice does make perfect.