A List Apart

Menu
Issue № 311

Start web design projects the right way. Learn when and how to say no.

Kick Ass Kickoff Meetings

by Kevin M. Hoffman · 18 Comments

Too many kickoff meetings squander the busiest, most expensive people's time reiterating what everyone already knows. If every meeting is an opportunity, why waste your first one? By asking stakeholders tough questions before the kick-off, and using the meeting itself to explore ideas and build relationships, you can turn a room of mutually suspicious turf battlers into an energetic team with shared ownership of the end-product and the kind of bond that can sustain the group through the challenges ahead.

No One Nos: Learning to Say No to Bad Ideas

by Whitney Hess · 39 Comments

You can't create what clients need when you're too busy saying yes to everything they want. As a user experience designer, it's your job to say no to bad ideas and pointless practices. But getting to no is never easy. Proven techniques that can turn vocal negatives into positive experiences for you, the client, and most importantly, the end-user include citing best practices and simple but powerful business cases; proving your point with numbers; shifting focus from what to who; using the "positive no"; and, when necessary, pricing yourself out.

More from A List Apart

Columnists

Matt Griffin on How We Work

Pricing the Web

If you plan to bill your clients, you need a method for putting a price on what you do. The variables are always money, time, and scope of work, but the way they relate to each other can bring different client motivations to the foreground and fit different agency needs.

From the Blog

Driving Phantom from Grunt

For this example, we're going to build a Grunt task that takes a screen shot of the pages we're building (similar to Wraith, but far less advanced). There are multiple parts to make this work, so let's break it down. First, we will write a PhantomJS script that renders each page. Second, we make a NodeJS function that calls this script. Finally, we make a GruntJS task that calls that Node function. Fun!