Introducing: Taupecat Studios

I’m thrilled to announce that I’m diving into the independent developer market full-bore with the launch of Taupecat Studios.

I’m calling it “the brand-new digital agency with the long history of success.” After more than twenty years in the industry, and working for such luminary brands as Marriott International, Discovery Communications, and Long & Foster Real Estate, I knew I would be able to add value to a brand new roster of clients under my own banner.

Look for more details on this venture to come in the future, including some awesome client announcements.

Taupecat Studios is starting off small, but I have big plans. Let’s get to work!

My WordCamp US Wishlist

Inspired by Liam Dempsey’s post, I thought I, too, should write about what I’m looking forward to most about WordCamp US, now that it’s less than one week away.

Friends, Friends, Friends

WordCamp US is the largest annual gathering of WordPress professionals and practitioners in the world. I’m so fortunate that I’ve become involved in such an inclusive, welcoming, and helpful community. This is likely the only time this year I’ll get to see some of my best WordPress friends like Tracy Levesque, Mika Epstein, Brad Williams, and so many, many more. Expect a big freaking hug from me, folks!

Opportunities

This year, especially, as I’m trying to find my next career move, WordCamp US couldn’t come at a better time. It would be a fallacy to deny that WordCamp US is an enormous networking opportunity, with the best of the best in the WordPress community available to chat, share a drink, share a meal, or just get to know better. Again, the helpfulness and inclusiveness I mentioned above can be almost overwhelming.

Deep Knowledge

Oh yeah, there’s the sessions, too! While I was extremely fortunate to speak at last year’s inaugural WordCamp US, this year I get to sit back, relax, and absorb the knowledge that others are sharing. Lately, I’ve been trying to “go outside my comfort zone” when attending WordCamp talks, and I expect the trend to continue here. Instead of focusing on just developer-centric talks (okay, yes, I still intend to go to Nacin’s; that’s required viewing despite the lack of description), I want to attend more talks based on contentdesign, and other topics of which I know very little.

What are you looking forward to about this year’s WordCamp US? Let me know in the comments.

And if you don’t have your tickets yet, hurry! Time is running out.

Musings from Someone Discovering PostCSS

I originally wrote this piece about PostCSS as an internal post for my team at RP3 Agency, but I believe it might have relevance for front-end developers everywhere.

The new hotness in the CSS world is something called “PostCSS”, which I haven’t completely figured out yet but am getting there. Basically, things that happen after your Sass (or whatever) is done and has created a true CSS file go into this ecosystem. Think autoprefixer (for automatically entering browser vendor prefixes) and minification. (There’s even a school of thought that says this kind of thing can completely replace Sass, but I am so not there yet…)

In trying to bring a two-year-old project up to modern standards (the original project used things like Grunt which we don’t use anymore, having switched to Gulp), I’ve been trying to learn how to do things the “right” way.

So here’s the Gulp “styles” task I’ve come up with:

var gulp = require( 'gulp' ),
    sass = require( 'gulp-sass' ),
    rename = require( 'gulp-rename' ),
    plumber = require( 'gulp-plumber' ),
    gutil = require( 'gulp-util' ),
    sourcemaps = require( 'gulp-sourcemaps' ),
    postcss = require( 'gulp-postcss' ),
    autoprefixer = require( 'autoprefixer' ),
    csswring = require( 'csswring' ),
    del = require( 'del' ),
    concat = require( 'gulp-concat' ),
    uglify = require( 'gulp-uglify' ),
    connect = require( 'gulp-connect' );

gulp.task( 'styles', function() {

  gulp.src( __dirname + '/src/scss/*.scss' )
  .pipe( sourcemaps.init() )
  .pipe( plumber( function( err ) {
   gutil.beep();
   var errorText = err.message + '\n\n' + err.source;
   gutil.log( gutil.colors.red( errorText ) );
  } ) )
  .pipe( sass.sync() )
  .pipe( rename( function( path ) { path.extname = '.css' } ) )
  .pipe( postcss( [ autoprefixer( {
   browsers: [ 'last 2 versions', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4' ]
  } ), csswring() ] ) )
  .pipe( rename( function( path ) { path.extname = '.min.css' } ) )
  .pipe( sourcemaps.write( '.' ) )
  .pipe( gulp.dest( __dirname + '/dist/css/' ) )
  .pipe( connect.reload() );

} );

“autoprefixer” and “csswring” are plugins to PostCSS. I’m processing my Sass into CSS using “gulp-sass”, and then using PostCSS to do the autoprefixing and minification (in a sourcemap-friendly way, and that’s important as I’ll get to in a sec).

But I’ve come across a downside to this new flow. In the past I’ve written out two versions of the finished CSS file: an “expanded” one that’s more or less human readable for our development environments, and a minified version for production. In WordPress, for example, it’s easy to tell the theme which one to use and when based on whether we have debugging turned on or not.

But “csswring” was choking when trying to minify a CSS file that had a sourcemap, regardless of whether the sourcemap was inline or external. So if you’ll notice in this gulp task, the “expanded” CSS file never gets written out; the pipe goes directly from Sass file to minified CSS. But the sourcemap is written for the minified CSS, so if you’re working in Chrome, you can see where your property is being written in the Sass, like in this screenshot:

Screenshot of my project, demonstrating how sourcemaps are working on minified CSS.

It’s not a result that I’m 100% comfortable with, but I’m learning to stop worrying and love the minification. However, I’m wondering how this will fly in production. From one sense, there’s a certain amount of front-end civic responsibility in letting other developers see the source Sass you actually wrote, rather than just the processed and minified CSS that a computer crunched out. On the other hand, 99.9999% of your audience wouldn’t give one shit about that, so is the browser pulling down a sourcemap file that’s actually twice as large as the actual CSS file? Something else to figure out…

 

The Case for WordPress Certification

In the realm of digital and creative agencies that work with WordPress as their primary platform, there are a few major players whose names keep coming up time and time again. Their employees and affiliates show up at every WordCamp (often as speakers and organizers), they have notable core and lead developers on their staff, and whenever major news happens in the WordPress world—such as a high-profile launch of a major website running WordPress—the same few agency names are often behind it.

However, there are hundreds of smaller agencies and individual developers out there who are also using WordPress in their businesses, but not necessarily at the core of their business. Agencies may develop in WordPress where it makes sense for a particular project, but work with other platforms on others.

What ends up happening is that potential clients, looking for a qualified WordPress developer, either go to one of the big “names” almost out of default, or else sign with an agency or individual without a way of being certain whether that individual is truly an expert in WordPress site development.

To this point, often the only “credentials” an agency can offer to assert its expertise is having a WordPress core contributor on staff, or participating in the “Five for the Future” program (in itself, an “unofficial” endeavor which has its own issues, as noted below). Many agencies and individuals can bill themselves as “Wordpress” [sic] experts, but there’s no official way of vetting actual experience in a way that approaches an industry standard.

Articles Addressing This Topic

Organizations Offering “WordPress Certification”

Something called the “National Website Certification Council” offers a WordPress certification. This is not sanctioned by any organization closely affiliated with WordPress (Automattic, The WordPress Foundation, etc.), yet comes up high in Google searches for “WordPress professional certification”.

ExpertRating—who bill themselves as “Leaders in Online Certification Training & Employee Testing”—offer a WordPress test. Their description of such is somewhat misleading and can be confused into construing that this test follows ISO standards. The test offered is a 40 question multiple choice, and they charge $9.99 to take it.

There are others as well, offered by profit-driven companies that offer these certifications in conjunction with their own training programs.

“The WordPress Foundation”

Unlike other platform foundations and organizations (a few of which I’ll mention below), the WordPress Foundation is not open to membership. Rather, it exists primarily to defend the WordPress trademarks and to promote the goals of the GPL under which it is licensed.

Debate Points

  • Automattic is not officially aligned with the WordPress community. However, it is the de facto authority in the respect that it runs and maintains WordPress.com, the company was founded by the co-founder of WordPress, has built a multi-million U.S. dollar business with WordPress code as its foundation, and many of the employees at Automattic are core contributors, core developers, development leads, and core committers to WordPress and other WordPress-related projects (Jetpack, _s, etc.).
  • As an open source project, there is no “governing body” that oversees development. However, there are recognized core and lead developers, and the annual community summit which serves in the capacity of a steering committee.

How Other CMSes Handle This

Many commercial CMSes offer partnership programs which serve to benefit the platform (partners will tend to sell more implementations of the CMS when there is financial incentive for them to do so) and the partner agencies (the platform will direct potential customers to their preferred partners). Sitecore, Percussion, Adobe Experience Manager, and TeamSite (to name some CMS examples), all offer some sort of certification and/or partnership program.

How Other Open Source Projects Handle This

Open source projects rarely exist in a vacuum. They often have the backing of private companies that take on a “shepherding” role of the project. (In the WordPress community, Automattic is often associated with fulfilling this role, as noted above.) Zend calls itself the “PHP company” for its leadership role in that community. Part of Zend’s business is to offer training and certification in PHP software development.

jQuery has the jQuery Foundation which serves as a means of supporting the project’s various sub-projects, providing funds for documentation, and generally advancing the cause of open source and JavaScript. Foundation membership can be either individual or corporate, and corporate membership can fall into one of four tiers: silver, gold, platinum, and diamond. WordPress is a diamond-level jQuery Foundation member.

Drupal and Joomla!

Drupal and Joomla! are projects of special significance since they are the closest “cousins” to WordPress in that both are PHP/MySQL-based open source CMSes. Drupal has the Drupal Association which offers individual and organizational memberships, much like jQuery does. From the project’s perspective, its “mission is to foster and support the Drupal community by maintaining Drupal.org software and infrastructure…”. However, individuals and organizations that join the association can use that as a marketing tool to show their commitment to the platform to prospective clients. To further that end, membership badges are available for display on members’ collateral, and members are listed in the Drupal Association Annual Report.

Joomla! has a certification project with the stated purposes:

  • Establish a standard
  • Ensure competence and develop a qualified workforce
  • Provide a documented measure of knowledge
  • Offer guidance on choosing a Joomla! service provider.

It’s again important to note that marketing an agency as a Joomla! expert is part of the rationale for this certification. The project itself does not offer certifications directly, but provides a structure for how other organizations can provide recognized certifications of their own to others. This project does not appear to be fully implemented, and it’s unclear from the website how long this project has existed in its current, unfinished, state.

Unofficial Efforts Within the WordPress Community

While there is no official certification process in WordPress, nor a publicly-joinable association, there are some small steps in that direction available through the more closely-aligned WordPress community groups and individuals.

Matt Mullenweg has advocated a “Five for the Future” program, where in companies who derive a substantial portion of their earnings from WordPress should dedicate 5% of their resources to working on core projects. Unfortunately, most organizations don’t have the resources to dedicate 5% of their workforce full-time to WordPress, or any other single open source project. For RP3 Agency, for example, 5% would equate to about one and a half people, and really the only candidates for this would come from our Creative Technology team, so you’re looking at using nearly a third of our six-person CT department at something other than billable work and internal projects. It’s a commitment we simply can’t afford. Ben Metcalf posted a rebuttal that spells out this argument further.

While not offering “certification” per se, the WordPress Developers Club bills itself as an organization that “actively teaches, advocates, and promotes excellence in WordPress Software Development.” (Emphasis theirs.) Code Poet offers a quiz which, when completed, posts the scores of those who’ve taken it.

Conclusion

Without an “officially sanctioned” means of establishing WordPress developer credentials, a void exists. Into this void are other operations offering their “WordPress certification” programs, but with no watchdog controlling the quality, there is no way to assess whether developers and agencies that achieve these certifications are truly knowledgeable about building sites with WordPress.

I feel that a certification process, subject to scrutiny and standards, would benefit those that seek these credentials for their professional goals, as well as the overall WordPress community by further supporting the developers who continue to drive the platform’s adoption around the world.

Front-End Architect

At last year’s CSS Dev Conf, one of the more outstanding presentations I saw was Micah Godbolt’s “Raising a Banner for the Front-End Architect.” It was a powerful and motivational piece that aimed to bring recognition to the fact that front end development is development, and that as a discipline, front end development is every bit as nuanced and challenging as any other aspect of development. Even before the talk had ended, I changed my Twitter profile to include “Front-End Architect,” not as a job title, but more as a complete description of my role on our team at RP3 Agency.

Today, “Front-End Architect” officially became my job title. After recent and long-standing bouts of self-doubt (am I too old? am I too female? am I too front-end focused to be considered a “real” developer?), I see this redefinition of my position as something of a validation that front-end architecture is as vital to the process of bringing a website to life as the application or system architecture.

Development is not limited to Java, or PHP, or Node.js. Despite the options in a Stack Overflow survey, specializing in Sass and CSS is just as crucial to the development of a successful website as any other part of it. Even if what you code can only be executed in a browser and not on a linux server, without it websites would be nothing, would look like nothing, and the whole web would still look like this.

I’m also, by terms of skillsets, a full-stack developer. I not only code in Sass and front-end JavaScript, but in PHP building WordPress themes and plugins. But throughout my career, my heart has been in the code that has made it to the browser—HTML, CSS, and JavaScript—and while I’m stronger in some sides of that triangle than I am in the other, it’s still a complete, complex, and challenging discipline that has languished in its own imposter syndrome for far too long.