Keynote: Collaboration

(watch this presentation online)

Her early computing experience is much like mine, but a few years earlier. (Also, her dad insisted she learn how to type because she was interested in opera & philosophy; which sounds a lot like my mom with the typing.)

I want you to feel good about the mess we’re in — this is just naturally what happens.

why would you know? you just made it up. [‘that thing you just said. oh, yeah, I’m on it.’]

people are trying to replicate the good things, but don’t have the standards or governance and do it imperfectly. set a protocol to avoid the chaos pit. “build better collaboration models”

“this is why it’s hard” — because “it’s a hard use case” (we’ve put everything on the internet)

you must get organized

things. take. time.

[this part reminds me of the information technology book, title escaping me ATM]

“you might retire and it still might not be right” – don’t measure the transformation by your own vocational tenure (it’s bigger than you are)

holistic responsiveness via standards

“remember when you couldn’t put a bagel in your toaster?”

create effective instances of content within a standards-based framework

“we have super-cool jobs, let’s keep them super-cool” (being positive, sharing instead of blaming)

what we want at minimum: a team that works together and follows rules and makes quality content that get real work done

moving to more organic models: giving management information so they can make effective decisions

then going from hierarchy to object oriented thinking about teams “execution atom” – everyone operating against a nucleus of standards and known objectives surrounded by an array of people

“information supply chain management” – can we manage information the way we manage manufacturing? (fascinating but a little disturbing)

your role? to create information flow – that goes beyond the boundaries of page, site, app, etc.

Out of the box layout

what I’m hoping to get out of this: gotchas I may not have considered in building the theme, things I might want to share with Justin & Naomi.

[full disclosure: not 100% listening, because I’m trying to get my screenshots together.]

Fieldgroup is in fact the bomb. (he’s using “div” in order to have something for theming. So this is on Manage Display. I should talk to Justin about that maybe for some of the more complex content types. Faculty profiles, maybe? Can also add classes to those divs in a fieldgroup under manage display. (I feel like maybe that’s something I’m already doing somewhere?))

 

 

Communication

what I’m looking for: I’m not really sure TBH.

forming/storming/norming/performing — this actually clicks with the confab presentation — and I think we can add that awareness to our work sessions! Because we want them to conform to our process, but we also have to feel out their anxieties and interests.

and I want to grab this stat about verbal vs vocal vs body language for my presentation as well, for that section on active listening.

“common frame of reference” — that’s why we added the intro/kick-off, and that’s what a lot of the question-asking is about, building a frame of reference. and that’s why the questions should be as low-level as possible, because you’re trying to understand their frame of reference, and listening to find out the underlying issues.

“what’s the gap?”

retrospective — that’s the word I was looking for yesterday! (we should totally do more of those.)

“don’t argue about the experience” — “you shouldn’t be mad” — can’t talk people out of that feeling.

interesting note from audience from book “how to talk to your children so they will listen …” – don’t tell people they don’t feel a thing. (I HAVE FEELINGS ABOUT THIS.)

the 6 basic feelings: happy, sad, mad, afraid, ashamed, confused (also: surprise? disgust? words & pics don’t quite match.)

YUP, I definitely want to bring in some of the therapy tools to my confab talk.

CRM integration

what I’m hoping to get out of this: what are some possibilities for integrating? What should I be looking for?

make it easy for editors to build pages/forms and connect them to the campaigns in the CRM

avoiding tightly coupled systems

at the one end, just link to the forms built in the CRM, and at the other, actually building a CRM in Drupal

finding the habitable zone.

using “Users” to manage sessions, without actually giving them a login?! the hell.

entity registration (module)

fields to represent CRM integration

form block (module) to put user registration on lots of different content

a kind of “guest” user with a long session lifetime

I’m not sure if any of THIS is appropriate to our uses, but its intriguing.

drop-down field for “lead source” and then details, including a campaign ID. (the lead sources sync, but could be just as simple to give editors access to Taxonomy)

when the form is filled out, it also sends a POST to create them in the CRM. (so the important thing to know is how to do the POST. From there: cake?)

“the end user watching the video would never see [the CRM’s] interface” (HELL YES)

Form API post-submit handler (could probably also do this in webform interface?)

There’s a whole thing of a sorta-blank form with a button? I’m not 100% that I get it, but ok.

[long discussion of de-duping]

be careful of the cache_form table if using their system, could get out of control?

they use hidden fields to send that stuff in the form, rather than doing it all server-side with the post-submit handler, etc. (stuff I wouldn’t even know what to do)

they’ve also thought about creating a queue and doing batch, but the downtime just wasn’t enough to justify the work. have a logging system in case of a failure.

[lost track for a sec, I think something about analytics tracking urls?]

context form alteration seems intriguing. (there’s other modules mentioned in a slide)

How to audit Drupal sites

what I’m hoping to get out of this: what are some cool tools for making sure I’m not messing it up?

“views cache bully”?

site audit – drush. can produce html reports.

doesn’t check usability & UX (obvs!) or design (including accessibility) or the actual content.

the HTML output is pretty sweet, TBH…but it does require shell access, so that’s maybe an issue?

module: unused_modules – things that can be safely deleted.

module: security_review

cacheaudit has some overlap with site audit, but does some slightly different ways of looking at what is and isn’t cached.

[slides with a bunch of generic PHP cleanup/audit tools, maybe send to Dave/Jamie?]

GitStats (does Gitlab integrate some sort of statistical analysis?)

ESLint is in D8, FWIW.

webpagetest.org — that’s the one Justin uses, yes?

Nice slide on the structure of an audit report.

pareview.sh is for reviewing custom modules? if you want to post them to d.org.

nice audience recommendation of wave.webaim.org

there’s a version of site_audit available already for D8.

Build awesome search pages with Solr

what I’m hoping to get out of this: some understand of what Solr is, how it works, and/or what we might get out of using it over Google Site Search

search_api

search_api_solr

search_api_page

search_api_views

search_api_facetapi

search_api_solr_overrides

Search API vs actual Solr module: more flexible? Also has more options? I’m a little confused TBh.

[slide about installing Solr — his handwaving feels a lot like mine for tomorrow’s presentation.]

There’s also a bunch of hosted Solr options, if I want to try stuff out.

Can include/exclude specific fields from being indexed. (“Compound fields”, which includes the body field! are available through an extra expando-box.)

(I’m glad he said this was a run-through. It feels really rough. But watching this, I’m wondering if I should move away from the screenshot method vs actually running a live demo, because it is a lot easier to understand this way.)

Interesting gotcha of having to make sure to index the full content. If you’ve got it set to index as items are edited/created, then it isn’t being indexed with cron.

Interesting stuff in the Search database advanced config, as far as highlighting, etc.

Sounds like the layout is adjusted through Panels vs Views? (I try to avoid Panels, because of previous bad experiences, but in some instances it’s ok: I’m already doing that to override the My Workbench default.)

Honestly: are facets really useful for most people most of the time?

Primary performance savings is on the indexing (which is important) vs the display.

But the sorting of results (by pub date or something else) using Views is sort of intriguing.

Aaaaaaannnnnnd then his computer crashed.

“Aggregated fields” — can use to combine fields into a single indexed *thing* — “like field collections”

This session really feels unfinished. (Like, I actually feel really prepared compared to this!)

Can bundle into Features, but then add an override (there’s a module, search api solr override?)

One place where faceted search might be useful: pages vs directories.

Potentially useful blog post on troubleshooting.

PNW Drupal Summit: The Drupal Development Pipeline

what I’m hoping to get out of this: specific tips that will help us in getting to a really great live site.

curious idea of using codepen for demoing components to clients.

“you could have up to 200 developers [later: ‘guys’ :\ ] working on a D8 site w/out stepping on each other’s toes” (I don’t understand why, tho.)

discussion of tags, header hierarchy: but without discussion the editor experience? how odd. (most of our issues with poor use of headers come from things editors do.)

estimating: 130%

dev/stage/prod

this “developer tools” slide is a venn diagram overlap with my presentation tomorrow.

Semantic Versioning

modules to look at

  • “smart trim”
  • “stage file proxy”
  • nodequeue (“curated list of content”)
  • metatag
  • redirect 403 to user login (does this work at all with CAS? what would the alternative be?)
  • something about Entity Custom Modes (or whatever that’s called) — and improved caching when creating views with custom mode view something something. [would this help with the Workbench Access every page views?]

Drupal Coding Standard? [does this matter at all for us]

custom environment module for stopping yourself from accidentally emailing all the people or whatevs on the dev site. (Dave does something like this, I think?)

use AdvAgg on production sites

I kinda hate the term “post-mortem”, but I think something like that would be a good idea.

Conferences: who pays? What does it change?

So Jessica Rose asked people who pays when they go to conferences, and as I mentioned, it’s usually been my employer. Since her question back to me, I’ve been thinking about it.

First of all, conferences that I pay for myself have fallen into two categories:

  1. It’s close and cheap: early WebVisions or Pacific Northwest Drupal Summit, or if I hadn’t been speaking at AlterConf Seattle. (Which means that activities are cheap and are basically within my normal day-to-day budget. I can afford to do whatever.)
  2. It’s a big trip that’s sort of a vacation: two of the three times I went to SxSW Interactive. (In theory, that meant I’d saved up for the experience and could afford to go to stuff, although it’s been long enough now that I’m not sure about what I may have skipped out on because I was low on cash.)

(Does this say something about what kinds of conferences I can go to overall? Probably. Every job I’ve been at that’s ever paid me to go to something has had fairly limited conference/training budgets, so if I can go to a conference, it means I’m picking one thing, and that’s the it for the year. I decided not to submit to speak at HighEdWeb when it was in Portland because they don’t give tickets to speakers, and I didn’t want that to be my one conference for the year.)

I suppose if I were being especially thorough I could actually go through my conference notes (which seriously, I think covers EVERY professional conference I’ve EVER been to) and SEE what the difference is based on what sessions I went to, or what sorts of notes I took, or what else I did while I was there. But that seems like a bit much.

If work is paying, I tend to be more narrowly focused, or at least I try to keep current or future projects in mind while listening. If I’m on my own dime, I feel more free to be experimental in what sessions I go to. Still: I find myself thinking about work things when I’m paying for a conference myself, and I don’t stop myself from musing about personal projects if work is paying.

I think also I used to be more likely to stick out a less-than-scintillating session if work was paying…now I think I’m just more assertive about not wasting my time.

And that’s the core of it: if I’m at a thing, I’m going to use the experience the best way I can, whoever’s paying for it; and as I’ve gotten older, I trust my own judgement more about what’s a good use of my time.

So I won’t pay for an event that I don’t think is worthwhile, and I won’t ask to go to anything that isn’t. When I’m at a conference, I’ll have my brain on and be taking lots of notes, and if I get burnt out, bored, or overwhelmed, I’ll take the initiative to regroup and do what works for me.

My AlterConf presentation notes

Description

Every group of people ends up with values that guide their work, whether they mean to or not. Be deliberate in choosing the values that matter to your team, put them into action, and communicate them to the people around you. Our team figured out our core values and we actually use them in making day-to-day decisions. Communicating them helped us launch a website redesign with minimal freakout. I’ll share things to consider when figuring out your team’s values, and how to use them in practice.

[slide, title, image of people with value bubbles]
Today I want to talk about how you can take the values that are already in your heart and make them part of your work, and that can make your work better.

All of us have value systems that guide how we behave in the world. They may be consciously chosen or unconscious values from our upbringing and our surroundings.

Groups of people aren’t any different. Even if a larger organization has formal values or a formal mission, informal values bubble up in a group of people who work together.

When you don’t talk about your values, you can’t know if they’re what you all really want or whether you’re being true to them. And when you do talk about your values, you can make better decisions and help others understand your choices.

So I want to share some ideas about uncovering, setting, and communicating your core values in your work.

[slide, who are we]

So my name is Elaine Nelson, and I work at The Evergreen State College.

You may know us from such stereotypes as the hippie college, the hidden birthplace of grunge, and the hipster college.

I work on a small team of web folk.

I wrangle backend code and words.
Justin wrangles frontend code and pictures.
Susan wrangles projects and people.

Together we make Evergreen’s public-facing website.

[slide, our values]

We went through a process much like this about two and a half years ago, and came up with these four core values:

User-focused
Data-driven
Simplified
Iterative

Where did they come from? How did we decide? Why did we even bother? The college has a mission statement and principles and foci of learning and expectations of a graduate. There’s lots of fancy words, none of which are here. If you work for an organization that’s been around for a while, you probably have plenty of fancy words to choose from.

We weren’t looking for fancy words. We were looking for ways to manage our overwhelming to-do list.

At that time, Justin and I were brand new to the college. Susan had been on her own for many months. And the website hadn’t been significantly updated in several years. So there was lots to do.

[slide, retreat]

We held a retreat. Well, really, we booked a room that had comfortable places to sit and lots of whiteboards, in a time of year when there weren’t many people around. We meant to talk about the next few months of work, but ended up talking about why we wanted to do things, what we would use to make decisions and explained them. We approached it by accident and ad hoc. You don’t have to.

But this is a great place to start: gather a small group of people who work on projects together. Find a place without mundane interruptions. And start talking. And keep talking, even after the time away is over. We started with at least half a dozen values listed, realized some of them didn’t match, and some of them were near-duplicates, before narrowing it to ones that we can all say without looking them up.

And when we looked back at the whole process, we came up with some questions that you might want to consider as you work out your team’s values.
[slide, the questions]

I think of this first one as the zero-eth step:

* What do you care about most in the work that you do?

The other question help the team bring what you value together with what your work needs to be doing.

* What will help your organization achieve its goals?

* What can you learn from past mistakes?

* What motivates your boss?

[slide, what do you care about most in the work that you do?]
So first, what do you value?
I care about using a certain amount of scientific thinking in my work, which means having reasons for doing things, and being willing to try different things. I also value making sites that are designed and written for real people, who have complicated needs and lives.

Susan cares that users can do what they’re there to do. She craves consistency and simplicity, and she wants her work to to be sustainable over the long run. And she often says: “If it’s better than what we’ve got, then go.”

Justin wants design to get out people’s way, to be invisible. But he also wants his work to be unique and fashionable.

We have a common belief in trying and learning, so being iterative underlies almost everything we do.

When you think about what you do, what is most meaningful? If your team’s core values reflect that, then you can feel them as your own.

Now that you know yourself and your team members, it’s time to look outward. And in looking outward, we came up with some examples of other organizations and what we might guess they value based on what we see of them.

[slide, organization]

What will help your organization achieve its goals?

[slide, W3C priority of constituencies]

One of our inspirations has been the W3C’s Priority of Constituencies. In fact looking at the priority of constituencies during our retreat was part of how we started talking about our core values.
Because in an organization that has many different stakeholders with conflicting goals and interests, they need something like the priority of constituencies to give structure to decision making. Because they’ve put end users ahead of everything, and theory after everything, we can guess at a value of utility — usefulness — standing behind the priority system.
[slide, Hotel Tonight]
For a commercial site like Hotel Tonight, we can see at least one of their values in their design: speed. You can see from the number of clicks from home to booked that they care deeply how quickly you can book a room. This matches their business goal of just getting a person to a hotel room right now, versus building a relationship or thinking ahead.
[slide, student]
Being user-focused and choosing the prospective student as our site’s primary audience connects our decisions to the needs of the college. Every piece of content has its user, and for our site as a whole, the most critical user is the prospective student.
[slide, other]

Other values that arise from this question might be found in those fancy words no one usually reads: what is your organization’s mission or strategic plan? Which of those aspects speaks to your team in its daily work? If you don’t have a larger organization’s goals to connect to, what does your work need to be successful?

[slide, mistakes]
Next, what can you learn from past mistakes?
[slide, D&D]
For Wizards of the Coast, switching Dungeons and Dragons to a ruleset with too much focus on grid combat and not enough character detail opened them up to competition on both the detail side and on the story side of role playing games.
The introduction of the fifth edition shows a rededication to a value of fidelity, rediscovering a feel that entices back long-time players. While they may not say with words that they went in the wrong direction, the changes speak for themselves.
[slide, Rube Goldberg]
On our team, we’ve all dealt with some overly complicated systems and useless duplication, both at the college and in our previous work lives. So simplifying is a core value for us, because none of us want to make that mistake again.
[slide, looking back]
You might look to mistakes in your past or your organization’s past and come up with values like respect, honesty, diversity, and dependability.
[slide, boss]

And finally what motivates your boss?

[slide, panda]
By this we don’t mean pandering to them. We mean knowing what their values are, in the same way that you know the rest of your team’s values, and finding the common points.
That connection makes it easier for them to become an advocate for you when you’re not there.
And by boss we mostly mean whoever’s next up the chain: a senior manager, a VP, a C-level executive. Maybe a member of a board of directors.
[slide, LotR]
It could be that attention to craft is something your boss cares about. For the chainmail makers and other creators who were part of the Lord of the Rings movies, dedication to craft was a shared value from the tiniest link of rubber to the arrangement of vast armies.
[slide Google Analytics]
Without giving away too much, we work with people for whom numbers are particularly persuasive. We too are fans of data, so being data-driven was an obvious core value.
[slide, your boss]
You don’t necessarily figure out what these values are by asking. You listen to their complaints and compliments. You watch other people try to convince them and see which arguments work. When you know what values you share, you can integrate those into your team.

[slide 65-76, pared down]

And now that you have set your core values as a team, this is where you use your values to filter your decisions: to have meaningful guidance under pressure. These are some examples for each of our team’s values.

Here’s the first example of how we walked the walk.

When we redesigned our primary navigation, we didn’t want to hide important links behind a hamburger menu. We determined that, in our design, there’s only room for [five links], so we really had to streamline what could appear there. But of course, everyone wants to be included, so we needed a way to prioritize.

We looked at our old list of links and we asked questions about it.
But here’s what we didn’t ask:

(Read questions aloud.)

Each of these questions focuses on the product or the desires of the content owners; they’re not relevant to the needs of our primary users, prospective students.

Here are the questions we did ask.

(Read through questions aloud.)

These kinds of questions are focused on the user, not the product or the author. It’s a subtle but important distinction.

In being user-focused we were able to more efficiently prioritize the massive amount of content and with the content changes that we deal with on a daily basis. When someone approaches us about putting a link on the homepage they have to concede that the needs of prospective students outweigh their personal convenience, ego, or some tiny slice of the site’s visitors.

So that’s one way we demonstrated one of our core values.

Here’s another example. When we were trying to write a new tagline for the home page, it turned into a committee debate, which is always a terrible idea for writing. A bunch of ideas were thrown out there, and before it came to a vote (also bad news), Justin suggested trying a split test to see how actual audiences responded to each of the tag lines. Which of these would get the most clicks? [The one] written by a marketing professional? [Or the one] written by the highest paid person in the room?

[Explain the results.]

The lesson here is trust the professional, but also verify.

We look to the data when we’re unsure of the answers. It often provides valuable insights into how well we’re doing or where we could do better.
new transition?

But here’s the thing. Once prospective students are on the site, they need to quickly learn what they can study, how much it costs, how to schedule a campus visit, and how to apply. This information was scattered all over the site.

• [Sometimes] it was hidden.
• [Sometimes] it was duplicated in multiple places and often the information didn’t match up.
• [We had a separate] admissions site with its own navigation system.
• Important dates were sometimes months or even years out of date.
• Basically, we were making it confusing for prospective students to achieve some of their most basic goals.

It was clear that we needed to simplify, and we needed the site to stay simple over the long haul.

Using that core value, we found and consolidated duplicate content and removed content that created confusion. We made the language clearer to improve comprehension. We scheduled audits so that content owners would have a set time to go in and refresh information.

Every time we simplify a new site section, our users have responded positively, and our live tests show that they’re more easily able to find the content they need. Plus, content owners find themselves having to do less work to keep their site up to date.

And about that Admissions site.

An earlier team spent two years in a vacuum creating a flashy design that had all these crazy JavaScript sliders. [When they launched it], it was two years behind the trends. The project had taken so long to get together that by the time it was out the door, it wasn’t quite what we wanted.

At the same time, it had left behind the rest of the site, leaving us without a plan to bring everything together. While it was better than what was there before, it was one website with two designs, which made learning about the college very hard for the audience we were trying to serve.

We learned a hard lesson there, so for our next big update, we decided we weren’t going to keep the project locked away in a tower with a magnificent curtain reveal. We were going to do it iteratively. That means putting out bits of the site a little bit at a time. [Demonstrate it here.]

In this way, we were able to get fresh, new pages in front of prospective students without worrying about less important pages. Those would come later, but they weren’t essential to launch. Iterating meant that we could help our users immediately while staying open to new possibilities.
[more of Justin’s slides]


That brings me to the last step, communicating your core values. We gave several versions of a presentation about the work we were doing on the website. That presentation always explained our core values and how they influenced our decisions.

By presenting our core values to senior staff—and later the rest of campus—we made the process more clear to our fellow employees. Our openness build understanding and respect.

We also rounded up some guinea pigs. We invited a few clients whose sites were essential for recruiting prospective students. Some of them came in trusting our process while others we expected to give us more pushback. But the temptation of getting in on the ground floor of a redesign was a great way to get some challenging clients on board.

We made it clear that not everything was going to go smoothly at first. When we tried our fledgling processes out on them, we figured out what worked, and redesigned the things that didn’t. These guinea pigs helped us create a portfolio of success stories.

This communication step works hand-in-hand with the previous step, demonstration. The more we showed how our core values worked, the easier it’s been to get others to understand the process. And the more you share your victories with your clients, the more opportunities you’ll have to rack up new successes.

By showing our wins to senior staff and the reasons why they worked, we built up much-needed trust and we turned them into advocates for us. Yes, we got VPs to be our advocates! Our process for establishing victories was then filtered back down to their staff, and as we’ve been working with them, our base of advocates grows. This means fewer angry emails in our inbox when big changes come.

This process is the bedrock for our success: we go back to this well time and time again. When we’re approached about a change that we might not know how to handle, we ask ourselves how it stacks up against our core values and make a decision from there. It really is a point of pride for us.

[and then I mostly used Justin’s slides & notes for the conclusion]

code sprint thoughts

I spent Friday morning/midday at the Mentored Core Sprint. It was a weird mix of extra-hand-holding and being thrown in the deep end, at least for me. I had 99% of my environment set before I got there or in the first 10 minutes: I already have a Git client (yay Tower!), and since I was up at 5:15 am AGAIN that morning, I went ahead & installed MAMP, then installed Drupal 8, so when I got to the sprint (early, see also 5:15 am) all I had to do was clone the main Drupal repo in Tower, install Chatzilla, and rediscover that my nickname was already registered. (Thankfully using an old default password.) I couldn’t get xdebug working, but got told that wasn’t strictly necessary.

But then…I don’t anything about applying patches. I don’t have object-oriented programming experience. I do some PHP, and I can usually work my way through it, but I’ve realized that in the Drupal parlance I’m a site builder, not so much a developer. And I was in a giant conference room with probably hundreds of other people, and really really really nervous about doing something wrong.

What I probably should’ve done was find the documentation team and offer my wordsmithing skills.

What I actually did wasn’t too bad, though. I found a bug in Views tagged “novice” that actually just needed someone to see if a bug was still a bug. So I walked through the steps — which also meant creating a new content type and fields in Drupal 8, and getting the hang of a few different parts of Views that I haven’t used much — determined that the thing seemed to work as intended, and posted some screenshots to the issue. I’m pretty proud of that, TBH. It was an environment that managed to simultaneously trip both my “student ahead of the class” thing and my “fake programmer” anxiety. And yet I did a thing, on what was marked as a Major bug.

After all that, and a little lunch, I was all the brain fry (did I mention 5:15 am?), so I did a little work-related stuff. But before I took off, I went to one of the organizers to say thank you. Because whatever was not quite right for me, it was pretty amazing that all of this was happening. She asked what I’d done, and I explained it, and she wanted me to get up and say something. Which OMG NOPE. Still, she gave me a couple of stickers, which ok, I’ll take that.

With that, me and my luggage were off away from DrupalCon. It was a good week. I feel like I managed to balance on-time and downtime, meeting people, catching up with people, seeing a few sights, and knowing where my boundaries were. I only went to two parties, and that was PLENTY. (It’s kind of reminding me of some SxSW experiences, and I feel ambivalent about that. I really wish there had been a game night or something. If I go again in the future, I WILL organize one this time.) I learned a bunch, and also created a bunch of mental bookmarks: things I need to come back to and explore in more depth on my own.