20141108_103015

I Spoke at Oredev This Year

I’ve been waiting to put this post up until the videos from my talks at Oredev were put online, but since two of the three are online, and I wasn’t sure if the third was actually going to go up, I decided to go ahead and put up the post now. I don’t speak at a lot of conferences, and …

test automation framework architecture post

Test Automation Framework Architecture

Test automation framework architecture efforts are often complete failures. It’s true. I’ve worked with many companies who have given up on creating a good test automation framework architecture, because after investing a large amount of time and money and resources in doing it the wrong way, they have incorrectly assumed the entire effort is not cost effective. In this post, …

2013-09-28_16-31-58.png

Creating an Automated Testing Framework With Selenium

I have another new course on Pluralsight, check out: Creating an Automated Testing Framework With Selenium I am very excited to finally get this course out.  Many viewers have been asking me to make a comprehensive course that actually shows you how to build a real automation framework, and I finally did it in this course. I reveal all my …

There Are Only Two Roles of Code

All code can be classified into two distinct roles; code that does work (algorithms) and code that coordinates work (coordinators). The real complexity that gets introduced into a code bases is usually directly related to the creation of classes that group together both of these roles under one roof. I’m guilty of it myself.  I would say that 90% of …

Tie Your Shoes and Pull Up Your Pants

What slows down the development of software? Think about this question for a bit.  Why is it that as most software evolves it gets harder and harder to add features and improve its structure? Why is it that tasks that would have at one point been simple are now difficult and complex? Why is it that teams that should be …

Going Backwards to Go Forwards

I worked on an interesting problem this week that might have looked like I was running around in circles if you just looked at my SVN commits. The problem, and the eventual solution, reminded me of an important part of software development—of building anything really. Sometimes you must tear it down! No really, sometimes you build a structure only to …

Wrapping Callbacks

I’ve recently had the problem of trying to display a progress dialog when executing an asynchronous operation and to dismiss that progress dialog when the operation completes. I wanted to build a way to do this that is generic to my application, so that it would work with any asynchronous operation in order to reduce duplication of writing progress dialog …

No Class is an Island

One of the biggest challenges I’ve found with any framework is to make it self-discoverable.  It is often difficult to build a framework or API in a way that users of that framework can easily know what exists and when to use what. One of the main reasons why it is difficult to write a good framework is that many …