pivotallabs.com Archives - 23 April 2013, Tuesday

Sr. IT Support Engineer San Francisco A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve ...

I’m writing Selenium tests again, which means a lot of XPath. Here’s a trick I learned thanks to this article on Push Button Paradise. The problem is, how do you write XPath that matches one class in a multi-class element like <div class='foo bar'> ? The standard XPath equality operat...

If you don’t measure it, you can’t optimize it. Coda Hale of Yammer talks about service-level performance metrics, how they use them to guide their development strategy, and how you can improve the transparency of your own software.

Sencha Touch 2.1 has a generator built into its sencha command line tool, but it does not create a test structure as part of the template. This article is the first in a series of discoveries about how to test Sencha Touch applications. I am not claiming that this is the one true way ...

Related:

REST principles by default is a fantastic convention within Rails applications. The documentation for how to route HTTP requests are comprehensive and give examples about photo resources within an application. If you’ve got photo and tag as first class resources of your application, R...

I took a day off of work recently, and learned more about what I was working on than in several months of coding. My current Pivotal client project is CaseCommons , using web technology to modernize child welfare and foster care so social workers can spend more time with kids and fami...

I recently started building a Rails 3 app that will function as an internal REST service. I wanted it to be as lightweight and fast as possible, both to test and to run. Here are a few ways I configured the app to be a bit faster: Defined a limited route set Removed ActiveResource Rem...

Flexible plans executed via iterative development are at the core of Agile : Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. This is great for figuring out what to build, but all this flexibility can mak...

(Update 07/17/2012: Added link to Pair Programming Matrix Google Doc ) At Pivotal Labs we consider ourselves to be expert pair programmers, but sometimes even we need help. We identified (thanks to a retrospective ) that we were being very unbalanced in our pairings: some developers s...

If you had a billion dollars, would you write another line of code? Three years ago, I quit my Rails consulting gig, bought a VW Bus and started traveling. I thought, if I was independently wealthy I would spend my life traveling, climbing and surfing. I loved that life. I was living ...

I solved the copy/paste from `tmux` sessions over `SSH` by using X as a transport, and the [`xsel`](http://www.kfish.org/software/xsel/ ) command to put the `tmux` buffer into the X clipboard. Please note that you need `X11Forwarding on` in your `~/.ssh/config` file, X11 open on your ...

I was pretty interested in refinements in Ruby 2.0, and after listening to the latest Ruby Rouges podcast where some serious doubts were raised about the viability of refinements I thought I’d build a little example of how I was thinking I could use it. I failed first time out and I t...

Terminal text editors often allow you to navigate in terms of basic text objects, such as, characters, words, or lines. For maximum speed, the commands for these simple navigations are usually available on home row keys; so you don’t have to use the arrow keys. Unfortunately in RubyMi...

Related:

This is a followup post to Testing accessibility with RSpec and Capybara , in which I explored strategies for automated testing of skip navigation links . We needed to provide a way to skip repetitive navigation, in line with part (o) of the Section 508 accessibility standards , and w...

I asked my pair on my first day here at Pivotal. That’s on purpose. A user story is a promise to have a conversation. When we start a story, we’ll have a discussion with the client to fill in the details. Ok. So we’ll just ping them on Skype or something? No. They’re sitting at the de...

Related:

Software development has been revolutionized by Agile development practices, but designers struggle to adapt to the very same techniques—despite suffering many of the same challenges that led to Agile. What exactly are these problems? And how can Agilists and designers address them? W...

In order to make day to day development easier, and to avoid the “where do migrations live…” conversation and top level Rails deployment patterns, there is one twist to the architecture: everything resides in one git repo and engines are referenced from a single container application ...

As a feature story progresses through the Tracker workflow, a lot of testing activities are also underway. Team members are collaborating to turn examples of desired behaviors into business-facing tests that guide development. Testers are performing manual exploratory testing on stori...

Related:

I’m going to take a break from my blog posts on metrics, and was thinking I’d focus more on process. An Iteration Planning Meeting (IPM) is core to an agile process and provides the opportunity for the product owner(s) to communicate the vision for the upcoming Iteration. I’ve sat in ...

Related:

For my first blog post at Pivotal, I decided to pick a small topic that I am pretty confident about: why to structure your SASS files with the @import rule. If you are still using Sprockets directives in Asset Pipeline to combine your SASS files, I highly recommend to switching over t...

Simple BDD is a way to bring structured natural language BDD syntax into any test framework, but why is this necessary? Have you ever looked back a test you wrote several months ago, or even the several hours ago and wondered what you were thinking and what you were trying to achieve?...

Related:

This is the third and final part in a series I’m writing about lessons that can be learned from functional programming. Find the first part here and the slightly inflammatory second part here . So, long story short. This series of posts was not intended to be a diatribe against all fo...

A small number of projects here in New York have adopted my extremely simple behaviour driven development library, SimpleBDD, and I thought I’d share some of the emerging patterns those teams have developed while using it. SimpleBDD, is a way of using a Gherkin like specification lang...

Rapid wire-framing: Coming up with 12 design ideas in 5 min Ofri Afek Monday, January 28, 2013 Kim Dowd, Jake Burton-Denmark and I have been working together on a project for the last few months. Throughout the project we’ve adopted and iterated on the following sketching technique (c...

Related:

As a recognized leader in highly disciplined agile software development practices, Pivotal Labs has been building high reliability software for over 20 years. We build consumer and enterprise web and mobile applications for global clients, and have a growing practice building applicat...

Related:

As a recognized leader in highly disciplined agile software development practices, Pivotal Labs has been building high reliability software for over 20 years. We build consumer and enterprise web and mobile applications for global clients, and have a growing practice building applicat...

Related:

Now, there’s been a lot of talk for a long time about so-called “pseudo-classical” JavaScript. Mostly, the new guard of JavaScript folk don’t like to use the new keyword. It was written into the language to act more like Java, and its use is a little confusing. I’m not going to take s...

[SF][Standup] 09/19/12: ActiveAdmin vs. RailsAdmin… Arrrggg! Tyler Schultz Wednesday, September 19, 2012 Interestings ActiveAdmin after_save If you are using ActiveAdmin, beware that the after_save callback gets fired both when the model gets saved, and when there are validation error...

Ian McFarland, Principal and VP of Technology for Pivotal Labs, reprises his popular RailsConf 2010 talk. Ian describes the technical and social aspects of how Pivotal practices agile software development.