Researching Best Practices and Standards
How do you figure out what to do to approach a problem? How do you know that your idea for a solution is not missing something obvious? How do you confidently tell your users and stakeholders that what you've built is as good as this sort of thing is likely to get these days?
The answer to all these questions is: Best Practices and Standards.
If you've done your homework and you have figured out the best practices and standards that apply to the work you're doing, then you can reflect on your work to see where you are meeting, exceeding, or purposefully deviating from established best practices or defined standards.
And realize that working in web development means having a somewhat intimate relationship with the development of these standards. Large groups of very talented developers are building new features that will become standardized over time, and although the official approval process can be very, very lengthy, the actual implementation of a new standard may well precede actual adoption and ratification.
So, how do we go about figuring things out?
Tips for Researching Best Practices and Standards
There is no single way to discover that you're "doing it right" or that you have not overlooked some crucial details in planning a specific feature or component. But if you follow some basic suggestions, then you can have an idea that you're probably not forgetting anything hugely crucial. Ultimately you'll have to get validation by sharing your approach with your peers, whether colleagues you work with or developers you interact with in the broader developer community.
Start with the big stuff
Make sure you're familiar with the basic standards set forth by the W3C. It's important to at least know which ones exist, and although it may be impossible to have exhaustive familiarity with the standards documents, it's helpful to have at least a few standards that you're familiar with. Obviously HTML, CSS, Javascript and Accessibility are very useful standards for web developers to know about.
You might also be using development tools or technologies that require compliance with specific standards. For example, if you are working with a REST-based API then it would be helpful to be aware of the Javascript Web API Standards. You want to be aware of how things are generally working together when working with a given set of technology tools (often called a "stack" in web terms).
If you're in an educational, non-profit (or otherwise grant-based), or government organization then Accessibility may also be a legal standard you must meet. The Section 508 amendment to the Rehabilitation Act dictates a level of government accessibility compliance that is enforced for most projects making use of government funds. It's helpful to be aware of standards in your specific domain.
Major standards-making organizations in the field of web/software development:
Major non-W3C standards you should know about:
- Children's Online Privacy Protection Act (COPPA)
- CAN-SPAM Act
- http://www.section508.gov/
- Family Educational Rights and Privacy Act (FERPA) (some guidelines for educational website developers can be found here)
Keep in mind that this list is very US-centric. If you are developing websites for organizations based in other countries, they may have their own governmental regulations and standards that apply. (For example, in the European Union any website that uses cookies must disclose that directly to their users, which is why if you visit a European website you will usually see a pop-up alerting you to the fact that the site makes use of cookies. This is known as "The Cookie Law" and has been in place since 2011. American sites don't need to alert users to their usage of cookies, although most US-based sites describe how cookies are used in their Privacy Policies and Terms of Service where relevant.)
Keep up with current events
There are many outlets covering news for web developers and blogs from developers who share their immense knowledge on a regular basis. Sites come along that track specific packages or standards, and others maintain a broad-based coverage of new standard development and support. These sites are very valuable and often write articles comparing the pros and cons of different techniques. And let's face it, the source documents are not easy or engaging to read. For many uses, it's handier to have a more accessible explanation of standards and best practices.
Stuff your feed reader with some of these sites, and then consult them when you're working through problems. Even when approaching problems you have solved before, it's worth it to consult the web for new ideas about how to improve on previous versions. Taking the opportunity to evolve our approach to similar problems over time is part of what allows the web to grow so dynamically.
Here are some good sites to check for information about standards, best practices and general evolution of technique:
- http://www.html5rocks.com/
- http://css-tricks.com/
- http://alistapart.com/
- https://news.ycombinator.com
Doublecheck technical requirements
Before settling in on a single approach, make sure you've done your homework. Did an article convince you that the latest CSS3 technique would be supported back to IE8? That probably wasn't true. Use tools to doublecheck capabilities and dependencies. If you identify a problem with a target technology combination, then at least you can address it directly rather than having it crop up as a bug in the middle of development.
Here are some helpful tools/sites for checking requirements and capabilities: