DiamondLime.com

 
 

Merry Christmas and Happy New Year

I hope that everyone had a great Christmas, and I wish you all a Happy New Year!

I love Christmas—I appreciate the extra focus on the Savior of the World, Jesus Christ. I like the chance to spend extra time with family and friends. I love the meaningful and enjoyable traditions. I also really like having a stay-at-home vacation—time off but not time away from familiar places.

New Year’s is great too. I like the chance to examine my life and make resolutions, even though I don’t keep all of them. The act of examining myself periodically really helps me to understand where I’m at and especially where I’m going. The end of one year and the beginning of the next provides us all with an incentive to “right the ship.”

Brain Dump

One of my favorite ways to go about setting a course for my life is what I like to call a “brain dump”—rapidly “pouring” the contents of your brain onto paper. I sit down with several sheets of paper and write down everything I can think of that I would like to do, see, or achieve in my life, especially focusing on, but not limited to, the new year.

After I’ve spent what feels like a good amount of time doing this, I categorize my ideas. The categories that my goals and plans usually fall into include spiritual, exercise, creative/talent, financial, educational, and recreational areas. Once most of my ideas have been categorized, I like to prioritize what I have. During the year, I work on the top priorities, and that way when I don’t finish by the end of the year, I know that I have achieved what was most important to me. While I’m prioritizing, I copy over goals from last year that didn’t get done and that are still worth doing and I assign them new priorities (whether higher or lower)

I usually flesh out some of my ideas at this point—I think scheduling, required resources, price, and whatever detail I feel is important and that I might forget later. This phase is really a work in progress, too—the most immediate tasks usually get worked on first. This step is super important to me—it removes many of the unknowns and breaks my large goals into managable pieces.

Another New Year

I’m excited for 2007. I hope we can all make it a great year to remember. Enjoy the celebrations, and stick to those resolutions!

 
 

Employee Contributions and Compensation

One of the hardest things to do in many companies is to measure employee contributions.

For example, in a company that values innovation and creates tools, processes, or software for speeding up production or services, the flashes of inspiration that employees have while showering, eating, running, tinkering, or engaging in other unrelated activities can be hard to measure and compensate correctly. That 30 seconds of pure inspiration and creativity can be worth more than weeks or months of nose-to-the-grindstone labor.

At the same time, innovative new ideas don’t mean much without a great implementation. Sometimes the work that needs to be done is simply lots of basic tasks where quantity and diligence are key.

So how can you motivate employees to focus on the right activities? How do you quantify employee contributions? How can you compensate them fairly?

The Right Activities

For a company to succeed, there needs to be a good mix of innovation and execution. If employees work longer hours, they show dedication and will produce more of the results you have been getting. Activities that inspire innovation can lead to the breakthroughs that change the rules of the game and allow you to execute a new, more productive plan. If working too many hours begins to get in the way of activities that promote innovation, then you may be missing out on breakthroughs. If all of your time is spent on innovation, you will have lots of new ways to do things, but those tasks won’t be getting done.

Quantifying Contributions

Unfortunately, quantifying employee contributions is very difficult. Exactly how much is an innovative idea worth? Estimates of time saved, quality improved, and extra value added are a good place to start.

Fair Compensation

Employers, knowingly or not, dramatically influence the balance that their employees will choose. If compensation is based exclusively on face-time or clocked-in hours, then employees will give you more hours or balk at the shift in their work-life balance and the loss of free, creative time. If rewards are overly biased towards innovation, there will be too many ideas and too little consensus and execution. Compensation should be mixed to reward both types of behavior. Salaries, benefits, and working conditions are best for rewarding consistent production and face time. Stock options and profit sharing are great ways to reward employees in some kind of fair, flexible way for how much their innovations affect the bottom line.

Contribution Culture

The culture of a company can have a big influence on how employees behave. 3M is famous for requiring its employees to spend 20% of their time on non-project related activities—innovating in search of the next big thing. If innovation and employee development are important, then part of normal work hours should be devoted to these activities. At the very least, project hours shouldn’t be allowed to infringe upon innovation time or the activities that help employees innovate. Employees usually understand the need to put in regular hours in order to get fundamental work done. Encouraging, quantifying, and compensating innovation is the hard part to managing and developing employees and quite possibly the most important to your long-term success.

 
 

Web Design - Starting From Scratch

I recently had a fun experience—Michael Eagar and I sat down to talk about web design, coding, and templates. He asked me to show him some of the things I was talking about, and so we opened up a text editor and I started to write the code for a basic two column template from scratch. I didn’t refer to my normal templates or previous designs other than for a few hard-to-remember strings (like the text for my XHTML Doctype).

I had an amazing time and I produced amazing code.

By starting from scratch with my web design and doing my best to teach Michael some best practices, I was able to focus on the best way to do things, not just the way that everything was already done on my site and that would be a pain to change.

We cranked through the HTML and CSS, including personal instruction and most of the visual layout (sans-images) in less than two hours.

Visually Starting From Scratch

Avalonstar, SimpleBits, and others have recently toasted the CSS file for their sites and thrown all their presentation out. They did this as a kick in their own pants to get them moving and working on a new design that they will (hopefully) like better than the old one. Both Bryan and Dan talked about how liberating it was to start fresh on a new design for their site.

Mini-Paradigm Shifts

Coding from zero, or designing from a blank slate, isn’t always what’s necessary. In fact, be very, very careful not to discard all the things you’ve learned from your previous designs. However, being willing to question or let go of previous designs, methods, and ideas about web design can be liberating and trigger a mini paradigm shift—you may discover new ways of doing things that will increase your productivity and your designs’ effectiveness. So take a step back every once in a while and examine how things are done. If you really are doing things the best way, then you can be confident in the current system. If you aren’t, then you’ve found (and can begin to remedy) a potential problem or bottleneck.

 
 

The Myth of Separation of Content and Presentation

There is a somewhat recent movement in the web development world that is surrounded by quite a furor—the web standards movement. With the advent of browsers that do a half-way decent job of supporting CSS, many web developers claim that it is possible to build web sites that effectively separate presentation from content. This would allow you to write the HTML for your site once and update the appearance as much as you like without changing the code for the site.

Unfortunately, the separation of content and presentation is a myth.

For now.

The problem is that the capabilities of CSS are limited enough at the present moment that it is often hard to have enough “hooks” or HTML elements to apply CSS styles to, presenting web designers with a dilemma—either limit the range of achievable presentations or clutter page code with some non-semantic, presentational/layout HTML tags.

Web Design Heresy

There are many supporters of the web standards movement that would beg to differ and would call me a heretic. However, I am one of the strongest supporters of the web standards movement. I strive to separate my content and my presentation. I read about every method of overcoming browser deficiencies and inconsistencies that I can find. I wish that browser support for standards was better and that all designers would (eventually) throw away the use of tables for layout purposes. I would agree that separation of content and presentation has come a long, long way. I simply chose to present a controversial point of view in order to prove a point—there are times when it is impossible, or unreasonably difficult, to achieve certain presentations without more CSS “hooks.”

Extend the Power of CSS

Our pie-in-the-sky dream is that one day, hopefully sooner rather than later, CSS will have new abilities and powers added to it and supported in browsers that will make the separation of content and presentation and the creation of killer designs easier. Rounded corners. Equal-length columns. Minimum widths. No more hacks.

That day, however, may be a ways in the future. So what do we do in the meantime?

Those who fight the web standards movement usually claim that web standards supporters are over-idealistic and don’t focus on the practical issues of every-day web design and site building. I would strongly disagree. I code within the limitations of day-to-day, deadline driven, limitation riddled web design every day. I know many others who do as well. We have found ways, in a manner similar to those who started using tables for layouts, to cope with web design problems.

The Separation of Content, Presentation, and Layout

Because certain presentations, especially when it comes to layouts, are currently impossible or unreasonably difficult to implement using semantic HTML and CSS alone, many web developers have begun to separate their layout elements from their content and presentation. This allows them to achieve design goals and still make easy changes later. There are many ways to do this, including the following:

  • Class-name-based Search and Replace

    By naming each layout-specific element carefully, developers can do global search and replaces to make changes to layouts. Obviously, this is a very cumbersome and error-prone solution, but it allows developers to achieve the necessary presentation and move on with some kind of prayer that they will be able to modify all their layout elements should change be necessary later. Also obviously, use this solution as a last resort.

  • JavaScript Insertion

    Clever JavaScript coders have written scripts that will identify certain elements and then wrap them in non-semantic layout code. Some argue that this isn’t true separation of content and presentation, but it counts—the presentation is only meshed to the content at the browser level (not in the content source file), and the JavaScript can be turned off, leaving perfectly semantic code. This is a pretty good stop-gap measure to put in place while we wait for CSS and browsers to improve.

  • Inclusion of Layout Elements

    This is the server-side version of JavaScript Insertion—files are “included” at key points in the content source. These files contain the layout and presentational, not always semantic, HTML and CSS. They can be changed later to reflect improvements in CSS and browsers.

  • CMS-based Templates

    Templates are easily the most poweful method of separating layout from content. Because the system takes care of the leg-work of changing the pages based on a certain layout, these pages will be super-easy to modify and to update with more compliant HTML and CSS later.

These methods all rely on HTML and CSS for layout purposes. We don’t need a new technology to make this possible—I would simply say that there is a third class of information that needs to be considered. We have Content, which is what the elements say. We have Presentation, which is what the elements look like. And now we need to have a more robust system for Layout, which is where the elements are.

The Persistence of Separation of Content, Presentation, and Layout

There will always be some kinds of wrapper elements in HTML—these wrappers give semantic meaning to the HTML. They define what elements belong together. These wrappers can be used for layout purposes as well. But if the relationship of wrappers to elements ever changes, then it is very beneficial to have a method for easily updating the layouts of web pages. That’s one reason CMSs have become so popular. A web standards-compliant CMS or template system is basically a must for anyone building a site with more than 3-5 pages per layout or more than 10-15 pages total.

Because the locations of elements will change (independently of their content or appearance), HTML and CSS for layouts need to be managed separately, just like content and presentation are separated. Separation of content, presentation, and layout will further improve the power and robustness of web design, making site creation and maintenance easier and freeing up precious time for other important things.