It only took a decade or so of my colleagues telling me to do so, but I’ve finally gotten into the habit of keeping a sketchbook with me at all times. I drew all the damned time as a boy, but as an adult I think I got a little intimidated by pencil and paper. But being able to quickly sketch out an layout or scribble down an idea is so, well, liberating.
Past Thoughts: January 2012
"Responsive Web Design". A phrase we're all familiar with thanks to the wonderful work of Ethan Marcotte.
But quite frankly though, I am bored of hearing it.
It's not like I don't like the phrase, in fact it's quite the opposite. It describes its function perfectly. There is also no doubt we need to continue exploring the shift towards responsive web design while continuing to refine our techniques and methodologies. However, this is just one of the many challenges we face many in the crazy faced paced world of the web.
So what's my point? Well, what I'd really like to see in the coming months and years is to hear about people following a similar path to the one trodden by Ethan. I want to hear about new discoveries and in turn, the definition of new phrases & terms that describe our methods, techniques and working practices. Rather than every blog article repeating and quoting each other, let's push ourselves to break new ground and define a new lexicon of language for the web in order for us grow into a mature, independent medium.
It's time to cast away our relationships with other industries such as print and shape our own future. Like a child learning to talk, web design has learned a few words - now it's time to expand her vocabulary.
Often people ask me how I come up with the new ideas I publish. I think my main “differentiator” is that I try not to be restricted by my knowledge about what’s possible and what is not. I first think about what I want to make (for example “I want to do a rating widget with pure CSS”) and then I investigate how it could be done. And I don’t give up easily. Sometimes it even takes months having the question in the back of my head before I come up with a solution.
People push the boundaries of what's achievable with web technologies every day. Do you want to be one of them, or do you want to be stuck repeating what's been done over and over again until you get sick of it? Don't be afraid to try new things. If a voice inside you screams “That isn’t possible!”, ignore it. In most cases, this voice is wrong.
Mobile is an ideological minefield. The insults are barbed and the indignation disproportionate. Take a stance on mobile product choices and design approach, and you’ll soon receive the vitriol of your opponents.
The mobile app vs. native app debate is still one of the most contentious. I find this daft. No one has this problem about native desktop apps vs. web apps. The same people that decry native mobile apps use Coda, Photoshop, and OmniFocus. Native enthusiasts use FreeAgent, Google Docs, and Basecamp without a second thought. In the desktop world, we already know that whether a native or web app is better depends on what it’s for.
I long for a similar rapprochement in the mobile world. Sloganeering and feigned fanaticism are fun, but reality is always more nuanced. Is our mobile future native or web? No. It’s native and web. Now let’s stop arguing, and build the damn thing.
There's this home improvement show called Holmes on Homes, where a contractor visits a home that has been plagued with problems like electrical issues or roof leaks. The contractor, Mike Holmes, inspects the house from its foundation to its insulation and identifies the culprits of the issues.
99% of the time, the reasons for the problems with the home is that the original contractor simply did a shitty job. Sometimes, the shitty job can be blamed on money: the home owners didn't want to spend the money, so they hired an unlicensed contractor. In those cases, you get what you pay for.
But most of the time, the shitty job comes down to a lack of fundamentals. Over and over, Holmes points out areas where the original contractor did the job without following best practices or even relying on fundamental techniques and materials.
And 100% of the time, these homes look great. They appear grand and fancy, with all the modern amenities.
From the first episode I watched, I immediately drew parallels with the web industry because I don't think the majority of practitioners in our field focus on fundamentals. In fact, I'm not even sure the majority of practitioners even know the fundamentals. And this lack of knowledge and/or execution is damaging our industry.
Consider the scenario I currently find myself in: I have a client with a custom, in-house-built CMS who needed a design and front-end development for their CMS templates. Straightforward enough. That is, until I got into the templates.
The HTML was a sea of nested (and nested and nested)
<div>s, inline CSS and
<span>s for headings, just to name a few offenses. The linked CSS was even worse, bloated with unused selectors, overly-specific selectors and redundant styles.
These templates weren't developed years ago … not even a month ago. December 2011. By a developer who says he has “many years of experience”.
While I will hold my tongue regarding the aforementioned developer's actual "experience," this situation is far more common than I think people realize. Especially if you find yourself insulated by the web standards bubble, where we all talk to each other and buy each other's books and read each other's blogs and work on projects where standards are a given.
Amongst "our own" we think everyone is passionate about semantic markup or that everyone cares about progressive enhancement or even that everyone already knows how to build with standards. But this, sadly, isn't the case … especially in an industry where skills are overwhelmingly self-taught.
Outside the web standards bubble I like to reside in, the web seems like the Wild West. Standards? What standards?
<span>gets the job done, who cares about semantic markup? If you can't get your specificity right, use
!importantand use it everywhere! If text won't indent, throw five
<div>s around it and give each padding! If a column won't align, put it all in a
Pedantic? Perhaps. But though these things may seem small, they are actually a big deal. For me, as the front-end developer who has to work with that kind of crap, I get frustrated and I tend to hate my job in those moments. But that hassle isn't my main concern. It's the cascade effect this kind of development leads to.
It's now a big deal to my client, who has to pay me more because working in such convoluted markup and CSS takes more time than the alternative. It's now a big deal to that developer, who is has a very unhappy employer.
But even worse, it's now a big deal when my client talks to other prospects or considers future work. Because, from my client's perspective, he's paid two developers and still doesn't have a solid system that meets his needs and is easy to maintain.
No, it isn't a bomb that goes off to destroy our industry. It's a trickle of water that slowly (but surely) erodes opportunities, trust and perceptions of value.
And let's not forget, it just isn't possible to build something awesome on a shitty foundation. Whether it is a house or a web site, the latest techniques and trends require a solid understanding (and execution) of fundamentals.
Take responsive web design. If you don't understand the basics of the box model and how an element's true width is determined, good luck getting a fluid design working before you bang your head so hard against your desk you pass out.
Fundamentals are important. Not just to sate the pedants and standardistas, but to ensure that we all have great opportunities for work. To ensure our clients feel satisfied with their investment and remain positive about future development with people they can trust. To ensure that our field is respected so that we can all earn pay commensurate with our value.
I'm hopeful efforts like Move the Web Forward will help slow the steady stream of crap that plagues our industry. The project offers a variety of fundamental ways designers and developers can get involved to make our industry (and the web) better. Please go check it out, and then spread the word far and wide.
Pretty please? Because I want to dream of a day where I never again encounter 20 nested
<div>s inside a
<form>that encompasses everything between the opening and closing
<body>tags, all of which styled with inline CSS.
Every time you hard code a width or height you're making a commitment you might not necessarily want to be making. Keep things fluid and make sure a component can be picked up and dropped anywhere else on the site without having to change a thing.
Working on the web is tremendously exciting. I believe that the concept of open source has the power to change the world. I know of no other industry where people routinely create things and give them away, with the hope that someone will take what they made, make it better, and release it back into the world to repeat that cycle.
We need to go beyond teaching our kids to read, write, calculate, and think. We need to teach them markup and how to code.
The whole of communication technology is merely an extension of pigment on surface, the fundamental technique of indirect language transmission. Radio and television and computers do more work for us, sure. They parse ideas into shapes and colors and sounds. But there is nothing they can do that can’t be recreated with a lump of mud and a fertile imagination, a method as viable today as it was five thousand years ago.
The only thing more amazing and beautiful than how far we’ve come is that we haven’t come very far at all.
One of the reasons I enjoy what I do for a living, is it feels as though we're in an industry where we're still exploring and working out what we want. We get to define the technology, approach and ethos of what we do in a raw sense, from language design, browser features, scalability or user experience. You name it! Because we probably haven't yet. We should feel privileged to do what we do while we still don't know exactly what it is we're doing.
We're not just building throw-away websites, we're building an entire way of working from the ground up, and we all still get a say in what that looks like. It's pretty exciting, don't you think?
What is a designer? Is everyone at Dribbble a designer? Is there a distinction that needs to be made between someone who can massage pixels into place to create a stunning 300x400 view of illustration or interface and the individual who knows how to order chaos and solve problems visually, like an entrepreneur, and with care for human realities like budgets and timelines?
I think there is. I think the former is a stylist and the latter is a designer. Creating or copying styles is an art of itself and the talent shown at a place like Dribbble in this area is stunning, but true designers are few and far between. It's an incredibly difficult thing to aspire to, and I'm hoping that I'm on that path.
It has been just over 10 years since I built my first website. 16 years old with a copy of Microsoft FrontPage Express installed by Internet Explorer 4. Cut ahead, I was delighting in the elegance of writing HTML; declarative, simple semantics, expressive enough to be inherently accessible; HTML is a most wonderful invention for the distribution of information to all. All accessed through this strange tool: The browser.
IE4, Netscape 4, a year or so in Seamonkey before Phoenix came out. Firebird, Firefox, dalliances with Opera, and eventually Safari.
The semantics of HTML, and additional vocabularies such as microformats, are all but ignored by browsers. The browser could collect for you a social history of people, not just an address history. The browser could collect the events you view, even as a corresponding Mail client collect collects iCal invitations for your attention.
You could look at modern browsers and conclude that ignoring rich mark-up like contacts and events is just part of a design trend toward minimalism; to be a bare canvas for the rich capabilities of modern web standards. However, in a decade of learning the web, I recall one of my earliest critical assessments: If I mark up a column heading in my code, why won't the browser allow me to sort the table? To this day, I'm still not sure that there's a good answer to that.
I can only assume that when Sir Berners-Lee coined the term World Wide Web, he was envisioning the seeming randomness of a spider's spinning that connects into a thing of beauty. But the metaphor is a double-edged sword. This work of millions of people, easily the most amazing undertaking of our species, has ensnared us all, directly or indirectly. And I'm OK with that.
True expertise is revealed when faced with the most difficult problems. If we simply move the obstacles neatly to the side, ignoring them, can we truly call ourselves professionals, or experts at anything?
I like to see constraints (old browsers, small screen sizes, progressive enhancement, accessibility considerations, you name it) as challenges. If I can make something work without avoiding them, I will be prouder about my work and will have learned a whole deal more than if I just chuck them aside.
Don't be creative. Be a creator. No one ever looks back and wishes that they'd given the world less stuff.
I like working with start ups because they are brave. Sometimes too brave, of course, but unlike most big companies they are likely to have a vision for how the world might be different when their project is in that world, and everyone on the team knows and shares that vision.
There comes a time in almost every company's existence when people start to care more about their career than they do the product they're working on or the customers they're serving. This is when the fear seems to kick in.
Don't be one of those companies and try not to work for them.
They are vision vacuums. In this vacuum you are better off making no decision than making the wrong one. That's no way to be creative.
I love the idea of turning work into play—or even a game. But, as a former educator, I've been troubled by something: Should we be making meaningful games out of ordinary problems, or should we teach kids how to "see" ordinary problems as fun challenges? If we succeed at the latter, we all benefit from a game that never gets old.
As an open source lead, I communicate a metric shit-ton on a daily basis. There are folks who have problems, folks who want to help, and everything in between. One of the hardest problems I have is dealing with contributors who live half a world away, speak English as a second language at best, and with whom my entire relationship is text-based. I can't tell you how many times I've either hurt somebody's feelings or been inadvertently offended due to the inability to translate body language and linguistic nuances to text.
The start of a new year is always a good time to re-evaluate everything we do. How can we use the coming months to make things better? Better for us individually. Better for the wider web community. Better for end users.
In our lovely, friendly industry, a lot is said about the latter two, but not so much about the former... and it's a shame. Why shouldn't we put effort into improving things for ourselves, so that we're happier? Not to the detriment of others, of course, but there's no harm in wanting to enjoy ones work.
For me personally, I've had a great 2011, but it still came with its fair share of stress, good-projects-gone-bad, difficult clients, and relatively frequent late nights. My goal for 2012, then, is to right those wrongs; to prevent those scenarios from ever occurring, and learning to deal with them more effectively if they do. I've written about my plans on my blog and the gist is that I'm temporarily giving up client work to focus on making my own products. This comes from a desire to be happier. Again, it's okay to have this desire, as long as it's not at the expense of others.
This process of re-evaluation will continue throughout the next year, as products are released, and in one year's time, I'll be looking back to see if my '2012 experiment' did indeed bring me more pleasure. If not, it'll be time to re-evaluate once again. And that's okay.
My main preoccupation these days is the intersection or nexus point of creativity, innovation, and productivity. There are so many more tools and capacities on and with the web now, that I feel that we can start to shift our focus away from the “how?” and start focusing more on the “how better/improved?” and “how different?” and really zero in on methods to get to those answers consistently, faster, and with less effort.
Surrounding yourself with highly talented people is a sure fire way to improve your own skillset.
I love chatting to and learning from people who excel at what they do - whether it be a designer, coder or the owner of a small business. It's a fact of life that people like talking about themselves and are usually happy to share their experiences with you. By working out how talented and successful people approach things we put our own ways of working into context. It can often reinforce our own ideas, inspire us to do even better or occasionally make us realise that a certain approach isn't as good as we thought.
Even if you work at home all day or design or code is something you do in your spare time there's still ample possibilities to surround yourself with talented people. If you admire someone in the industry drop them a quick email with a very specific question - they might just reply. If you happen to be in their town for a day why not suggest meeting for a quick coffee? Be sure to have a couple of questions lined up to start the conversation when you meet. Alternatively you could get in touch with local agencies and offer to help out for a day or two. Don't forget to include details of your experience and why you are a perfect fit for them.
It's not always easy to achieve but I guarantee that it's well worth the effort. Surrounding yourself with experienced, talented and successful people will undoubtedly inspire you, certainly help you and ultimately give you a broader perspective on your work.
We work in an industry where our waste is cheap; let's take advantage of that. No one remembers the stones that get chipped away; all they see at the end is a refined, beautiful sculpture.
Everyday, every hour, every minute, every second, awake or asleep, we humans generate information. Not just consciously, by speaking, writing, drawing, painting, but unconsciously too.
Every time we move.
Every time we breathe.
Every time our heart beats.
With countless vital statistics, like blood pressure, our temperature, our immune response to myriad foreign agents in our bodies, the lean muscle content in our bodies.
It's only relatively recently that we've been able to gather much of this information at all - via blood tests, Sphygmomanometers and the like.
Increasingly, such information can be gathered silently, un-invasively, continuously, often with little more than the mobile phone we carry around with us.
I believe this creates an opportunity to revolutionize human health, and happiness, by helping us know ourselves better.
The challenge for designers and developers is how to take what will be an enormous amount of information, often traditionally meaningful only to experts (120 over 90, is this good or bad?), and help anyone know themselves better, and make better decisions about their choices.
Human Computer Interactions to date have for the most part, indeed have overwhelmingly been, about active human interaction - people typing, clicking, tapping, and otherwise directly, consciously providing information.
I see the next revolution in HCI being where software and systems take the vast amounts of information we generate simply by being, and present that back to us, in ways that make us healthier, fitter, happier.
Rudimentary pieces are there. With services as simple as Foursquare or Gowalla, Nike Plus, Runkeeper, with devices like Withings wireless scales and blood pressure monitors.
But it's what's next that interests me.
Eleven years ago, I taught my first workshop on XHTML. It quickly became clear that outside of what was spec'd and implemented, the only answer I'd have for business case, use case or real-world pragmatic questions was "I don't know." Now I teach HTML5 workshops, and find myself confronted by the same questions, especially in regards to APIs, storage, and security.
The answer is still "I don't know." People refer to me as an expert. The truth is, the only thing I'm expert at is not knowing! At its essence, this is perhaps the ongoing fascination for those of us working the ever-changing Web. We don't know. Every day is a new adventure, every project an opportunity to learn. Out of this experience, I've learned we workers of the Web should be proud of all the things we don't know, because it opens up a literal world of opportunity and discovery.
The most important thing you can do in this industry—or indeed any line of work—is be nice. Be grateful for the work and thoughts of others. Take the time out to send a nice email to your idol. Reply to all your emails. Most importantly, take the time out to help those who need it, whether it's writing a line of code or giving feedback on their work. It pays not to be an ass.
Recently over lunch, the hypothetical question of "If you could have lunch with anyone in the world" who would it be came to discussion. I racked my brain and disposed of the "too smart, it would be intimidating" entries (like Bill Gates) and the "I'm only lunching with you cause you're hot" entries (like Joseph Gordon Levitt) and ended up on someone who I thought I could relate with and learn from, Tina Fey. Tina Fey/Liz Lemon and I share three important similarities:
- We were both the first femail directors at our jobs. Her as the head writer of Saturday Night Live, me as the Interactive Development Director at Happy Cog.
- We both accrue lettuce in our hair as a result of eating at our desks.
- We both have dated a beeper salesman.
If you're waiting for the comic relief in which I say only one of these three facts is true, you'll be waiting a while. I never really put much thought into any of these, as they all really just seem like an integral part of life, but recently the first one has been on my mind. After reading about Virgina Rometty being named CEO of IBM, I got to thinking, "that's awesome! But why does it matter that she's the first?"
My thoughts on that were further solidified after watching Tina Fey's acceptance speech for the Mark Twain award in which she said:
Apparently, I’m only the third woman ever to receive this award, and I’m so honored to – to – to be numbered with Lilly Tomlin and Whoopi Goldberg, but I do hope that women are achieving at a rate these days that we can stop counting what number they are things.
I really dig that women in technology is gaining momentum as a topic. I loved teaching the first Philly chapter of Girl Develop It. I've also enjoyed reading the tweets from the 11th Grace Hopper Celebration of Women in Computing. I hope these groups supportive of women tech nerds keep on coming. I hope that they become so prominent that we slowly don't need them anymore and like the real Liz Lemon says, that we'll be able to soon stop the counting.
Just before Christmas I saw a BBC article where a man in Ireland found a letter written to Santa by his mother, when she was 10 years old, 100 years ago. When I saw her handwriting in the photo, it seemed like a part of her was embedded into the faded, yellowed paper. The artefact felt like an extension of her. In a world where we type more than write, I wondered how I could embed a facsimile of that physical connection into my work on Mapalong. I wondered if, in a hundred years time, the data people create now could have the same resonance that hand written letters do, today.
Towards the end of 2011 there was a lot of, sometimes angry, debate about how we speak to each other online. How should we criticise and point out bad advice without offending and hurting people? Time and time again people confuse being kind with being uncritical, as if the only positions are to accept everything as lovely or make personal attacks with no explanation of what the actual problem is.
Critiquing something on Twitter is likely to end up with hurt feelings. As a commenter on Sarah Parmenter's post on the subject pointed out, it is similar to being with a group in a pub, and hearing something you disagree with so standing on your chair and shouting, "THIS PERSON HERE, IS AN IDIOT!", sitting back down and continuing your chat. Most of us would agree that is not a constructive way to behave - even if the person attracting this treatment was wrong.
I want to encourage a culture of argument and debate, that takes the web and technologies forward. A culture that takes everyone's view as important. A person who has only been in the industry for a year may well have insights that those of us who have been around a very long time do not have. I can remember CSS being introduced, and debating the merits of using it instead of font tags, how much of my thinking is clouded by our history? That said, those of us who have 10+ years of web development experience, by way of that, have insights into a wider range of projects and problems that newer folk do not have. We can seem stuck in our ways when we point out potential issues - but our advice is tempered with experience.
We move things forward by listening to each other, and arguing our various viewpoints to bring new methods and ideas into being. When we argue however we need to remember that there is a real person behind each email, behind each Twitter message, behind each keyboard. That person may have strong ideas and opinions, but might also be having a tough day and wording their thoughts badly. Or have little experience in arguing a point of view and so come across aggressively. By being kind, we prevent people becoming entrenched in their positions, and constructive debate can occur.
The Web is about communication. It connects many people who previously were isolated such as those with disabilities or those in oppressive regimes. It's a World-Wide Web, not a Wealthy Western Web. If your super-clever site only works with a mouse and monitor, on the latest $2000 super-spec laptop, with a fat broadband connection, you're missing the point.
Anything that’s fixed and unresponsive isn’t web design anymore, it’s something else. If you don’t embrace the inherent fluidity of the web, you’re not a web designer, you’re something else. Web design is responsive design, Responsive Web Design is web design, done right.
Considering my heavy workload, and the fact that things are always so busy, someone was asking me how I manage to stay creative at all times, and how I always find the motivation to design as best I can. I thought about it for a bit. Time is a factor that plays a major role in the creative process. To be able to stay at your best creativity-wise, you sometimes need extra time. As a creator, you can always create 'something' in a short period of time, but you won't be able to give it your best if that period is really short. Give yourself extra time and you will create something way better. Sometimes it's good to let a project rest and look back. Sometimes you have a creativity block and you really need a break. I think it's important with every project to make sure you have enough time; that little extra can make the difference. This movie shows exactly what I mean http://www.youtube.com/watch?v=jgvx9OfZKJw.
Of all the things I’ve learned this year—and believe me, there’ve been a lot—I realize what an asset it was to have a wide array of mobile devices nearby as I worked, especially for a large-scale responsive site. As we design further and further beyond the desktop, device access is going to become a real challenge for our industry to overcome. Nothing shapes your design decisions like holding a device in your hand, and interacting with it just as your users might.