Wednesday, September 30, 2009

New in Edge Rails

I was watching the rails commits and noticed this. They have just added something called orchestra to ActiveSupport. It is an instrumentation tool for ruby and rails. Below is the documentation from orchestra.rb.

Orchestra provides an instrumentation API for Ruby. To instrument an action
# in Ruby you just need to:
#
# ActiveSupport::Orchestra.instrument(:render, :extra => :information) do
# render :text => "Foo"
# end
#
# Those actions are consumed by listeners. A listener is anything that responds
# to push. You can even register an array:
#
# @listener = []
# ActiveSupport::Orchestra.register @listener
#
# ActiveSupport::Orchestra.instrument(:render, :extra => :information) do
# render :text => "Foo"
# end
#
# event #=> ActiveSupport::Orchestra::Event
# event.name #=> :render
# event.duration #=> 10 (in miliseconds)
# event.result #=> "Foo"
# event.payload #=> { :extra => :information }
#
# Orchestra ships with a default listener implementation which puts events in
# a stream and consume them in a Thread. This implementation is thread safe
# and is available at ActiveSupport::Orchestra::Listener.
#

Ruby Enterprise Edition version 1.8.7 has just been released you can download it here.

Check out this blog about an alternative to AutoTest called Watchr

Saturday, September 19, 2009

From Scrum to Kanban Part 1

Scrum has become the most widely accepted agile development methodology throughout industry. As it has gained popularity teams are analyzing the pros and cons of Scrum.

With the help of Mary and Tom Poppendieck's Lean Software Development, my team As my identified the following deficiencies in Scrum:
* WAITING
* PARTIALLY DONE WORK
* TASK SWITCHING
* EXTRA PROCESSES

WAITING
Our team had a two week development sprint ending on Thursdays. On the Wednesday prior to the sprint end date we would have a code freeze. Thursdays were used to test the code and Friday's were spent demoing the product and planning for the next sprint.

In theory this sounds great. But in practice I found software developers are not great testers. Developers found themselves sitting on their hands WASTING most of this time WAITING for new coding tasks.

PARTIALLY DONE WORK
Throughout each sprint our team would have many tasks in the "In Progress" section of our task board. Each task would be 80% done, but NONE of them would be 100% done.

TASK SWITCHING
Since we had a lot of work "In Progress" team members were constantly working multiple items at once. A lot of time was wasted while a developer would switch from one task to another. Each task switch required the developer to recall what the task inquired and re-learning the code during each switch.

EXTRA PROCESS
Each developer had a different definition of what it meant to be DONE. We found inconsistencies in the steps each developer took to complete a task. Some steps were not needed.


KANBAN
As we researched how to solve these issues we stumbled upon Kanban. Kanban is a lean software development methodology that helped us address the issues described above.

In subsequent posts I will describe Kanban in more detail and how we went from Scrum to Scrumban (a Scrum/Kanban hybrid) to Kanban.

BTI builds disciplined teams that advance collaboration.

Tuesday, September 8, 2009

UI Tools

I've been doing some UI work recently and stumbled across these free tools online:

http://www.pixlr.com/editor/
If you are looking for an alternative to Photoshop, this is a great flash app you can use and save your work locally. I've found it to be a great place to create gradients. Easy to use and there are Rest services other apps can use to edit images. The best thing, everything is free!

http://colorschemedesigner.com/
If you are not a color wheel expert like myself, start here! A cool tool to help you come up with a color scheme for your website. The tool will give you corresponding colors to complement your color choices as well as a host of color contrast options. The most useful tool for me is the ability to demo you color choices immediately with the "example" pages.

Enjoy!

Thursday, September 3, 2009

Tidbits

Just a couple of links to some interesting blogs or projects that I've found.

CouchRest which talks about CouchDB, a document oriented database. It's a very interesting concept and I hope to try it out soon.
Bowline is asking for testers and contributors. If you do your programming on a windows box please test it out.