HTML5 for Web Designers by Jeremy Keith and Rachel Andrew

HTML5 for Web Designers by Jeremy Keith and Rachel Andrew (also available from the publisher, A Book Apart, possibly cheaper)

This book breaks downs a few very important points about HTML5 that other books I’ve read on the topic do not, and they all involve history. Jeremy Keith explains how we got here, from the beginning with HTML 2.0 through the WHATWG and WC3 kerfuffles to the present (2010) day.

Knowing the history of HTML helps considerably in understanding what decisions were made and why. Understanding the design principles — especially in the light of graceful degradation — is also quite helpful.

I read both the first edition and the second edition. The bulk of the second edition changes are dedicated to updating the features and options that have become browser-supported since the first edition came out in 2010. Because of the solid principles Jeremy Keith describes the web standards groups are using, the first edition isn’t inaccurate so much as missing all the cool stuff that’s developed since so if this is the only edition you have access to, it’s still worth the read.

Full Stack of Something

Here’s the thing that’s hurting my head today: the “full stack developer” job listing.

A Full Stack Developer is someone who can develop at every layer of the software development stack, from the servers to the front end. This includes:

  • Server, Network, and Hosting Environment.
  • Data Modeling
  • Business Logic
  • API layer / Action Layer / MVC
  • User Interface
  • User Experience
  • Understanding what the customer and the business need.

My role as an Information Architect lands firmly inside of the sixth one down, “User Experience”, and often I’m not the Information Architect on a project, I’m the User Experience Designer. (Even as an Information Architect there are expectations that I can talk fluently about the business logic, user interface, and customer and business needs, so the User Experience container is by no means leakproof.)

User Experience is a huge field of study in and of itself. In the “tradition” of the Full Stack Developer posting, I suspect we should call ourselves “Full Stack Designers” instead of User Experience Designers, because it gives a much better impression of our wide range of responsibilities, which include:

  • Information Architecture
  • Architecture
  • Content creation
  • Visual Design & Information Design
  • Human Factors
  • Industrial Design
  • Interaction Design
  • Human-Computer Interaction
  • Sound Design
  • Interface Design
  • Usability Engineering
  • Content Strategy

…and probably more than I can’t think of.

Each of the topics that makes up a Full Stack Designer can be (and in many cases is) its own full career with its own full educational system, training, and roles in an organization.

For example, I’m thoroughly well-versed in Information Architecture and Interaction Design, comfortable in some of the Usability Engineering methods and knowledge and some of the Content Strategy methods and knowledge (but not others), and not as deep in Visual and Information Design. I can’t even comfortably say I’m a Full Stack Designer (since I’m aware of my own weaknesses and imposter syndrome is a thing).

I suspect the same thing is true of all of the other traits that a Full Stack Developer is supposed to be familiar with.

So how in the world is someone supposed to be a Full Stack Developer and be set up for success by their employer? Is it a significant reliance on vendor products, frameworks, and external knowledge? Is it by only building small websites? I’m baffled.

And suspicious. I should add that I’m suspicious, because to do six careers well takes a lot of time, and while it might come with a lot of salary, I’m having trouble imagining it comes with a lot of sleep. Hustle is hype, and anyone who’s told me otherwise was trying to pay me one salary for at least two jobs worth of work.

Me, I’m happy with one job that pays the bills, the occasional vacation, and a few pinball tournaments or races or Phillies games. And as much as I believe that there’s space for both specialists and generalists (and maybe even a few compartmentalists) I’m also quite a bit worried that anyone working six career paths under one job title is, well, over-generalizing.

I’m worried about the Full Stack Developer precisely because it includes the Full Stack Designer. If an employer believes that the 8+ specialties in my field are nothing but a subset of skills for someone who is already doing 5 other jobs, then what do they think of hiring someone in my field? Are you specializing in IT by being a generalist in Design?

I don’t have answers, just a headache, and an observation that this “full stack” world seems awfully general.

Specializing in skills and infrastructure galore

A long time ago I was in a discussion about process as an “innie” – a User Experience team member that works inside a larger organization, generally whose mission is not to deliver UX to someone else. (An “outie”, on the other hand, works at an agency or as a freelancer to provide these same services.)

The outies I was talking to all believed in small development and design teams who could work quickly and easily, adjust to changes, and provide smooth handoffs. And yes, that works, but it’s not the only way.

Recently, Pamela Drouin mentioned that she’d heard some companies make their UX folks specialize in research or design. Having experienced extreme fragmentation, I threatened to tell her stories of specialization that would terrorize her, and she called my bluff.

So here I give you the most complex and bureaucratic design process I was ever a member of, with the highest level of Design role fragmentation I’ve seen. (For the faint-of-heart, please know this structure has since been dismantled… well, most of it, anyway.)

  1. Someone gets an idea, which makes it to the business folks with enough authority to decide it’s worth funding.
  2. The Product Owner writes a Project Charter, passes it through some sort of complex and magical bureaucracy, resulting in a Budget for a Project.
  3. A Business Lead (responsibilities: translate Business to IT and vice versa, always be available to the dev team for business decisions) is assigned to the project.
  4. A Business Systems Analyst (BSA) (responsibilities: schedule all the meetings necessary for gathering requirements, gather requirements, facilitate communication with IT) is assigned to the team.
  5. Depending on the size of the project, the Product Owner, Business Lead, and BSA, along with subject matter experts, market researchers, and other folks, may complete a Business Design Methodology (BDM) project to determine what business problem they’re trying to solve and what approach they want to take.
  6. When the BDM is complete, a Design Vision is kicked off. Someone contacts the Design Manager (responsibilities: manage a design team, participate in critical projects, set overall organization design strategy) and asks for design resources.
  7. The assigned Information Architect (IA) (responsibilities: some design research, determining user needs, business goals, structure, navigation, scenarios, site map, strategy, process flows, page flows, alignment with architectural brand standards, and wireframes) meets with the Product Owner and Business Lead, sets a schedule for the Design Vision, and determines what other designers are needed.
    • If a BDM wasn’t completed or the BDM didn’t cover enough of the research, a Usability Engineer (responsibilities: user research facilitation, personas, design heuristic analysis, usability testing, design research reports) is immediately engaged; otherwise the Usability Engineer is engaged when wireframes are in progress
    • If durable content or news/fresh content is needed, a Content Writer (responsibilities: writing mid-to-long form content, navigating that content through editorial and legal reviews) is engaged.
    • A Web Writer (responsibilities: writing all infrastructure content — labels, buttons, instructions, headers, etc. — and ensuring that they’re coded correctly) is engaged.
    • An Information Designer (ID) (responsibilities: visual display of the page content, charts, graphs, tables, photography, and illustration, all assets to that effect, ensuring design aligns with visual brand standards) is engaged.
  8. The IA puts together the Design Vision Plan so that IT knows when they’ll be engaged for development.
  9. Design Vision meetings occur until the information architecture is stable and wireframes have been developed. All of the people above are required for the meetings in various amounts depending on the day’s topic.
  10. Sometime during this stage, the Usability Engineer runs initial design heuristic reviews or early usability tests and creates a Usability Report, which the Information Architect dispositions with the team.
  11. The IA completes the wireframes in Visio and passes them on to the ID.
  12. The ID “skins” the wireframes in Photoshop.
  13. The IA, Business Lead, and Product Owner present the current state of the project at an Executive Review. The IA facilitates dispositioning the feedback.
  14. If a second usability test is needed for interactive elements, the IA engages an Interaction Designer (IXD) (responsibilities: creation of a prototype using HTML, CSS, and Javascript in a test region to capture interactive behavior and assist with usability test) who then builds HTML prototypes, and the Usability Engineer runs another test.
  15. The Information Architect writes a Design Vision Document outlining all of the design decisions made throughout the Vision including their underlying research, risks, strengths, and which elements of the vision included deep, middling, and shallow analysis. When this is complete, the IA, ID, IXD, Usability Engineer, and probably the Writers are all released from the project.
  16. Right around this time, an Agile team including a BSA (hopefully the same one), Scrum Master, Tech Lead, developers at the database, mid-tier, and front-end levels, a UCD Designer, Systems Acceptance Test Tester (SAT tester), Client Acceptance Test (CAT Tester) and Web Writer (hopefully the same one) are engaged in Sprint Zero planning. Depending on the number of front-end developers, there may be more than one UCD Designer, because it only takes 3 front-end developers to max out a UCD Designer’s capacity.
  17. At the end of Sprint Zero and the beginning of Sprint 1, the BSA begins front-running requirements, and the UCD Designer begins front-running designs specific to the Sprint 1 stories.
  18. From Sprint 1 forward, the UCD Designer (responsibilities: detailed design of all flows, error messaging, prototyping, Page Integrity Test testing (PIT Testing) and facilitation of all design decisions) designs to the detailed requirements, contacting the IA when the detailed requirements conflict with the Design Vision Doc. The UCD Designer also builds a second prototype, this time with component code, determines which parts of the Vision can’t be built using existing component code, and arranges for components to be written or custom code to be delivered for the specific capability.
  19. During each sprint the UCD Designer works with the Writer to ensure the content is correct and applied, validates testing scenarios and requirements, and documents the Design Specs for the project.
  20. At least one usability test is required, so the UCD Designer engages (hopefully the same) Usability Engineer. The UCD Designer also participates in the required executive review. The UCD Designer dispositions all the feedback from both reviews with the team.
  21. During each sprint and again during regression, the UCD Designer PIT tests all visual design elements of the pages or application being changed to ensure alignment with the vision and the Brand Standards.
  22. After the final set of tests are run, the UCD Designer and the Writer(s) are released from the project. Elevation usually takes place without Design’s participation because if it’s a Design issue at that point, it’s too damn late.

And then it’s done. It only took a Usability Engineer, two kinds of Writers, an Information Architect, an Information Designer, an Interaction Designer, a UCD Designer, and all of the design support roles (design managers, brand managers, marketers, photographers, code component builders, usability test recruiters and schedulers, etc.) to handle the design tasks. Also, approximately seven to twenty other people to do the business and development tasks. Quite probably more when vacations, short-term leave, and job changes are factored in.

In contrast, I’ve also been on teams where, for a given project, we had a business person making the request (but no product owner or business lead), myself playing the role of UX Designer (encompassing IA, Writer, ID, and IXD), a scrum master (who had two other teams), a developer, a BSA who doubled as the SAT and CAT tester, and a Usability Engineer on call when we needed them. Five people on average.

Nobody in their right mind would prefer the super-bureaucratic version of this design process — unless they needed the ability to swap out designers and developers at the drop of the hat, and then redundancy is a very valuable thing.

The risk is that fragmentation of roles and skills can be so incredibly prolific that a “small team” approach to design and development becomes impossible. “Pivoting” from one design or development solution to another also becomes increasingly difficult and expensive.

And yet… that doesn’t mean the software doesn’t ship. Because for every hat the designer takes off, that’s one less piece of work the designer has to do. Fewer roles means less shifting of context, and some efficiency is gained. Some roles, like Writer or Information Designer can be spread across multiple projects, because their skills aren’t needed on a daily basis, and may only be required for a few weeks of a six month or two year project.

The lynchpin is communication. The larger the team, the more time is lost to the overhead of keeping everyone on the same page. On the other hand, the smaller the team, the more skills are lost if one member is a poor communicator, falls ill, or leaves the team. One lousy communicator on a team of four is significantly more dangerous than one lousy communicator on a team of twenty.

Specializing is incredibly valuable if there’s a specific role that a person loves to fill, or a specific role that an organization needs to have handled. I love information architecture and I prefer having as few other roles as possible layered on top of it. As a specialist, I get to spend the vast majority of my time on my favorite tasks and only dip into the others when called upon to do so.

On the other hand, I agree with Jared Spool that compartmentalizing, or only having experience in on area is dangerously unproductive. Even on stupidly large teams and stupidly long projects, an overlap of skills between the different designers (and even the developers and business people) ensures efficiency when someone’s on vacation or away or new.

So to anyone who’s concerned about working for a company that requires specialization, I say don’t worry. Working as a specialist means getting the opportunity to gain a deep understanding of one kind of Design. It means being exposed to specialists in other fields, which makes it it’s a great way to learn a lot without being held responsible for everything. Finally, it means the opportunity to move from one specialty role to another, providing a fresh view of design every few years.

But, y’know, if you can encourage your organization not to specialize to the point of ridiculous, that’s a good idea too.