Changes In My Development Workflow

I didn’t want to just post the typical New Year’s look-back at 2013 – so I’m doing something a little different. Although I’ve stayed away from using things like pre-processors and frameworks, I’ve noticed that my code and workflow is always naturally evolving and improving. I’ll tend to do something the same for awhile, and then all of a sudden I’ll find myself asking, “Is this right? Is there a better way to do this?”. Those questions lead to research, which usually leads to a better way of doing things.

Today I want to talk about what’s changed in 2013. What apps I’m using now, ways I learn and conventions I use to code. But let’s first take a look at what’s the same, shall we?

What’s Stayed The Same

Coda

I still use Coda 2 as my IDE of choice. I prefer the built in FTP tied to each project, and the fact I can do a split screen of code/preview when working on a static site (which is rare but still useful.

Hammer

When working on static sites that don’t need to be hosted on a server for dev (like WP sites do, I hate local installs of WP), I love using Hammer. It allows me to have a lot of “PHP-like” functionality, like header/footer templates, includes, if/else etc etc, without writing PHP, so I can hand over regular HTML files to my clients, who usually integrate them into their own systems.

WordPress

WordPress is still my CMS of choice and I’ve done everything I can to learn all of the new features each time an update comes out. My code is constantly changing in regards to writing better functions and loops. I’m now using WooCommerce almost exclusively for client’s eCommerce needs.

No Complicators

I’m still a big believer in keeping HTML and CSS as simple as possible. Therefor, I choose not to use any preprocessors or frameworks, as those take time to install and set up, are hard for non-user developers to make updates too and they include a lot of crap and unusable code. Plus I’m too OCD about my code organization to ever allow a computer to take over. I find it a sad trend lately that it’s everyone’s goal to make CSS as complicated as possible. It’s a really easy language and you shouldn’t need “helpers”, but each to their own!

Ems/Rems/Pixels

I still hate ems with a passion. It’s too much math and it’s too arbitrary. Plus inheritance is a pain and if I decide just to update the body text size, it changes *everything*, which is not way I always want. I usually code fonts in pixels, and elements in a mix of pixels and percentages if I’m doing responsive design. Once I can drop IE8 though (hopefully within the first half of 2014), I’ll definitely switch to using rems, just because it’s that much less of a headache than ems.

Browser Support

I still only support the latest browsers of Chrome, Safari and Firefox. I only support IE8-9. Mobile wise, I test in the latest versions of iOS and Android. Of course, if a client needs more than this, I’m happy to oblige for an additional fee. Browser support really depends on the individual site’s audience, and so far I haven’t had much issue with just testing in these.

My Rates

Haven’t changed these, except to go down a bit. I was getting a lot of work at my higher rate, but I realized the projects were bigger and longer, so I was getting bored and not getting paid as often. Plus I missed working with the smaller studios, so I reduced my rates back to what they were pre-2013. I probably won’t increase again until the second half of the year.

Marketcircle Billings

Although they made the mistake (IMO) of stopping native app support and doing the terrible subscription-by-client amount service, I’m going to continue using the app until it no longer works on my Mac. Hopefully, they’ll bring them back, because it was awesome. Billings lets you track invoices, deposits, estimates, etc etc and makes tax time easy peasy, especially with expenses and write-offs. (I know it’s only $10 a month, but I paid a lot for all the apps and upgrades over the year!)

VMWare Fusion

I upgrade to the latest version of Fusion, but still using it to run Windows 7 to do my IE testing on. Haven’t found anything easier to use or better for this.

Snowmint Budget

Although they haven’t updated in forever, I still think Budget is the best app for managing personal finances, especially if you have a variable income like I do (use the Pay/Deposit rules feature for this). It’s based on the awesome envelope budget system.

What’s Different

WordPress

I’ve been improving the way I integrate and write WordPress functions. Here are some of the most useful.

Including jQuery correctly
I’ve always included jQuery separately in WordPress because I could never get the default include to work for me. Having jQuery included twice never presented any issues for me, so I just ignored the problem for years (yea yea). However, I recently had some kind of version clash or something go wrong, so I finally fixed the issue (and update Hijinks with it too).

For your functions.php file:

if (!is_admin()) add_action("wp_enqueue_scripts", "my_jquery_enqueue", 11);
function my_jquery_enqueue() {
   wp_deregister_script('jquery');
   wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js", false, null);
   wp_enqueue_script('jquery');
}

Using multiple loops correctly
Yep, yep. I used to be a subscriber to using query_posts for every custom loop. That was until I got shouted at by you awesome Twitter folk and told why not to use it. Then literally right after that, I came across a major bug caused by query_posts. So now I stick to

<?php $query = new WP_Query('pagename=home'); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); ?>
	<?php the_title();?>
<?php } } wp_reset_postdata(); ?>

Multiple Languages

Ruby
I spent a month or two at the beginning of the year learning about Ruby and Rails. While I didn’t get very far, it’s improved my PHP and has helped me get my head around some more advanced back-end programming. It’s still confusing though!

PHP
I’m always trying to improve my PHP. Most of what I can write deals exclusively with WordPress. While I don’t aim to become a programmer, knowing a bit about the languages you work in is as helpful as also knowing design as a front-end developer. Very very helpful, and gets you ahead of everyone else in your competition pool.

jQuery/JS
I still stink at plain JS (it’s Greek to me), but have gotten so much better at writing jQuery now, I can almost do anything…almost. My goal in 2014 is to continue getting better so I don’t have to rely on someone else for script work.

HTML Headings

HTML headings is one of those areas that are debated and debated about, but probably in all honesty make little difference to users and the like. Here have been some of my issues.

Ordering
I’ve had designers who like to put multiple headers, in different font sizes, out of order from one another. So at first glance, a recent site I did looked like the order of headings was H2, H3, H1…which is debated as being bad practice (I can see why, as it’s supposed to be a hierarchy). So what do I do with those top headers? I started using span tags instead. Not much you can do there I think.

H1 Logos
I used to wrap H1 tags around the logos on the homepage. I’ve stopped doing this for multiple reasons. Mainly because it was a pain when I started adding styles to actual H1 text tags on sub pages (I had to go back and zero out the styles on the logo) and because the logo is an image, so an H1 tag isn’t going to help anyways (and hiding text isn’t a great practice…though I do so on image buttons).

Multi-line CSS

I used to be a big proponent of one-line CSS. To me, it was easier to read and cut the document scrolling way, way down. But I’ve recently embraced multi-line CSS, mainly because it makes it easier to work with other developers and to copy/paste from other programs or the browser inspector. This is another thing that isn’t important in the long run, but down to personal taste. I still order the actual styles in alpa order, so background, border, color, float, etc., inside of each element.

Advanced Custom Fields Plugin

I’ve stopped manually coding my custom fields and switched to ACF instead. It’s so much faster and way more powerful. Plus the UI is a lot nicer.

Responsive Workflow

Depending on the complexity of the site, I’ll either code the entire page (I still advocate Desktop Down instead of mobile first) first (in percentages) and work on decreasing the size of the browser window and fixing breakpoints and testing mobile afterwards; or for more complicated sites, I’ll go section by section. So completely code the header area and make it work responsively in all devices before moving on to the hero, or the content or the footer.

Cutting PSDs to Code

I used to pull out a notebook and completely cut out all of the images and backgrounds from a PSD all at once, and write out their name and dimensions, as well as text color and all that, to make it faster when coding the CSS. I’ve stopped doing this though, as I’ve gotten faster at going between Photoshop and Coda, and since I’ve started preferring section-by-section coding.

Personal Fonts

I’ve subscribed to the “edit don’t redesign” mantra to my own site, and have made tiny changes throughout the year. My biggest have been font choice – I switched to the Underground font (I love the London Underground) earlier this year for headings, and just recently (read 5 minutes ago) switched to Open Sans, which has a lot more white space and is much easier to read than the Droid Sans I was using previously.

Picky Projects

I’ve stopped working with, or accepting projects that require me to work on someone else’s code, framework, theme, etc. I found it too much of a hassle and always underquoted. I’m OCD about my coding conventions and organization, and now I don’t have to worry about it anymore. I also turn down any project “requiring” me to code a certain way. I believe most of my clients come to me because they love my work and trust me to be the expert in my field. Plus, a client who tells you how to do your job is likely to not be a good client anyways.

No Conferences

I stopped speaking and attending conferences this year due to both personal and professional circumstances. I started to feel like I wasn’t learning anything, the talks weren’t exciting and it was the same people over and over. I stopped speaking because I would put tons and tons of hours into a 45 minute talk, to be paid nothing or very little for it, and to have attracted a lot of hateful people because of it.

No Books, Podcasts or Distractions

It seems this year I’ve really taken a step back from the industry in everything but work itself. I actually missed working with clients! I stopped writing the book I had a publisher for, as well as cancelled my speaking engagements because of a personal tragedy and an emergency move back to the states. I stopped buying industry books because I wasn’t learning anything new, but just reading the same stuff over and over. I stopped listening to podcasts as well, because not only did I not have enough time to listen to them, I wasn’t learning anything either.

I’m also finding it a trend to push one’s practices on to another, which is another reason I’ve stepped back from following or listening to anyone else. Hearing new ideas is cool, but listening to bad ideas being paraded around like rules because an industry leader says so is something entirely different and off-putting. Plus, I simply got tired of all the industry drama and decided to just focus on work and clients.

So what’s for 2014?

I’m not entirely sure what my plans are for 2014, because I feel like I’m still trying to catch up from the “big move” from London. I definitely will continue focusing on client work, but I’m also itching to do another side project, as the ones I had finally died a slow death. The hard part comes from figuring out ideas when you’re so busy with work and home stuff!