You are here

thinktime

You look like you’re lying (when you’re nervous)

Seth Godin - Mon 24th Apr 2017 18:04
This is a significant bug in our culture and a glitch in our DNA. When we're on the spot, giving a speech, or pulled over by a cop, we get nervous. We sweat, talk too fast, constrict our throat, avoid...        Seth Godin
Categories: thinktime

What does "science" mean?

Seth Godin - Sun 23rd Apr 2017 18:04
To countless teenagers who had the wrong teacher in high school, it means, "a boring collection of right answers, categorized by topic." Once we discover that some things we were taught aren't black and white any more (Pluto, DDT, infant...        Seth Godin
Categories: thinktime

The best time to study for the test

Seth Godin - Sat 22nd Apr 2017 18:04
... is before it's given. The best time to campaign is before the election. And the best time to keep a customer is before he leaves.        Seth Godin
Categories: thinktime

Focus on What You Do Best and Outsource the Rest

a list apart - Wed 19th Apr 2017 00:04

With consumer expectations growing year after year, high quality web design and development services are in top demand. If you want to be the one to deliver those high-end results, then you’ll need to focus on playing to your strengths and be comfortable entrusting everything else to others.

Like many of us, you’re probably so occupied by managing the day-to-day and maintaining the base of clients you currently have that you don’t have the time or resources to build your web design or development business out to the next level.

Why “no pain, no gain” has no place in web design

One of the greatest lessons I’ve learned from working as a project and content manager is that there are times when it just doesn’t make sense to take on a task or project that’s not a good fit.

For instance:

I’ve seen developers struggle with marketing their business when they barely have enough time to complete their own workload.

I’ve seen web designers hire on supplemental designers (such as video designers and animators), only to lose those new hires just as quickly as they got them because they couldn’t manage the payroll aspect properly.

I’ve even seen administrative assistants given the responsibility of loading content into a CMS and, on top of that, being asked to optimize it for search despite a lack of training.

While I’ve seen this problem crop up with management of medium and large-sized businesses, I think it’s much more prevalent with small business owners and independent entrepreneurs. When you think about how much of your life (personally and professionally) is wrapped up in your business, it seems to make sense to think that by consolidating tasks, cutting corners, or just taking it all on yourself, you’ll save money and time.

Here’s the problem with that sort of thinking: it’s a dangerous and highly inefficient way to conduct business when you work in web design. No matter the size of our business, we rely on proven processes and techniques to ensure that what we create is always of the highest quality. Let’s face it, we are specialists, and diluting our offering by trying to do everything isn’t fair to our clients or ourselves.

My suggestion? Let more qualified people or tools tackle the “stuff” that forces you to slow down, lose productivity, and create something less than what your clients deserve. Sure, it’s scary to think about how much it will cost to outsource your accounting, your SEO, or anything else that isn’t in your wheelhouse. But think about how much momentum and overall quality of work you lose whenever you let that fear take over. I say: focus on what you do best, outsource the rest, and be happily surprised when you see how much your business soars as a result.

Follow your strengths

In a recent interview about the cost of doing business, Jeremy Goldman of the Firebrand Group argued that in order for business owners (or any entrepreneurs really) to succeed, they must be willing to accept when they’re not great at something.

Once you accept that you’re a bad fit for some tasks, you leave yourself more time to pursue the tasks you’re good at (or want to get better at). Outsourcing may result in additional costs upfront, but if you’re handing those tasks over to someone or something that can handle them more efficiently, I’d argue that you’ll save money in the long run. First, because the outsourced party will spend less time completing a task than it would have taken you. And second, because the investment frees you up to succeed at what you do, which, in turn, is where the real revenue-generating opportunities are.

The key to embracing this is through understanding your operations thoroughly, so you know what can be streamlined or outsourced. Start with an assessment of where your business currently is and where you want it to go. This will tell you exactly how you need to scale, and direct you toward the right forms of outsourcing and assistance.

Before you do anything else, assess your current business model.

  • Outline your entire process, starting with customer acquisition and ending with the close of each project. Identify areas that can be consolidated, broken up, or removed altogether.
  • Conduct a review of last year’s work. Identify trends that resulted in positive outcomes. For instance, did a certain workflow always lead to a good profit margin? Or perhaps you found that certain types of clients or projects always led to positive results for you (profit wise) and for your client (conversion wise)? If you don’t have any data, you can seek out previous customers’ opinions to identify what worked and what did not.
  • Review your current pricing structure (if you have one). Determine if there are any particular areas of your operation that cost more money, or bring in less profit, than they should. Establish your ideal pipeline today. Figure out how many projects you can simultaneously work on, as well as how long each turnaround should be.

Then, answer the following questions regarding where you expect your business to be in five years:

  • Will you offer the same services? More? Fewer? Different?
  • Will you specialize in services for a specific industry?
  • What will your role in the company be?
  • How large do you expect your client base to be?
  • How many employees would you like to have?
  • How much will your services be worth?

Finally, make a list of what is needed to take you from where you are today to where you want to be in five years. If you’re unsure of what exactly you need, or if you want to make the process easier on yourself, keep reading.

Tools that allow you to focus on what you do best

Want to be more efficient? First things first then: take a closer look at the tasks that fall outside your wheelhouse. These are the ones that distract from your primary goal and that consume too much of your valuable time. By saying “no” to those tasks and finding ways to offload them to someone else, you’ll find that the costs associated with them end up being negligible after a while.

The following recommendations are some of the more affordable, practical, and commonly outsourced and automated areas of web design I’ve been privy to. I’ve also included a number of tools you can use for each that will grow as your business does.

Freelancers

There’s no doubt that technology plays a big part in the scaling of a business. That being said, most automation still requires human supervision and maintenance. While you may not be ready to hire full-time staff at the moment (or even in the near future), you’ll want to start considering what team members you’ll need in order to reach your goals.

One of the best ways to scale your team is to employ freelance or contract workers. This enables you to:

  • Pay only for the work you need.
  • Offload some of your work for an affordable rate.
  • Test out new team members without the commitment of hiring full-time.
  • Expand your service offerings to clients on an as-needed basis.
Recommended tools:
  • Freelance job sites like Freelancer.com, Upwork, Toptal, and Guru are always a good place to start. They cost a bit of money to use (in addition to freelancer costs), but I’m a fan of them since they offer a relatively low-risk way to test out new talent without the serious commitment of hiring.
  • You’re most likely already familiar with Envato for its theme and plugin Market as well as for its Tuts+ tutorials, but did you know they also have a freelance hiring Studio?
  • Twitter and LinkedIn have also proven to be good platforms for finding freelance talent (especially if you have a solid follower base).
Recruiters

This isn’t one of the more popular avenues I’ve seen web design companies pursue in terms of outsourcing, but I still think it’s one worth mentioning. If you think about it, there are a number of items competing for your attention on a regular basis:

  • Your daily workload.
  • Clients and prospects reaching out with questions and comments. Everything related to your employees or contractors (HR, productivity, process improvement, etc.).
  • Finance management.
  • Marketing your business and services.
  • And more

So, when do you find time to turn your attention away from the “right here, right now” stuff and look toward finding new clients so you can expand your business and make more money? If your answer is “the weekend,” then something’s wrong. Every time you add more hours to your work week, you lose money and overall efficiency.

This is where recruiters come in handy. You find someone that’s reliable, that you trust, and then you outsource the task of finding more work to them. These experts are incredibly valuable business partners who know how to sniff out those right-fit clients without breaking a sweat, while leaving you to focus on your real work.

Recommended tools:
  • I’d suggest you start by signing with a creative staffing agency like Vitamin T. You’ll have the flexibility of searching for and applying to work with clients, or you can work directly with one of their representatives.
  • SuperBooked aren’t recruiters, per se, but they instead help you leverage the power of your personal network to help you find clients more easily.
  • Want something more comprehensive where you have access to training, career coaching, and someone who takes care of your paperwork? Hired would be a great solution in that case!
CRM software

Word of mouth is a great way to get more business—especially if you have a niche or specialty. But referrals will only get you so far. You’ll eventually need to actively market your brand to prospective customers. With most of your time dedicated to the actual work that makes you money, how can you make time for cultivating relationships with potential clients?

At some point, you’ll be able to hire a marketing team to handle all these matters. In the meantime, you’ll need customer relationship management (CRM) software to tide you over. These tools typically offer a variety of marketing and sales functions, including:

  • Lead collection and management.
  • Sales opportunity tracking.
  • Revenue pipeline predictions and planning.
  • Contact reminders.
  • Email templates.

Eventually, you’ll need to become more active on social media and invest in paid marketing opportunities. For now, though, get yourself a tool that will help you build relationships with prospects and customers.

Recommended tools:
  • Insightly is a fairly easy-to-use CRM platform, as is ZohoCRM (see note about that below). Both of these also integrate with the Ninja Forms plugin, which makes syncing up WordPress website forms with your CRM easier.
  • If you want a simpler solution that focuses more on collecting leads from newsletters or blog signups, I’d suggest either Constant Contact or MailChimp.
Memberships

As a web designer or developer, you know that working with a reliable content management system can do wonders for your workflow. Then you get into a platform like WordPress, Squarespace, Drupal, or Perch Runway, and you recognize it’s the extensibility of these platforms that truly make them such valuable tools.

Using a CMS out of the box is a good start, but it’s not enough. Your business toolbox should include the most commonly used CMS tools, such as design templates as well as extensions. They were created to help users—novice, intermediate, and advanced—more easily and quickly build websites.

If you’re reading this, then you’re aware of this already. What you might not be doing, however, is taking advantage of the plethora of memberships available. By signing up for one of these, you get instant access to a wide range of high-performance tools that help you build better websites, and in less time.

Recommended tools:
  • Considering that 27.3 percent of the world’s websites run on WordPress, you can start there. Some of the more popular WordPress memberships are offered by Elegant Themes, StudioPress, and WooThemes.
  • WPMU DEV is also a good one to consider if you need high-performance plugins.
  • I’d also suggest you look into CodeCanyon, if you haven’t already. While they’re not necessarily a membership site, having so many high-quality plugins in one place is an attractive and convenient option.
Managed hosting services

As a web developer, you may not be too excited when clients ask if you offer ongoing management or maintenance for their website. Yet, you might feel a little guilty in not offering these services, since you know there’s a good likelihood your clients won’t know about adding security, optimizing speed, making backups, or keeping the core platform and tools up to date.

If you’re not comfortable with ongoing management of your client’s website, you can still offer it as an upgrade; only, you’ll hire an expert to manage it for you. Managed hosting providers do just that. This is a great way to upsell your clients and make a decent markup without increasing your workload.

If this is something you’d rather not get involved with just now, you can always work with a low-maintenance CMS like Squarespace that doesn’t require much in the way of ongoing management. Remember: this is your business. It’s up to you how you want to run it and what sort of services you want to offer.

Whatever you choose, be sure you’re working with the best provider for your needs (especially if you generally work in one CMS). They should offer a variety of packages based on business type and size, too, as this will enable you to scale your services as your needs grow.

Recommended tools:
  • For WordPress, I’d suggest you take a look at Pagely or WPEngine.
  • SiteGround offers both WordPress and Joomla managed hosting.
  • AHosting and RoseHosting both have some of the more robust CMS managed hosting offerings I’ve seen, so give them a try if you want to provide more coverage options.
Project management software

Although it may not seem like something you need right now, a workflow and collaboration platform should be part of your business from the very start. As a business owner, you need to have a centralized hub where you can:

  • Store documentation.
  • Generate and save templates to streamline communication with clients, ensure consistency in project output and deliverables, and provide clear guidance to team members.
  • Manage project workflows through a series of checklists.
  • Gather files.
  • Communicate with clients.
  • Collaborate with team members.
  • Track time spent on projects.

If your business is design-focused and QA-heavy, it’s ideal that you find a project management tool that includes wireframing and/or prototyping functionality.

Recommended tools:
  • Basecamp is one of the more popular project management tools I’ve used, but its cost makes it a better choice for agencies.
  • Asana is my personal favorite—something I use in my everyday work as well as personal scheduling. I’d suggest using this one for creating checklists, communicating with team members, and managing timelines.
  • InVision is a good pick, especially because it includes prototyping, wireframing, and collaboration, which is essential to web design work.
Accounting software

How much time do you currently spend drawing up contracts, writing invoices, tracking payments, and managing your taxes? As your business grows, the amount of work you do to manage these administrative areas will increase, too. Rather than spend your time focusing on the numbers, use accounting software to take most of the guesswork out of it (especially until you have a need for a full-time accountant).

In addition, you can employ certain techniques that will help you get the tasks out of your head and into a systematized process and actionable checklist. I’d also suggest you take this assessment to determine whether you should even be handling any accounting tasks for your business in the first place. This may just be one of those responsibilities that make more sense in the hands of someone else.

Recommended tools:
  • I’m a big fan of QuickBooks, not only because of how easy it is to use, but because it integrates with so many different programs and decreases the overall amount of work I need to do.
  • Zoho is another great tool to check out. I like this one because you can manage your finances and invoices, and also use it as a customer relationship management tool.
  • For anyone just starting out, I’d suggest giving Wave a try. It’s free to use and is a good platform to help you ease into finance management.
Summary

At the end of the day, you need to focus on what you do best. Time spent doing anything else is an unnecessary drain on you and your business.

If you’re looking to grow your business, it’s time to consider how you can most efficiently scale it. Review what you currently have. Then look to these tools to bring more order, control, and consistency to your operations.

Categories: thinktime

How thin is your ice?

Seth Godin - Thu 13th Apr 2017 18:04
When something goes wrong, how do you respond? When you own assets, when your position feels secure, when you're playing the long game, a bump in the road is just that. "Well, that was interesting." You can learn from it,...        Seth Godin
Categories: thinktime

Cursing gravity

Seth Godin - Wed 12th Apr 2017 18:04
You can disdain gravity all you want, call out its unfairness, seek to have it banned. But that's not going to help you build an airplane.        Seth Godin
Categories: thinktime

With the sound off or on?

Seth Godin - Tue 11th Apr 2017 18:04
If you watch a well-directed film with the sound turned off, you'll get a lot out of it. On the other hand, it takes practice to read a screenplay and truly understand it. It's worth remembering that we lived in...        Seth Godin
Categories: thinktime

Guardrails

Seth Godin - Mon 10th Apr 2017 18:04
A large, freshly-paved parking lot has no boundaries. You can drive in any direction, free to speed to your destination. But once there's more than a few cars driving, traffic stops. It's too risky, there are too many uncertainties. A...        Seth Godin
Categories: thinktime

Who cut down the last tree?

Seth Godin - Sun 09th Apr 2017 18:04
Easter Island was the home to a thriving community, thousands of people living good lives. One by one, though, the trees on this isolated island were cut down. They were cut down for fuel, or to make tools, or boats....        Seth Godin
Categories: thinktime

Like riding a bike

Seth Godin - Sat 08th Apr 2017 18:04
People talk about bike riding when they want to remind us that some things, once learned, are not forgotten. What they don't mention is how we learned. No one learns to ride a bike from a book, or even a...        Seth Godin
Categories: thinktime

Sharp knives are safer

Seth Godin - Fri 07th Apr 2017 18:04
Cooks know that a sharp knife is less likely to cause injury, because it goes where you point it. It does what you tell it to do, which means you can focus on what you want the outcome to be....        Seth Godin
Categories: thinktime

Opportunity triage

Seth Godin - Thu 06th Apr 2017 19:04
More opportunities come knocking than we know what to do with. They often come enshrouded with hassle, perceived risk and the need to overcome inertia. It's easier to just say no. And so no becomes the default, a habit, it's...        Seth Godin
Categories: thinktime

On pie

Seth Godin - Thu 06th Apr 2017 17:04
“This is all the pie I received, but that’s okay.” “I have a small piece of pie, but others have an even smaller piece, so I’m sharing mine.” “I want all the pie.” “I don’t want all the pie, just...        Seth Godin
Categories: thinktime

23 things artificially intelligent computers can do better/faster/cheaper than you can

Seth Godin - Wed 05th Apr 2017 18:04
Predict the weather Read an X-ray Play Go Correct spelling Figure out the P&L of a large company Pick a face out of a crowd Count calories Fly a jet across the country Maintain the temperature of your house Book...        Seth Godin
Categories: thinktime

Widen Out: Using Your Blog to Attract New Clients

a list apart - Wed 05th Apr 2017 00:04

Attracting future clients on autopilot—that’s the whole point of your website, right? Most freelancers accept the story that great work attracts leads, but I’m going to be straight with you: clients have no clue you exist. What usually tips the balance isn’t your portfolio—they see plenty of those.

Not many people talk about failures they had promoting their products and services. We struggle and we hide it. It’s one of the reasons I hate to read marketing “success stories” and “How to drive traffic and make money!” posts—they seem hollow and vaguely manipulative. They also invariably circle around an answer we already know: The key to attracting non-referral clients is making it easy for them to discover you.

Simple as that is, we fail for two reasons:

  • Most freelancer websites are only concerned with showing portfolio work.
  • We haven’t figured out who we want as clients, what makes them tick, or how they solve problems.

We’re focused on showing, not serving.

Serving hits the ground running—it answers a question, solves a problem, satisfies a curiosity. There’s a difference between saying you will and proving it with a real takeaway during the first impression. Portfolio-focused sites also don’t give Google much content to index and rank, lessening your chances of ever getting high in organic search results, much less on their radar.

Designers are “supposed” to do certain things to find clients. Well, I did all that, for years. And I had a pretty depressing success rate, considering how much time I put into it. Then I tried one thing that single-handedly turned around my freelance career. I started blogging with clients in mind.

Do it your way

Let me tell you about Brian Dean.

Brian Dean of Backlinko gets 130,000 monthly uniques. Want know how many articles he has on his blog—in total?

30. That’s right, 30.

Readers aren’t coming because he publishes frequently—they’re coming because he writes about what they want to know and because every piece he’s got is the best on that given subject, hands down! He keeps visitors coming back to the same posts because he’s constantly improving the material little by little to ensure it’s always the best that’s out there.

As people come across it—web professionals, curious readers, and potential clients—it’s building up his reputation and making it easier for people to find him via search and re-shared content links.

You don’t have to write regularly. Or much. And you don’t need an industry-rocking idea. With your expertise, you have what it takes to say something that other people consider valuable.

The key to success is making a target, then sticking it out for a few rounds of research + content creation + promotion to start. The more posts/articles you create, the more properties you have on the Monopoly board called Google. Having a few widely shared articles also kicks off a virtuous loop where all your subsequent articles get a jump start from your existing traffic. This approach is repeatable and scaleable.

(One quick heads-up: you can also expect your content to attract the “wrong type” of visitors, such as recruiters and people looking to hire someone for low-end, piecemeal work. It’s possible to turn these inquiries into opportunities by politely refusing their offer and asking if they know anyone who is seeking the type of work you do provide.)

Pre-planning your content

As you know, Google determines how high your page ranks for certain search terms based on factors like:

  1. Whether your page content is relevant to the search term
  2. How many other quality, relevant sites link to your page
  3. How well-made readers think your content is (i.e. how long do people spend reading your content).

Translating that, your goals are to:

  • Create content that is relevant to search terms visitors use
  • Create high quality content that invites re-links and social shares
  • Ensure that time-on-site for the specific piece of content is high.

It may feel a bit unnatural to create content around ranking well on Google, but you’re actually just creating a really valuable article that answers all possible questions a reader is most likely to have about that topic.

Know what matters to clients

Instead of randomly choosing a topic, it helps to be a bit strategic. After all, it’s a way to get discovered by the right people.

First, know—and learn how to write for—your intended audience. Almost any topic about your field would interest fellow professionals. But let’s recall, who is it you want to attract, first and foremost? Clients. So how do you find out what they’re searching for?

When I started doing this, I began by listing questions a new client typically asks, such as:

  • How much do your services cost?
  • How does your [service] process work?

To see the types of questions business owners and entrepreneurs ask most often, take a look at community sites where they hang out (Fig. 1). Good ones include:

Fig. 1: People frequently questions about web services, such as these found on the community site Quora.

Based on the questions you find, you could brainstorm three topic ideas that relate to each one, or even split larger topics into separate articles. For example, instead of writing one giant piece on how much web design services cost, write about one service in each post, such as:

  • How much does a landing page cost?
  • How much does custom website cost?

They should be written in the style of a comprehensive educational guide that teaches the visitor everything they need to know about the topic.

Example:

  • How much does logo design cost?

This article could cover:

  • The reason rates vary so much among designers
  • The different types of designers they can hire (freelancer, agency, etc.)
  • A description of the creative process for designing a logo.
Write a better article

Now that you’ve settled on a topic, it’s time to create a comprehensive leave-no-stone-unturned piece of content about it.

What’s “comprehensive”? It’s helpful to set a benchmark for yourself by researching other popular articles that have already been written about it. Use them as inspiration, then go and create an even better version. This both demonstrates your command of the topic and attracts links from relevant, high authority sites (which signals to Google that your site contains high quality content, triggering it to bump your page higher in the search results for those keywords).

A popular tool for doing this research is Ahrefs.

After you create an account, enter a topic you’re considering, then select “Traffic” in the Sorted by dropdown. (Fig. 2)

Fig. 2: The filter screen on Ahrefs helps when narrowing down search results.

Here are some of the highest trafficked articles on “web development cost.” (Fig. 3)

Fig. 3: Ahrefs search results after filters are set.

Analyze each article and write down every single point that’s covered. Your goal is to be just as good when it’s your time to address each one. You’ll then brainstorm at least five original or interesting angles they didn’t mention or tackle extensively. This “value add” is your selling point when the time comes to start promoting the piece.

Another way to dig deep is to learn more about the authors. For instance, how does their expertise differ from yours? This can help you catch things they didn’t cover. You can also pull up every article a specific author has written on a subject, such as this topic search for journalists and bloggers writing about “web development cost.” (Fig. 4)

Fig. 4: Doing research on what other writers have published can help to determine subjects to pursue. Other effective ways to juice up your content Use compelling (and/or controversial) examples

Buttress each major point in your article with compelling (and if possible, controversial) case studies and examples.

For example, here’s an excellent analysis of the controversial logo design for the London 2012 Olympics (Fig. 5). It explains why (despite the negative public reaction) the versatility and instant recognizability of the logo actually make it an example of great identity work.

Fig. 5: Analysis of the London 2012 Olympics logo design. Use visual assets with your article

Visual assets make your article easier to read by breaking up chunks of text. For images, choose ones that instantly convey the emotion or message of a major point you make (Fig. 6). For infographics, choose ones that visually illustrate and compare data or statistics you mention in the article. A good visual asset also attracts social shares.

Fig. 6: Selecting images that instantly convey the emotion behind the message supports the point you want to make. Interview someone interesting (and influential)

Seek out people who can contribute an interesting insight or experience related to your topic. Not only does this add perspective to your article, you can ask this person to share the article with their audience (which may give you a nice traffic boost).

Capture every question

Before you start writing, make a list of every single possible question someone could have about this topic. Based on your research of existing articles, also include details and angles they don’t.

For example, if you’re writing an article about logo cost, details and angles that many other articles miss are:

  • Reasons why corporate logo designs cost so much
  • The psychology behind how logos affect brand perception
  • Conversion stats before and after logo redesigns
  • Why negative public reactions don’t necessarily mean the logo design is bad.
Add a call to action

Avoid losing potential clients who would have contacted you later—if they hadn’t forgotten. Add something encouraging them to act right away by making it a simple click, such as a call to action (CTA) banner in every article. (Fig. 7)

Fig. 7: Use prompts that encourage users to take action or engage with additional content. Promoting your article the right way

Promoting your content may feel uncomfortable, but it’s important to reframe that in your mind. Instead of “Marketing your content,” you’re “Helping people by educating and inspiring them with your well-researched, well-written information.”

Clients who don’t know about your site won’t magically enter your URL into their address bar—they have to discover you through some other source (other websites, search engines, social media). That’s why promotion and outreach are so important, and why it pays off to ask other sites to link to your content.

To kick off the first wave of traffic, it helps to win a few links and social shares. From there, the new people who discover your post may also link to or share it (which in turn boosts your article’s ranking on Google).

Let’s look at a few effective ways you can promote your content.

Offer your actual article as a service

This is an old timer technique that still works amazingly well—one my very good friend and coach Brian Harris wrote about on his blog. I like to alter the technique just slightly, but here’s what to do:

Take the URL of one of the articles you found in the previous section (when you were choosing a topic to write about). Try to pick the one with the most shares.

Go to Buzzsumo and enter the URL to the article (use the 14-day free trial they offer to do this step).

In my case, I chose this SEO techniques article because I’m looking for clients who might be interested in my SEO consulting. (Fig. 8)

Fig. 8: Research a URL on Buzzsumo to help generate article ideas.

Next, click the “View Shares” button to see a list of everyone who shared the post on Twitter. You can then click on the “Followers” filter at the top left to sort by users who have a sizable audience (i.e. enough money to pay you for a service). (Fig. 9)

Fig. 9: Buzzsumo brings visibility to social sharing.

Now you have a list of people who have already shown an interest in the topic, you could reach out to them individually and see if they’d be interested in sharing yours, as well. The following example highlights a number of points.

Subject: Re: Brian’s article you shared
Body Text:

Hey AJ,

I’ve been following you since last January when I saw you share Brian Dean’s article on SEO techniques. Great article, I truly enjoyed it!

I couldn’t help but notice that it did not include how to convert the traffic you get from these techniques into actual leads. I’ve done SEO and lead nurturing work for 9+ years .

I just recently published a more comprehensive post on how to do everything Brian talks about as well as lead nurture and convert the traffic into actual leads, so I wanted to run this by you since you’re interested in the topic.

I took a look at Wordtastic <insert their company name here>—love the app. I checked and it looks like you get a decent amount of traffic.

I came up with three ways you can improve your calls to action to get more conversions every single day (based on Brian’s advice compiled with my article above)

Here is the link to the recommendations, a potential campaign, and some projected results once you implement this: [link to Google doc you put together that will blow their socks off]

Would love to help you guys implement some of these strategies.

-Dmitry

(I’ve collected examples that seem to work really well for people; you can check out those posts here: cold email templates and business email templates.)

Join some groups where your potential clients hang out

I listed these community groups earlier, but it’s worth mentioning them twice:

Don’t just join—leave meaningful comments. If you do that, most groups will start to see you as a valued contributor and won’t bat an eye if you to post something that mentions your own content once in a while, like this example from a private entrepreneur group (Fig. 10)

Fig. 10: Be courteous and tactful when contributing to groups.

When you do share, be sure to mention a few points you’ve covered that would be highly relevant and valuable to that community.

For example, if you write an article about web design, a business community may be most interested in how to evaluate web designers in order to find one that’s reliable. Conversely, a marketing community may be most interested in how to design funnels that convert more visitors into subscribers and customers.

You can also ask a question related to your article topic to kickstart a discussion, then offer to answer any questions a group member may have.

Share your links with family and friends

The easiest, non-intrusive way to do this is by posting it on your Facebook feed. Add a description highlighting a few points a general audience would find interesting and worth the effort of clicks and likes.

Add interesting visuals to illustrate your points

Add relevant illustrations and pictures throughout your article to break up the text and keep your visitors engaged. Bonus points: use relevant visuals from your own portfolio so it does double duty prettifying your article and showcasing your skills.

Improve your search ranking with some SEO basics

Focus on one search keyword or phrase you want your article to rank for, then use different variations of it throughout your article, especially in your article headline and section headings.

Make sure your pages and articles load fast; you might consider caching your pages with something like CloudFlare (they offer a free plan) to speed up load time. (CloudFlare shows cached versions of your files and images so visitors don’t have to wait for them to load real-time from your servers.)

Compile a list of relevant sites to ask for links

Remember how you looked up the most popular articles on Topic X? If you find out which sites link to those articles, why not ask them to link to your (much improved) version, too?!

Use a backlink checker tool such as Open Site Explorer or Ahrefs. (Fig. 11)

Fig. 11: Use a backlink checker tool to find out who links to articles related to your topic.

Go to each site and find the names of either the site owner or, if it’s a company, the person in charge of marketing.

To find their email address, enter their site domain into AnyMailFinder or Email Hunter. These sites will tell you the most likely email format (for example: firstname@company.com). Based on the most common email format the site or company uses, you can “smart guess” the likely email of the person you wish to contact.

You can send them a personalized version of this template1 to ask if they may be interested in linking to your article:

Hey [Name],

I was searching for some articles about [Your topic] today and I came across yours: [URL]

I noticed that you link to [Article Title] - I just published something similar that [2 major points why it’s better]: [url of your article]

May be worth a mention on your page.

Either way, keep up the awesome work!

Remember that infographic I mentioned earlier, the one you could create to accompany your article? You can also ask some of the other sites you found in the Backlinks tab to include it in one of their existing or future articles and credit you (earning you a link this way).

Here’s the template link Luke from Pest Pro App used:

Hey [First Name],

I really liked your article on [relevant topic to your article]. Great stuff!

You actually inspired me to take this a step farther and create something even deeper.

I thought I’d reach out to you because I just published an infographic on [topic] and I thought it might interest you. It covers [list of major points, stats or facts.] It’s all based on research, and I have the sources to back it up.

Love to see if you may find it a good addition to your article.

Promote it in relevant Facebook groups

If you develop websites (for example), find Facebook groups that discuss web development, have 500+ members, and show signs of recent activity. For a few weeks, post meaningful comments every once in a while and start interesting discussions to provide value to the community. If the group guidelines allow it—and if the timing is right—share your own article now and then, but make sure you ask a question in your post to spark a discussion. This will help the post stay on top of the group feed and members’ newsfeeds to bring you more traffic.

Content creates visibility outside your network

It’s becoming tougher and tougher to stand out these days—there’s a lot of noise online. For a lot of freelancers and part time contractors, DIY service platforms and online hiring marketplaces have become the status quo for finding gigs. The quality of clients drawn to these hubs is very mixed, unfortunately, and most come because they want to pay as little as possible for the work. It is also very challenging for freelancers who don’t already have a presence there to start gaining leads right away.

Freelancers relying on word of mouth referrals also run into pitfalls. Nurturing those opportunities can be just as time intensive, not to mention leave you with limited control over when they actually convert into meaningful business.

These conditions should prompt every freelancer to try something outside the box, to find uncrowded spaces for meeting and gaining clients. Strategically creating content can consistently attract the right kind of client. When a prospective client reads your article, she’ll learn something immediately useful from you and see you as a knowledgeable pro, which creates a solid start for a client-freelancer relationship.

It’s a way for you to have something in common, something to prompt a conversation. Imagine yourself at a conference talking to a person you just met—would you rather discuss an article you wrote or dive straight into discussing your hourly rate? Of course you’ll want to show off your know-how before you talk about prices!

Writing content to attract customers is a perfect strategy for this—it engages people and generates higher visibility for your work, both within and outside your network.

Ok, I’ll hand this off to you now; it’s your turn to do the research and write one article in the next three weeks. That’s my challenge to you. One article in the next three weeks on your site. Are you up for the challenge?

Post in the comments which topic you would like to write and I’ll comment back with my feedback and thoughts.

Ready? Get set. Go.

Footnotes
Categories: thinktime

Practical CSS Grid: Adding Grid to an Existing Design

a list apart - Fri 24th Mar 2017 04:03

Understanding and using CSS Grid is easier than you might expect. The day Grid support shipped in Firefox 52, I decided on the spur of the moment to convert the basic layout of my personal site to use Grid. And it was a fairly simple process—five minutes to write the grid styles, then 15-20 spent troubleshooting.

Grid allows us to literally define column and row grid lines, and then attach elements to those lines in any order we choose. That may sound like tables, but Grid is so much more than tables ever dreamed.  It means more responsive layouts, far more accessible documents, and far cleaner markup than even floats and positioning ever afforded us.

It’s been decades since CSS first emerged, but it’s never contained a system anything like this. And Grid is already supported in both Chrome and Firefox, with Safari coming soon (its Technology Preview releases support Grid as of this writing). A new era in digital design is dawning right now.

The way things used to be

Before we get to the Grid, allow me to take just a moment to explain the markup structure of meyerweb’s main pages, and the positioning-and-margins approach I’ve been using for, um, about 12 years now. Here’s how the markup is structured:

<body> <div id="sitemast">…</div> <div id="search">…</div> <div id="main">…</div> <div id="extra">…</div> <div id="navigate">…</div> <div id="footer">…</div> </body>


Some of those IDs are idiosyncratic holdovers from my early-2000s view of layout and naming conventions. #extra, for example, is what most of us would call #sidebar. #sitemast stands in for #masthead. And #footer is from the days before the actual <footer> element

The divs (which should probably be sections these days, but never mind that now) are arranged the way they are so that if the CSS fails to load, or a speaking browser is used to browse the site, then the site’s masthead is first, the ability to search the site is second, and the main content of the page is third. After that, extra materials, site navigation, and the footer follow.

All of these were stitched together into a layout by absolutely positioning the navigate and search divs. The sitemast was set to be 192px tall, and both the navigate and search divs were given top: 192px; to show up just below it. In order to leave space for them to land, top margins were applied to the main and extra divs. (Fig. 1)

Fig. 1: meyerweb’s home page (foreshortened)  Constructing the grid

So that’s how things have been laid out since the middle of 2005, more or less. I fiddled with a flexbox layout at one point as an experiment, but never shipped it, because it felt clumsy to be using a one-dimensional layout tool to manage a two-dimensional layout. I probably should have converted the navigation bar to flexbox, but I got distracted by something else and never returned to the effort.

Besides, Grid was coming. In the run-up to Grid support being released to the public, I was focused on learning and teaching Grid, creating test cases, and using it to build figures for publication. And then, March 7th, 2017, it shipped to the public in Firefox 52. I tweeted and posted an article and demo I’d put together the night before, and sat back in wonderment that the day had finally come to pass. After 20+ years of CSS, finally, a real layout system, a set of properties and values designed from the outset for that purpose.

And then I decided, more or less in that moment, to convert my personal site to use Grid for its main-level layout. It took me less than five minutes to come up with the following:

body { display: grid; grid-template-rows: 192px min-content min-content 1fr; grid-template-columns: 1fr 20em; } #sitemast { grid-row: 1; grid-column: 1 / span 2; } #search { grid-row: 2; grid-column: 2; } #main { grid-row: 3; grid-column: 1; } #extra { grid-row: 3; grid-column: 2; } #navigate { grid-row: 2; grid-column: 1; } #footer { grid-row: 4; grid-column: 1; }

That’s not all I had to do, but it’s the core. Let me break it down for you.

body { display: grid; grid-template-rows: 192px min-content min-content 1fr; grid-template-columns: 1fr 20em; }

This part of the CSS sets the body element to be a grid container and sets up the grid lines. When you make an element a grid container, all of its children become grid items. (If you’ve worked with flexbox, then this pattern will be familiar to you.) So with that display: grid, I turned all of the child divs into grid items.

Next come the rows in the grid. The values in grid-template-rows actually define separation distances between grid lines (the same is true of grid-template-columns, which we’ll get to in a moment). So the value 192px min-content min-content 1fr; means: “Go 192 pixels down from the top of the grid container and drop a grid line. Then drop another two such that they provide enough vertical space for the contents of the rows they define. Finally, leave one fr (fraction) of distance between the third grid line and the bottom of the grid container.” (Fig. 2)

Fig. 2: Defining the rows 

The value min-content is pretty cool. It means just what it says: “Take up the minimum amount of space needed to fit the contents.” So for the second row, the one that will contain the navigation bar and search field, it will be as tall as the taller of the two, and no taller.

Ditto for the third row, the one containing the main and extra divs. On the homepage, the main div will be taller. On subpages, that might not always be the case. In all circumstances, the row containing those two divs will always be tall enough to contain them both.

With the rows figured out, next come the columns. I decided to keep things simple and just set up two. If you look at meyerweb’s home page, it appears to have three columns, but that’s only true of blog posts—a substantial but minority part of the site—and the left-side “column” is more of a sidebar inside the main column.

In the original design, the sidebar (#extra) is 18em wide, with some extra space to keep it away from the main column. But the column also has to fit the search box, which is a bit wider. After some experimentation, I settled on a width of 20em. The rest was left to flex as 1fr. (Fig. 3)

Fig. 3: Defining the columns 

Now that I’ve used the fr unit twice, a few words of explanation are in order. fr stands for “fraction,” and means “a fraction of the available unconstrained space.” In this grid, there are two columns. One of them has an explicit width of 20em, which is thus constrained—there’s no room for flexibility. The rest of the column space is unconstrained—as the width of the grid container changes (say, due to changes of the browser window) the unconstrained space will change to be the container’s width minus the 20em of constrained space.

Imagine for a moment I’d decided to split the grid into four columns, with the rightmost being 20em wide and the rest being equal, flexible widths. That would have looked like:

grid-template-columns: 1fr 1fr 1fr 20em;

Alternatively, I could have written it as:

grid-template-columns: repeat(3, 1fr) 20em;

In any event, that would have caused the unconstrained space to be divided equally among the first three columns. If the grid container were 65em wide, the last column would be 20em wide, and the other three 15em each. (3 x 15 = 45; 45 + 20 = 65.) Shrink the grid container down 50em wide, and the first three columns would shrink to 10em each.

In my case, I wanted that first column to take all of the space not given to the constrained last column, so it got 1fr. The final result is shown in Fig. 4.

Fig. 4: The complete grid  Placing the items

With the grid lines set up, now it’s just a matter of attaching grid items to the grid lines. This can be done automatically, using the grid-flow algorithm, but this is a case where I want to place each item in a specific place. That leads to the following:

#sitemast { grid-row: 1; grid-column: 1 / span 2; } #search { grid-row: 2; grid-column: 2; } #main { grid-row: 3; grid-column: 1; } #extra { grid-row: 3; grid-column: 2; } #navigate { grid-row: 2; grid-column: 1; } #footer { grid-row: 4; grid-column: 1; }

For each of the six divs, I simply said, “Pin your top edge to this row line, and your left edge to this column line.” I used line numbers because that’s all I gave myself—it’s possible to assign names to grid lines, but I didn’t. (But stay tuned for an example of this, later in the article!)

So, to pick one example, I set up the #main portion to start on the third row line and the first column line. That means it will, by default, fill out the space from the first to second column lines, and from the third to fourth row lines.

Almost all of the divs were set up in this way. The exception in this case is the #sitemast. It starts at the first column and row lines, but since I wanted it to go all the way across the grid, I set its column value to 1 / span 2. That means “Start at column line 1, and span across two columns.” I could have gotten the same result with the value 1 / 3, which means “Go from column line 1 to column line 3.” (Fig. 5)

Fig. 5: The grid items’ placement 

But realize: that’s just a diagram, not the actual layout situation. Not yet, at any rate.
Something I want to be clear about here is that while you can explicitly assign all of your grid items to specific rows and columns, you don’t have to do so. Grid has a flow model that allows grid items to be automatically assigned to the next open grid cell, depending on the flow direction. In my case, I could have gotten away with literally just these rules:

#sitemast { grid-column: 1 / span 2; } #navigate { grid-row: 2; grid-column: 1; }

That would have ensured the masthead was two columns wide, and that the navigation div was placed in the exact grid cell I wanted. That would have left the second row’s first cell filled by navigation, and the rest of the grid cells open.

Given that, the unassigned items would be flowed into the grid in source order. The masthead (#sitemast) would be placed in the first two-column row it could find, which turns out to be the first row. The search div would flow into the next open cell, which is row 2, column 2, because row 2, column 1 is already occupied by the navigation div. After that, the main div would flow into the first open cell: row 3, column 1. Extra would go into the next cell: row 3, column 2. And then the footer would be placed into row 4, column 1.

The end result would be exactly what’s shown in Fig. 5. The difference would be that if I had a special page where another div was added, it could throw off the whole layout, depending on where it appeared in the HTML. By explicitly assigning my layout pieces to the places I want them, I prevent a stray element from upending everything.

Given the styles I wrote, if a child element of the body is added to a page, it will become a grid item. If I don’t give it an explicit place in the grid, it will end up flowed into the first available grid cell. Since the lower-right cell (row 4, column 2) is unoccupied, that’s where the extra element would be placed…assuming it isn’t set to span two columns. In that case, it would end up at the bottom of the grid, in an automatically-created fifth row.

Accommodating the past

It’s easy enough to set up a grid, but when you drop grid items into it, they bring all of their existing styles in with them. That might not be a big deal in some cases, but in mine, it meant all of the margins and padding I’d used to keep the layout pieces apart from each other were now messing with the placement of the grid items. You can see this in Fig. 6, created using a local copy of the site.

Fig. 6: Grid + legacy = yoinks 

Ouch. It was time to override the pieces of the legacy layout styles I didn’t need in Grid, but did need to keep for browsers that don’t yet understand Grid.

So I wrapped the whole bit in an @supports block. Since I wanted to constrain the grid layout to wider displays, I put an @media block just inside @supports, and then proceeded to zero out or otherwise change the various margins and padding I didn’t need in a Grid context. Here’s how it turned out:

@supports (display: grid) { @media (min-width: 60.001em) { body { display: grid; grid-template-rows: 192px min-content min-content 1fr; grid-template-columns: 1fr 20em; } #sitemast { grid-row: 1; grid-column: 1 / span 2; } #search { grid-row: 2; grid-column: 2; position: static; padding: 0.25em 0 1em; } #main { grid-row: 3; grid-column: 1; margin-right: 0; margin-top: 1.25em; padding-top: 0; } .hpg #main { margin-top: 0; padding-top: 0; } #extra { grid-row: 3; grid-column: 2; position: static; top: 0; margin-top: 0; padding-top: 0.5em; margin-left: auto; } #navigate { grid-row: 2; grid-column: 1; position: static; margin-top: 1px; padding-bottom: 0; } #footer { grid-row: 4; grid-column: 1; margin-right: 0; } } }

I probably could refactor that to be more efficient, but for now, I’m going to leave it as-is. It makes clear what had to be done to which grid item—which ones needed to override position so their absolute positioning didn’t interact weirdly with the grid, which margins and padding needed to be changed, and so on. Let’s look at the end result (Fig. 7).

Fig. 7: Grid + @supports = yowza! 

You might be forgiven for thinking that this was much ado about not very much. Why go to all that effort just to make it look the same? The real power here, in what is admittedly a simple case, is how I no longer have to worry about overlap. The footer will always be below the main and extra divs, no matter which is taller. When I was using positioning, that was never guaranteed.

Similarly, the navigation and search will always maintain a shared height, making sure neither will overlap with the content below them—and thanks to min-content, I don’t have to guess at how tall they might get. Grid just handles all that for me.

And remember, the layout still functions in old browsers just as it always did, using positioning. I didn’t “break” the site for browsers that don’t understand Grid. The more capable Grid layout is there, waiting for browsers like Chrome and Firefox that understand it.

If you want to see all this live for yourself, head over to meyerweb.com and inspect elements in Firefox 52 or later. There you’ll see a little waffle icon next to the display: grid declaration on the body element. Click it, and Firefox will draw the grid lines on the page for you to scrutinize. (You can also enable a more powerful layout tool in Nightly builds of Firefox; see my post “ Grid Inspection ” for details.)

Naming conventions

I mentioned earlier that it’s possible to name grid lines. I didn’t do it for my own styles because the grid I defined was so simple, but for more complicated grids, naming the lines might be useful.

Using the stripped-down version of the styles, the one without all the legacy overrides, naming the grid lines would look something like this:

body { display: grid; grid-template-rows: [masthead] 192px [navsearch] min-content [mainextra] min-content [footer] 1fr; grid-template-columns: [left] 1fr [middle] 20em [right]; }

Each of those square-bracketed words is assigned as a name to the corresponding grid line. (Fig. 8)

Fig. 8: Named grid lines 

Once those names are defined, you can refer to them in your grid-row and grid-column properties. For example:

#sitemast { grid-row: masthead; grid-column: left / span right; } #search { grid-row: navsearch; grid-column: middle; } #main { grid-row: mainextra; grid-column: left; } #extra { grid-row: mainextra; grid-column: middle; } #navigate { grid-row: navsearch; grid-column: left; } #footer { grid-row: footer; grid-column: left; }

Much like class names, you can assign multiple names to a grid line by supplying a space-separated list. Try this one for size:

grid-template-columns: [start left] 1fr [middle sidebar] 20em [right end];

You can then refer to any one of those names in your grid-column declaration. There’s no defined limit on the number of names, but remember what comes with great power.

In case you were wondering, you can mix grid line names and numbers, so something like grid-row: navsearch; grid-column: 2;} is completely fine. You can use any name the browser can parse, which means you can specify just about anything Unicode and your CSS file’s character encoding will allow.

Grid and Flexbox

A question you may have is: now that we have Grid, do I throw away Flexbox? Absolutely not! The two can and do work very well together.

Consider the navigation bar of my design. For years, it’s been laid out using an unordered list and float: left for the list items. Simplified a bit, the CSS and markup looks like this:

#navlinks { float: left; width: 100%; } #navlinks li { float: left; list-style: none; margin-left: 1px; } <div id="navigate"> <ul id="navlinks"> <li><a href="…">Archives</a></li> <li><a href="…">CSS</a></li> <li><a href="…">Toolbox</a></li> <li><a href="…">Writing</a></li> <li>><a href="…">Speaking</a></li> <li>>><a href="…">Leftovers</a></li> </ul> </div>

Why not display: inline-block instead of float: left? Because that literally wasn’t an option when I wrote the CSS for the navlinks, and I never got around to updating it. (You may be sensing a theme here.)

Now I have two much better options for arranging those links: Grid and Flexbox. I could define a grid there, which would go something like this:

#navlinks { display: grid; grid-template-columns: repeat(6,min-content); } #navlinks li { list-style: none; margin-left: 1px; }

That would essentially get the same result, only in a grid, which is far more robust than either floats or inline blocks.

On the other hand, I’d be using Grid, which is a two-dimensional layout system, for a one-dimensional piece of layout. It’s certainly possible to do this, but it feels a little like overkill, and it’s not really what Grid was designed to do. Flexbox, on the other hand, is designed for exactly these kinds of situations.

So I might write the following instead:

#navlinks { display: flex; justify-content: flex-start; flex-wrap: wrap; } #navlinks li { list-style: none; margin-left: 1px; }

Again, that would be basically the same result, but in a more robust fashion. In addition to keeping the links all lined up, the wrap value will let the links go to a second line if need be. And because the flexbox sits inside a grid item that’s part of a grid row whose height is min-content, any increase in height (due to line wrapping or whatever) will cause the entire row to become taller. That means the rows after it will move down to accommodate it.

And now that I look at the markup again, I’ve realized I can simplify that markup without needing to touch any grid styles. Instead of wrapping a list with a div, I can drop the div and reassign its ID to the list. So the markup can become:

<ul id="navigate"> <li><a href="…">Archives</a></li> <li><a href="…">CSS</a></li> <li><a href="…">Toolbox</a></li> <li><a href="…">Writing</a></li> <li><a href="…">Speaking</a></li> <li><a href="…">Leftovers</a></li> </ul>

After adjusting the selectors in my CSS from #navlinks to #navigate, the resulting layout will be exactly as it was before. The ul will become a grid item and a flex container. That is a thing you can do.

The downside in my case would be dealing with any interactions between that change and my legacy layout, but it’s not a huge issue to solve. It’s just a matter of doing it.

Letdowns

So what are the down sides?  Not many, but they do exist.

Most fundamentally, there’s no way to define an overall page grid that has all items relate to it. In other words, if I say:

body { display: grid; grid-template-columns: repeat(16, 1fr); }

…then that sets up a 16-column flexible grid for the body element only, and its child elements are the only ones that can become grid items. I can’t reach down into the document tree and assign elements to be placed on that body grid. That’s the main reason I didn’t try to put the little sidebar bits on my blog posts into a shared grid: I literally can’t, at this point, unless I resort to ugly CSS or HTML hackery.

The capability to do such things is known as subgrid, and it hasn’t been implemented by any browsers as yet. There are questions as to exactly how it should or shouldn’t work, so there’s still plenty of hope that everything will work out in the end. It’s a disappointment that we don’t have it yet, and that lack restricts the full range of grid’s power, but hopefully only for a short while.

In the meantime, I’m sure people will come up with ways to work around this limitation. A basic workaround in this case: I could define a grid that applies to every blog post individually, and arrange the pieces of each post on those nested grids. The CSS would look something like:

div.post { display: grid; grid-template-columns: [meta] 10em [main] 1fr; grid-template-rows: [title] min-content [main] 1fr; }

With that, I could place the metadata, the title, and the post’s body text into the defined grid cells, using either grid line numbers or the grid names I set up. Something like:

div.post h3 { grid-column: 2; grid-row: title; } ul.meta { grid-column: meta; grid-row: main; } div.post div.text { grid-column: main; grid-row: main; }

The drawback is that the metadata is then constrained to be a specific width, instead of my being able to set a column that all metadata shares, and size it by the longest bit of content.  That’s no worse than right now, where I’m setting the floated metadata to an explicit width, so this doesn’t lose me anything. It’s just a (temporarily) missed opportunity to gain something.

Another limitation, one that may or may not be addressed, is that you cannot directly style grid cells. Suppose I’d wanted to put a box around the #extra sidebar, completely filling out that cell. I’d have to style the div. I can’t do something like this:

@grid-cell(2, 3) { background: teal; border: 1px solid; }

I mean, I’m not even sure the syntax would look anything like that (probably not), and this sort of capability is only now starting to be debated by the Working Group. If you have use cases for this sort of capability, definitely share them with the world and the folks at www-style. The more real-world cases there are, the stronger the case for supporting them.

And there will, inevitably, be bugs to fix. For example, as I was finishing this article, I discovered that in some situations, Chrome 57 can suffer from a page-blanking bug when using Grid. It appears to be caused by having absolutely-positioned elements removed from a Grid page, and can be triggered by extensions like Window Resizer and LastPass. The good news is that a fix has been accepted for Chrome 58, so it should be fixed by the end of April 2017 at the latest.

Grid power

I hope this exploration of applying Grid to a live site has given you a taste of what’s possible. But I want to warn you that it’s just a taste, and a minor one at that. I was only able to scratch the surface of what the Grid syntax makes possible, so if this has captured your imagination, I strongly encourage you to experiment and then to dive into the Grid specification to see what else is possible. (Grid gaps! Dense grid packing! Inline grids! Auto-filling rows and columns!)

But even more, what I explored here was the barest wrinkle on the outer edges of a scratch on the surface of everything that Grid will make possible. Sure, it can make our existing designs more flexible, robust, and simple to maintain. That’s pretty great. It also makes possible layouts we’ve never even dreamed of, because they were impossible given the tools we had available. There are new techniques, even new art movements, waiting to be discovered. We haven’t experienced a phase shift this profound since the original move from tables to CSS. I hope you’ll be a part of exploring this new realm.

Resources

As I said, this is at best an introduction. Want to know more? Here are some great resources to get you going:

 

Categories: thinktime

Practical Design Discovery

a list apart - Fri 10th Mar 2017 02:03

A note from the editors: We’re pleased to share an excerpt from Chapter 3 of Dan Brown's new book, Practical Design Discovery, available now from A Book Apart.

One of the hardest design problems I ever worked on was for a company that helps IT groups manage risk. Their product focused on open-source components—inexpensive and widely supported by an enormous community, but often vulnerable to security flaws.

What made this design problem hard was the complexity of the product’s underlying structure, a triangle of interrelated abstract concepts. To work through the problem, we created a series of sketches that helped us understand it.

The outcome ended up being a relatively simple prototype, a model of the overall structure of the application. Though we were chartered to create a detailed design, our client later admitted that they knew we wouldn’t get there, but that they highly valued our efforts to solve the underlying structure. Those efforts set the direction for everything else on the product.

Direction-setting assertions

Much like when we frame problems, we can make assertions that set direction and describe decisions about the design. These decisions will be pretty high-level, meaning they’ll deal with a holistic view of the site or product. Decisions about details come later, though you’ll see that some assertions get pretty specific as a way of clarifying and testing the direction.

There are three kinds of assertions you can make about design direction:

  • Principles define what the design should or shouldn’t do. These statements are grounded in research, and may be referred to as implications when you can tie them to research.
  • Concepts establish an overall approach for the product, expressed as a central theme or idea.
  • Models describe the product in an abstract way, showing the underlying architecture, structure, flow, or approach. They offer a sense of how the product will work (without actual functionality).

If you try to make tactical decisions too early, you may set a precedent without understanding how it influences what comes next—it’s difficult to trace low-level decisions back to a specific objective or problem statement. Why is the button blue? There’s no project objective in the world that can justify such a decision.

Instead, you’ll make a few low-level decisions alongside your assertions, using samples to illustrate, clarify, and demonstrate the application of the high-level decisions. For example, you might arrive at the design principle that the site’s tone should be friendly without being too casual or informal. You would demonstrate that through sample screen designs and content, showing messaging that says “Thanks!” instead of the too-formal “Thank you very much” or too-casual “You rock!”

Exploring the big decisions through examples might encourage you to reconsider them, or to find places in the product experience that need variation. Perhaps the color palette is insufficient for everything you need, or the authoritative voice isn’t appropriate for certain pages.

By venturing a solution, you’re not just asking, “Will this work?” You’re also asking, “Do I have enough knowledge to know whether this will work?” That is, steps toward solving the problem may trigger additional insights, or questions, about the problem. Great discovery entails providing just enough shape and definition so the team can get aligned behind them as direction for the product.

Principles and implications

Principles are rules that help designers evaluate their decisions about the design. They provide guidance in the form of absolute statements about what the design should or should not do. That said, no set of principles can be exhaustive. They read, sometimes, as commandments: rules that may be applicable to many different kinds of design decisions, and therefore open to interpretation.

There’s no industry standard on how to write design principles, so you won’t be violating some ordinance if you use pictograms or write a dialogue. But principles are usually just one sentence, often written in the imperative:

Do more with less (Microsoft Design Principles)

Design for the customer and instill confidence (Intuit)

Use data to make and improve decisions (Principles for 21st Century Government, Code for America)

I like these, but they don’t feel specific to the product or company. Principles are most powerful when they’re directly relevant. These use more elaborate phrases that closely relate to the product:

More than boxes on a screen (Google Calendar)

Transitional interfaces are easier to learn and more pleasant to use (MapBox)

Time matters, so build for people on the go (Windows User Experience Design Principles)

Sometimes, you’ll find principles rendered as one- or two-word noun phrases, as if to complete the expression, “The Principle of ______.”:

More Contrast (10 Principles of Codeacademy.com)

Consistency (First Principles of Interaction Design, Bruce Tognazzini)

Principles are sometimes followed by deeper descriptions and examples. My favorite variation of this comes from the Windows User Experience Design Principles. These principles include questions for designers to ask themselves about design decisions:

  1. Personalization, not customization
    • Does the feature allow users to express an element of themselves?
    • Have you made the distinction between personalization and customization?
    • Does the personalization have to be a new feature, or can it make use of existing features and information (such as the user’s location, background picture, or tile)?

Regardless of the approach you take in framing the principles, use consistent language and structures, if only to make them easier to remember and use. If you lead with a verb, always lead with a verb. If you write a pithy phrase or a complete sentence to express the principle, always do that. If you write single-word principles, well, there’s a special place in purgatory for you.

In my practice, I phrase principles as direct consequences of what we learned in research. I call them implications, and I prefer them because they fit into the narrative: “We learned that users often lose their place in the system. The implication is that the UI should prioritize clarifying context.”

Implications answer the question, “So what?” You’ve generated a lot of data, and now need to explain why it all matters. I typically document this in a spreadsheet that identifies project questions, answers I’ve uncovered, and the resulting implications (Fig. 1).

Fig. 1: Gathering activities generate answers to questions concerning context or requirements.

Ultimately, principles and implications do the same thing, so I won’t belabor the distinction between them. In both cases, they make an assertion that, yes, guides the designer, but also provides a test: designers can compare an idea to the principle and determine how closely it adheres to the guide.

There’s no standard for design principles, though there are lots of suggestions out there (the Resources section includes a few of the best). Here are my suggestions for crafting design principles.

Be specific

Principles should be as specific to the product as possible. “Easy to use” isn’t a meaningful principle, because it could apply to anything.

For the project with the risk-management company I described at the beginning of this chapter, we used a number of principles. In early versions of their product, users complained that it was easy to lose their place, so they couldn’t keep track of what they were working on. This led us to the principle:

Always display the user’s context within the system, so they know where they are and what they’re working on.

Context became something we talked about a lot. It forced us to think carefully before moving information to a different screen, or triggering a dialog box for taking action. Because of this principle, we often asked ourselves, “Can the user tell where they are? Is loss of context here okay?”

Question your choices

Good principles go beyond specificity: they issue a direct challenge to designers. They force you to take a second look at your work: does the principle invalidate any of your decisions? Done right, principles should make you squirm a little.

In the risk-management product, the complexity of its requirements inevitably produced dense, esoteric designs. Elaborate displays attempted to capture every nuance, pack in every detail. At the same time, our client had heard their users didn’t like the dense displays. We had to walk a fine line, and so we relied on this principle:

Show just enough information to support essential decisions—no more, no less.

The principle’s borderline self-contradiction provoked us to reconsider what stayed on each screen as users worked through the process. Did we take out too much? Is everything on this screen absolutely necessary? On one hand, we wanted users to feel confident about where they were, but on the other, we didn’t want the page overwhelmed by navigation devices irrelevant to the current task.

We also constantly asked ourselves, “What is ‘just enough information?’” and “What are the ‘essential decisions?’” Every iteration of the design tested the meaning of these key phrases.

Inspire your team

Specific and provocative principles may seem like whip-cracking: Do this, and do it this way. But a good principle also inspires you, pointing you to even loftier goals. It opens up possibilities by encouraging you to explore—and providing rationale for where you end up.

In Luke Wroblewski’s summary of a 2009 talk by Stephan Hoefnagels of Microsoft, he writes, “Goals are the mountain peaks you are trying to get to. [Design] principles are the path we use to get to the top of the mountain.”

One of the driving principles for my client’s product rested on the insight that the product was focused on bad news: every display was about what was going wrong in the IT department that day, how bad it was, and what wasn’t getting done. Like most interactive products, though, this one was meant to be a pleasure to use. In short, we needed to balance the gloom and doom with the satisfaction that comes from understanding the nature and extent of the bad news. We relied on this principle:

Build confidence by clearly stating risks and making the data actionable.

We knew the goal was to help customers manage risk. This principle acted as the path to the top of the mountain by inspiring us to focus not just on reporting the bad news, but also on ensuring customers could do something about it.

Link principles to research

Principles grounded in research make for stronger statements. The death knell of any principle is arbitrariness: if a principle comes from the subjective preference of the Chief Something Officer or because it reflects the (dysfunctional) way the organization has always worked, designers will ignore it. Your principle can be otherwise perfect, but if its source is suspect, the team won’t take it seriously.

The team’s participation in all discovery activities is crucial here, too. Since they helped with the research, they can also help with writing the principles. By participating in crafting principles, your team will internalize them. Seeing the principles later will trigger memories of user observations, which they can integrate into their work more readily.

The Windows User Experience Design Principles came directly from research. In reading some of these principles, you can almost hear supporting quotes from users:

  • Reduce concepts to increase confidence
  • Small things matter, good and bad
  • Be great at “look” and “do”
  • Solve distractions, not discoverability
  • UX before knobs and questions
  • Personalization, not customization
  • Value the lifecycle of the experience
  • Time matters, so build for people on the go

You might argue that these lack specificity. When you take into account the scope of the project, however—an entire operating system—they’re sufficiently provocative and inspirational. “Solve distractions, not discoverability” is a bold statement, offering clear opportunities to refine the design without dictating a particular solution. It opens up conversations, and steers them, too.

Concepts and big ideas

One of my favorite scenes in Mad Men, the television show about advertising agencies in the 1960s, is the pitch to Kodak at the end of the first season. Kodak is introducing a new product, a circular tray that makes it easy to store and show photographic slides. They call it “The Wheel,” admitting, “We know wheels aren’t seen as exciting technology.”

Creative director Don Draper, the show’s main character, explains that this product isn’t about the technology: it’s about tapping into our memories and emotions. The agency then pulls the veil off their concept for the campaign: the carousel.

By establishing a central concept, a team (whether in advertising or web design) has a singular source of inspiration, a template for considering ideas. And while principles can serve as guideposts, only a concept can establish a vision. With both of them in your toolkit, your team has a potentially interesting tension to draw from.

Using a carousel to describe a slide projector creates a metaphor brimming with meaning and possibility. It shows two ways we can express a big idea:

  • How the product makes you feel: carousels evoke the joy of reliving happy memories.
  • How the product works: the spinning carousel mimics storing and displaying photographic slides from a wheel.

Either approach can help us express the big idea behind our digital products and websites. (Though I’ve never worked on a project that gave us a central concept as elegant as the carousel, which employs both approaches!)

How the product makes you feel

The purpose and function of interactive products offer ripe opportunities for metaphors, but metaphor isn’t the only way to express a central concept. For one web application project, my team expressed the essence with the phrase, “Power with flexibility.” Doesn’t quite roll off the tongue like the word carousel, but it evoked the desired feeling: that the app should make users feel like they can do anything.

We elaborated with descriptions of how people would experience unconstrained power with the product:

Provide users up-to-date status so they feel in control

Lower barriers to entry

Allow different styles of creating new content

We also described what “Power with flexibility” meant from the user’s perspective:

  • Knowledge: having the right data to shed light on immediate needs
  • Responsiveness: being able to provide answers to stakeholders immediately
  • Accomplishment: getting up to speed on a crucial tool right away
  • Control: being able to fine-tune their content to suit different needs in different situations
  • Comfort: seeing the application as an extension of one’s own thought process

Since this essence was a succinct idea, a little elaboration helped it to resonate with both the client and the project team.

How the product works

Complex interactive products benefit from a central idea that describes how they work. This usually means employing a big idea to convey the underlying structure.

Shopping cart, for example, is a popular metaphor used on ecommerce sites. You could use it even if you weren’t working on an ecommerce site. The idea of “adding stuff to the cart” is a familiar metaphor that conveys a site’s underlying structure. We even relied on this metaphor on our career-guidance site: students would “add careers to their cart” after taking an assessment.

There are a few other tried-and-true frameworks for describing the structure of a website. For web applications, there are two common ones beyond the shopping cart:

  • Hub-and-spoke: This is perhaps the most common pattern for structuring a website or digital product. The hub-and-spoke metaphor implies that the web application has a central screen, from which users may trigger all other functions.
  • List-detail: Another typical approach consists of a list of items from which users can select for more detail—like your email inbox.

Do you have to use one of these structures? Of course not. But if your site lends itself to one of these approaches, you have your big idea that the rest of the functionality revolves around. (That wasn’t a carousel reference. I promise.)

For sites that focus on delivering content (rather than transactional functionality), the tried-and-true frameworks deal more with how the content is organized:

  • Topics: what the content is about, or the subject matter
  • Actions: what tasks the content supports (like researching products versus troubleshooting products)

These aren’t the only structures for categorizing content, but they are my go-to starting points.

None of these is a fully fledged design in and of itself. They are well-understood frameworks that serve as the backbone to a much larger design. They are big ideas that describe how the product works.

You don’t have to rely on an abstraction or metaphor (like the carousel) to convey the big idea, but instead draw from the emerging library of understood frameworks. That they are becoming part of web design lingo is a testament to their power and flexibility.

There’s more where that came from!

Check out the rest of Practical Design Discovery at A Book Apart.

Categories: thinktime

OpenSTEM: Oceanography and the Continents

Planet Linux Australia - Wed 08th Mar 2017 11:03

Marie Tharp (30 July, 1920 – 23 August, 2006) was an oceanographer and cartographer who mapped the oceans of the world. She worked with Bruce Heezen, who collected data on a ship, mapping the ocean floor.

Tharp and Heezen

Tharp turned the data into detailed maps. At that time women were not allowed to work on research ships, as it was thought that they would bring bad luck! However, Tharp was a skilled cartographer, and as she made her maps of the floor of the oceans of the world, with their ridges and valleys, she realised that there were deep valleys which showed the boundaries of continental plates. She noticed that these valleys were also places with lots of earthquakes and she became convinced of the basics of plate tectonics and continental drift.

Between 1959 and 1963, Tharp was not mentioned in any of the scientific papers published by Heezen, and he dismissed her theories disparagingly as “girl talk”. As this video  from National Geographic shows, she stuck to her guns and was vindicated by the evidence, eventually managing to persuade Heezen, and the scientific community at large, of the validity of the theories. In 1977, Heezen and Tharp published a map of the entire ocean floor. Tharp obtained degrees in English, Music, Geology and Mathematics during the course of her life. In 2001, a few weeks before her 81st birthday, Marie Tharp was awarded the Lamont-Doherty Heritage Award at Columbia University, in the USA, as a pioneer of oceanography. She died of cancer in 2006.

The National Geographic video provides an excellent testimony to this woman pioneer in oceanography.

Categories: thinktime

Lev Lafayette: Multicore World 2017: A Review

Planet Linux Australia - Tue 07th Mar 2017 17:03

Multicore World is a small conference held annually in New Zealand hosted by Open Parallel. What it lacks in numbers however it makes up in quality of the presenters. The 2017 conference included a typically impressive array of speakers dealing with some of the most difficult issues facing computational science, and included several important announcements in the fields of supercomputing, the Internet of Things, and manufacting issues.

read more

Categories: thinktime

Craige McWhirter: Adventures in Unemployment

Planet Linux Australia - Mon 06th Mar 2017 14:03

Due to a recent corporate fire sale, implosion, what ever you'd like to call it, I found myself joining thousands of my former colleagues unemployed and looking for "new opportunities" (hire me, I'm dead set amazing).

As a parent who also has an ex-wife and children it is incumbent upon me to inform the Department of Human Services (DHS) of any changes to my income within strict time frames. So like a dutiful slave of the state, I called them to advise of my new $0 income status.

The following conversation actually happened:

[DHS] "So taking into account your new income of $0, you will need to pay $114 / month."

[McW] "With an income of $0, how would you expect me to pay that?"

[DHS] "Borrow money from family and friends."

[McW] "You know you just said that out loud, right?"

[DHS] "Yes sir."

[McW] "Okay, so let me clarify this. I have an income of $0, 3 dependent children living with me, one dependent adult and the DHS priority is not for me to provide food and shelter for them but to pay child support?"

[DHS] "That is correct."

[McW] "..and this is something you've not only said out loud but on a phone call that's being recorded for 'service quality and training purposes'."

[DHS] "That is the nature of the legislation and what we are trained to say."

[McW] "You do see the problem here, don't you?"

[DHS] "Yes sir, I do."

[McW] "Are there any other things you're trained to say that might help?"

[DHS] "You could apply for work benefits."

[McW] "Okay, let's think this one through. Let's say I did get the dole, which would be about $400 / fortnight, less than my fortnightly rent even before I commence buying food, would the DHS still want $114 from that?

[DHS] "Yes, child support would be taken from the benefits before they were paid to you."

[McW] [long pause] "Back to the $0 income and obvious incapacity to pay, when the inevitable non-payment occurs, what does the DHS do next?"

[DHS] "Despite your excellent payment history, the DHS would have to pursue avenues for collection."

[McW] "So I have a family of 6 to shelter and support and the DHS will still end up going collect to strip us of whatever they can? That's not particularly helpful to anyone, not those I'm directly supporting nor my children for whom the DHS is collecting child support."

[DHS] "That's correct sir, once a child support debt of $1,000 is accrued, DHS will pursue collection avenues. Is there anything else I can help you with?"

[McW] "Unless you can change the legislation, I think we're good here. Thank you."

Having been in the child support "game" for about 13 years, having seen female friends dudded by former male partners, have seen male friends rorted by former female partners, it's not as though I was unaware the system was truly broken and unfair to all parties in so many cases.

This conversation however, was truly breathtaking. I doubt Douglas Adams could have scripted this any better. :-)

Categories: thinktime

Pages

Subscribe to kattekrab aggregator - thinktime