Pivotal Labs

Main menu

Skip to primary content
Skip to secondary content
  • About
  • Case Studies
  • Team
    • Executives
    • Locations
      • San Francisco (HQ)
      • Boston
      • Boulder
      • Denver
      • London
      • Los Angeles
      • New York
  • Community
    • Blogs
    • Tech Talks
    • Events
  • Careers
    • Lifestyle
    • Principles & Practices
    • Benefits
    • FAQ
    • Apply
  • Contact
    • Press Room
    • Press Releases
    • In The News
    • Press Kit
  • All
  • Labs
  • Standup
  • Tracker
Dmitriy Kalinin

[standup] [sf] 03/27/13: Metro DC

Dmitriy Kalinin
Wednesday, March 27, 2013

Helps

Sinatra Logger

We have a Sinatra app mounted on Rails. If we raise an error in the Sinatra app, it doesn’t show anywhere. Can we attach the Rails logger somehow?

Interestings

Code Climate Blog: Rails Insecure Defaults

http://blog.codeclimate.com/blog/2013/03/27/rails-insecure-defaults/

Rubymine 5.4 EAP: Rails 4, JRuby Nailgun support, and a feature requested by pivotallabs!

Check out the release announcement here: http://blog.jetbrains.com/ruby/2013/03/rubymine-ichii-early-access-is-open/

This release also includes a small feature requested by the CloudPlanner team here at Pivotal Labs! When you create a new localization property from a view, the dialog will now default your localization file to the last one used: http://youtrack.jetbrains.com/issue/RUBY-13368

Thanks to the two Pivots who up voted our feature requests (Ken Mayer and Justin Richard)! And if you never got around to up voting our team’s RubyMine feature requests, please do so now! It only takes a sec:

http://youtrack.jetbrains.com/issue/RUBY-13332
http://youtrack.jetbrains.com/issue/RUBY-13341
http://youtrack.jetbrains.com/issue/RUBY-13327
http://youtrack.jetbrains.com/issue/RUBY-13326
http://youtrack.jetbrains.com/issue/RUBY-13366
http://youtrack.jetbrains.com/issue/RUBY-13374

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Luke Winikates

[Standup][SF] Upgrade your Rubies

Luke Winikates
Tuesday, March 26, 2013

Interestings

Ruby 1.8.7 end of life – No security fixes after June

More here: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/47201

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Dmitriy Kalinin

[standup] [sf] 03/25/13: Zvezdochka

Dmitriy Kalinin
Monday, March 25, 2013

Interestings

.ruby-version (& .ruby-gemset)

The community appears to be converging on .ruby-version as a standard way to convey a project’s Ruby version. This as opposed to .rvmrc or .rbenv

If you use RVM you can also use .ruby-gemset to specify a gemset.

See https://gist.github.com/fnichol/1912050 for more info.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jared Carroll

Why are all the Stories in Pivotal Tracker Missing Descriptions?

Jared Carroll
Sunday, March 24, 2013

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 desk right over there.

The Onsite Customer

In XP, the onsite customer is a domain expert that is part of the development team. Their responsibility is to answer questions, resolve disputes, and set small-scale priorities [1].

In past projects, contacting a client involved emails, IMs, or phone calls. My stories needed detailed descriptions. Description-less stories risked building the wrong thing. So I labeled them “blocked”, and project velocity suffered.

Benefits of having an Onsite Customer

In my current project, having an onsite customer has made a huge impact.

Eliminating story descriptions has simplified iteration planning meetings. Just write down a short title and move on. Discuss the details later.

Constant client communication has helped avoid misunderstandings. Not once has a pair built the wrong thing. Developer time isn’t wasted.

Delivered stories rarely go untested for longer than an hour. A quicker turnaround has shortened system feedback time.

Get Serious About Succeeding

An onsite customer was one XP practice that was missing from my past projects. What client would be willing to give up one of their full-time employees? After four weeks of working on a team with an onsite customer, to me, the answer is clear: a client that wants their product to succeed.

[1] Kent Beck, Extreme Programming Explained: Embrace Change (Addison-Wesley Professional, 2000), 60.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
David Stevenson

03/13/13: [SF] Use postgres!

David Stevenson
Wednesday, March 13, 2013

Helps

eager-loading nested polymorphic associations

We have a controller action that performs n+1 queries to present associated models as nested hashes. The typical solution is to use :include to eager-load associations. Unfortunately, the models are related polymorphically, and :include can’t eager-load nested polymorphic associations. What can we do?

Interestings

Use postgres!

Because in rails it automatically puts a transaction around for DDL statements and rolls them back when things don’t work. Fixing this in mysql can be a huge pain.
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Can Berk Güder

[Standup][SF] 03/08/13: See-borg

Can Berk Güder
Friday, March 8, 2013

Helps

Mocking XHRs in Capybara

How do you mock AJAX requests in Capybara tests?

Suggestions:

  • Execute Javascript on the page before the test
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Can Berk Güder

03/06/13: It’s Red Day

Can Berk Güder
Wednesday, March 6, 2013

Helps

New column shows up as the wrong type on Heroku

We created a new migration that added a non-string column. After pushing to heroku and running the migration, the column shows up as string.

Suggestions:

  • you should restart your heroku app after every migration.
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Can Berk Güder

03/04/13: Singleton Process

Can Berk Güder
Monday, March 4, 2013

Interestings

github/singleton_process

Ensures that a given process is only running once. Keeps scheduled tasks from overlapping. Uses lock PID files. https://github.com/rjackson/singleton_process

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Kris Kelly

Gemnasium offers you Security/Steroids

Kris Kelly
Tuesday, February 26, 2013

Interestings

Security on Steroids

The list of security monitoring services continues to grow. In addition to the holepicker gem and the private beta code climate service, Gemnasium is now offering "Security on Steroids."

http://sendgrid.com/wf/webmail?rp=ZTI1bGQzTnNaWFIwWlhKZmFXUTZNVEl6TkN4MWMyVnlYMmxrT2pJMU5qVTBmUWV5SnVaWGR6YkdWMGRHVnlYMmxrSWpvaU1USXdOamc1TUNJc0ltNWxkM05zWlhSMFpYSmZkWE5sY2w5cFpDSTZNVFV3TVRneE1EZzNOREo5

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jonathan Berger

3 Challenges for Agile Design

Jonathan Berger
Monday, February 25, 2013

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?

When is Design Done?

Agile development preaches “Done means Done”. When a story is accepted by the Product Owner, it’s ready to be deployed out into the world. What does “done” mean for design? Automated testing guarantees that on every story, developers will enjoy Acceptance Criteria: a concrete measure of what counts as “done”. Designers, on the other hand, rely on subjective criteria to determine when they’re done. In the best case, this means the product team—or often, the designer working alone—if only they had a partner to pair with! In the worst case this is purely subjective sign-off from the client. While agile developers have access to tools like velocity to plan their work, designers have structural difficulties in estimation, and are consequently less able to plan. Consequently, questions like “when will that feature be done?” are more easily answered by a developer than a designer. That’s not because designers are less responsible than developers. It’s because it’s harder to know when you’re done with design—but that’s of little comfort to anyone who needs to budget time and resources to manage the project. Because Acceptance Criteria—or an answer to the question “what does ‘done’ mean?”—for design is in different units of work than “done” for development, there’s an impedance mismatch in coordinating between the two. Breaking design into units of work with more discrete Acceptance Criteria helps coordinate design work with development work.

What’s Wrong with the Deliverables Business?

Agile Developers ultimately deliver user-facing code, but designers output thinking: solutions to design problems, traditionally expressed via mock-ups or assets. How should the two interact? Should design stay an iteration ahead of development? What does it mean when a developer discovers an interaction problem in a design they’re implementing? Should they stop work? Developers are the tip of the spear when it comes to experience design: in the process of building software, they’re often the first people ever to use it. Sometimes this means they uncover interactions on UX problems that the designers didn’t anticipate. If the necessary design changes cascade into other work, what should the designer do: stop work and refactor (and fall behind), or come back to it later?

Furthermore, it can be difficult to determine how much design is required for developers to complete their work. The best design deliverable is the Simplest Thing That Can Possibly Communicate the Design Solution, and this can vary from team to team and design problem to design problem. Under ideal circumstances, an experienced designer may be able to reasonably estimate how long it will take to 1) solve the design problem, 2) communicate the solution, and 3) iterate on the problem / solution once it’s usable and testable as working software. But. BUT! That’s asking a lot. And it absolutely shreds the question “how far ahead should design stay of development?”.

Why do Designers Feel Unwelcome in Agile?

Let’s take stock: we’ve got gallant developers, accurately estimating stories and delivering working software, and the goofus designers, unable to tell you what they’re doing or when they’ll be done. Knowing “how much design is enough?” is hard. Knowing how much design to start with is hard. Reared in a culture that prizes individuality, that venerates Rock Star Designers, that applauds Working On It Til Its Done, that publicly shreds less-than-perfect work in Crit as a rite of passage, that (with the occasional exception) is alien to the notion of sustainable development—it shouldn’t be surprising that designers are uncomfortable. That starts to lead to discord on the team: designers hating agile; feeling rushed, feeling like they don’t get the benefit of iterative design; feeling that once they touch something, they don’t get to go back and refactor it. Let’s throw in a bit of rah-rah agile ideology, a few jargon-y IPMs and retros, promises that “we’ll come back and refactor that later”, and the creeping suspicion that this whole Agile thing is nothing but smoke, mirrors, and Kool-Ade. Is it any wonder that designers can be hostile to agile?

What can we do? Looking to the example that Agile Development sets, we can see several concepts that may help: Acceptance Criteria-delimited design stories. Meaningful estimation of work for design. A culture that values Sustainable Pace. Translating these ideas from development to design may do more than just help designers work more comfortably in Agile environments—it may help us practice better design.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter

Topics

  • agile (778)
  • rails (113)
  • testing (86)
  • ruby (83)
  • ruby on rails (70)
  • jobs (62)
  • javascript (54)
  • techtalk (44)
  • rspec (38)
  • activerecord (29)
  • productivity (29)
  • gogaruco (29)
  • ironblogger (29)
  • git (28)
  • nyc (27)
  • rubymine (25)
  • mobile (22)
  • bloggerdome (20)
  • cucumber (20)
  • process (19)
  • pivotal tracker (19)
  • jasmine (19)
  • design (18)
  • ios (18)
  • webos (17)
  • objective-c (17)
  • android (16)
  • palm (16)
  • "soft" ware (16)
  • fun (15)
  • tracker ecosystem (15)
  • ci (15)
  • cedar (15)
  • rails3 (14)
  • performance (14)
  • bdd (14)
  • gem (13)
  • selenium (12)
  • css (12)
  • goruco (12)
  • bundler (12)
  • tdd (12)
  • meetup (11)
  • railsconf (11)
  • nyc-standup (11)
  • capybara (10)
  • mac (10)
  • mojo (10)
  • chef (10)
  • rubygems (9)
Subscribe to agile Feed
  1. ←
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. ...
  10. 78
  11. →
  • About
  • Case Studies
  • Team
  • Community
  • Careers
  • Contact
  • Labs
  • Events

Contact Us

contact@pivotallabs.com
+1 415-77-PIVOT
TwitterLinkedInFacebook

Pivotal Tracker

Tracker is the award-winning agile project management tool that enables real-time collaboration around a shared, prioritized backlog.
Visit pivotaltracker.com >