Hi, my name is Valério Farias. I have worked in web development since 2003, and I’d like to tell you a little about my story.
I started out with table-based layouts, using WYSIWYG editors. I thought they were simple because I didn’t have to get lost among the countless trs and tds. But one day I needed to put a large report, which was in spreadsheet format, into HTML. With my naïve idea of simplicity, I exported it straight to HTML—a kind of spreadsheet CASE tool. The result was a page that was extremely slow and impossible for a human being to view. I was discouraged and puzzled, so I faced the beast. I combed through the code and was shocked by the amount of repetitive formatting it contained. I cleaned it all up, leaving only the necessary code, until, to my relief, I was able to publish the file on the web. That was my first major challenge, and I came away with the lesson that it is important to clean under the rug, too.
Then came other challenges. I was very surprised by my first encounter with web standards and the tableless methodology. I realized that instead of sweeping dirt under the rug, it was much better to pick it up with a dustpan and put it straight in the trash. That was when I decided to gradually give up the WYSIWYG tool.
I first felt the impact of lean code when, after only a few days, I realized that clean code, if it is out of context, is not enough. The next big thing was semantics, and I started using the appropriate markup for each type of content. Around the same time, the rug started fraying. I tried to fix it, then discovered that in my haste to save yarn I had woven it in a disorderly way, and could no longer find the beginning of the unraveling thread. I decided to make a new rug, but this time I used a few thicker threads as guides for the others. That way I could easily find the beginning of a thread by following the thicker one that served as a reference. I also took the opportunity to address another problem. People were stepping on the edge of the rug and tracking dirt onto the floor, so I drew two footprints in the middle of it as a gentle suggestion that they wipe their shoes in the center rather than on the edges.
Another important issue was separating presentation from content. Now I would handle all positioning, font controls, and colors in a separate CSS file. The technique that caught my attention most at the time was image replacement, particularly the possibility of swapping images when the mouse passed over a GIF to create a rollover effect. I used to do that with an automatic JavaScript code generator that added code to the HTML to make the effect work, while CSS could do the same thing more simply. As for the rug, I had a big problem changing its colors because I used pre-colored yarn. To change a red thread to green, I had to remove the first thread and put in the other one. I changed the process so that I would make the whole rug out of neutral-colored yarn and then add the new color with paint. To give it a new look, all I had to do was apply a fresh coat of paint. I even improved the painting process: with a brush I used too much paint, but now, with a spray, I use only what I need.
When I started paying more attention to the user, a very important variable in development, I began refining concepts such as accessibility so that pages would be available to people with disabilities and also prepared to handle the diversity of devices already on the market and those yet to come. During this period I discovered that accessible code is useful to most users. I also understood that using web standards and separating presentation from content already gave me a very solid foundation for accessibility.
Other user-focused concepts I began adopting were usability and information architecture. An interface now needed to be intuitive and comfortable, and its information and navigation needed to be simple so that users would not get lost trying to find what they were looking for.
Around the same time I noticed that my living room was getting dirty. I realized I only had a rug in the bathroom, so I made a new rug for the exit to help keep the dirt out. Not long afterward, a couple of things put me on alert: first, my aunt had an accident and had to use a wheelchair for a few months. The rug was so thick that it made it hard for her to enter the house, so I put down another, very thin rug that would not get in her way. Second, my sister once slipped as she left the bathroom because the wet floor made the rug slide. I added a new non-slip layer underneath it to keep that from happening again.
Just when I thought the organizational details were state of the art, microformats appeared. They make it possible to represent specific kinds of information, such as business cards or event lists, using standardized class names—something HTML alone could not do. So I started using hCards.
Coincidentally, not long afterward, a neighbor admired the rugs in my house and asked who made them. I told him they were a family craft, and it occurred to me to put a label on the rug saying “Homemade.”
By this point I had a clear idea of how to produce a website. But I discovered that simply putting a website online was not enough; it was also necessary to track the results it produced and compare them with what was expected, to see whether the desired return on investment had been achieved.
My main goal in making the rugs was to eliminate the excess dirt accumulating in the house. After a few months, I noticed there was much less of it, but my mother often took visitors out to the backyard, and when they came back through the kitchen they still brought in some dirt. So I put another rug by the back door, which finally solved the problem, and the house stayed clean much longer.
Phew! So many concepts applied, and finally some stability. Not at all! When IE7 came out warning that the hacks used for IE6 would no longer work, I had to refactor the CSS pages using conditional styles for IE. Just when I least expected it, the cat at home scratched the living-room rug almost to pieces. I had to get a new one and hope the cat would not scratch it again.
All right. I know I need to be prepared for unexpected moments that require changes to our routine. What I have realized so far is that I went through several stages of improving code and the interface to improve user satisfaction. But I also became aware that, depending on the project, another variable may be needed: the possibility of an interface enabling interaction between people, which is being researched and discussed in the field of interaction design. As for rugs, I have not yet considered using them more widely in places where people interact, as Iranians do: in addition to covering the floor, they use rugs to decorate homes and public places throughout Iran.
I cited links from several bloggers in this text, even though I am talking about my own experience. Please don’t interpret that as an attempt to pull the rug out from under anyone. The point is that I could not have got to where I am today without these references and many others I have not mentioned. This shows the importance of sharing information so that it can be reused and improved. If we look more closely, the product (the web page) is ultimately a collective work in terms of knowledge, techniques, and ideas, carried out by individuals and then returned to the community, helping people better address their needs and desires.
I think it is important to share this process because we need to understand that we should improve our development techniques to the point where we know whether a product has improved people’s experience, whether rework is being avoided, and whether unnecessary bureaucracy is being eliminated. It is also worth remembering that ideas can have different meanings, and that we need to avoid naïve interpretations that can make processes worse and damage the product—as happened when my initial idea of simplicity produced a file that could not be viewed. In the context of the web, I consider a product simple when it meets users’ needs, improves their experience, and can also be changed easily.
To conclude, I learned that sometimes our neighbors have to beat a dusty rug right under our noses to alert us that it needs cleaning. In my case, it prompted me to start this blog and share my experience.
Best wishes to everyone.