Tuesday, October 20, 2009

BTI CEO Presents Kanban


CEO MJ Wivell presented Yes You Kanban to the Applications Agile Network. Mr. Wivell's presentation gave software engineers practical techniques to transition from a Scrum development methodology to Kanban.

Kanban is a software development methodology that allows for continuous workflow. Scrum batches work items for timeboxed sprints while Kanban focuses on single work items to flow through the system.

Mr. Wivell explained that "Kanban can help a good team go to great, but not a bad team go to good."

Software development is a team sport. BTI builds disciplined teams that win!

Wednesday, October 7, 2009

From Scrum to Kanban Part 2

Before applying Kanban to your development methodology we must understand the basics of Kanban.

What is Kanban? Kanban is a Japanese word. Kan means visual. Ban means card or signal. Therefore, a Kanban is a visual indicator that triggers action.

For example, a when you go to Starbucks to order coffee, the cashier marks a coffee cup with your order. The coffee cup along with the markings are a Kanban.

Other Kanbans in our everyday life include stop signs, stop lights, alarm clocks, etc . . .

The Kanban Board is a way to provide visual indicators that trigger action for software development team. As we continue with this series we'll see how the Kanban Board uses visual indicators to trigger action.

BTI builds disciplined teams that advance collaboration.

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.

Thursday, August 20, 2009

Quick Links and Edge Rails

Support for SQLite2 has been removed in edge rails. You can still install the plugin separately but the recommendation would be to update to SQLite3.

Here are a couple of interesting blog postings I've found.
Gemcutter - A New Gem Hosting Repository

Bowline - A Ruby GUI Framework