Carlos Michael Gabaldon

Agile development and low tech tools

Carlos Gabaldon » 31 January 2010 » In Uncategorized » No Comments

I just recently started working on large software development project that the management team decided to use SCRUM over some of the existing waterfall process used throughout the rest of the organization. When I first heard the news I thought great now the team can focus on building working software rather than following processes that only make the leadership team feeling like they have control over the project. The problem is that the team is spending large amounts of their time keeping information up to date in VersionOne the tool that was chosen by the management team to manage this project. VersionOne is a very popular tool that many successful companies have standardized on for SCRUM or XP, but from my experience effective agile development teams always choose low tech tools for managing the development.

What do I mean by low tech tools? Low tech tools are tools that do not require the team to sit in front of the computer to use; simple things like big visible charts or information radiator and index cards. Why is this so important? Because the team already spends a large amount of time sitting in front of the computer developing and testing the software, why make them spend all their remaining time updating and managing user stories, burn down charts, and tasks chained to the that same machine.

Low tech tools have a way of connecting people with the ideas and concepts in a much more clear, tangible, and meaningful way. For example, a team can sit down and write all the user stories on index cards then with some large wall space tape the index cards to the wall to create a product backlog. From that the team can do sprint planning by simply moving cards from the backlog section of the wall to the next planned sprint; all with no dual core’s required!

In a large organization or working with some remote team members the low tech way can be difficult and the organization may require that the planning be documented in a more formal project management or tacking tool. To address this have the PM on the team be responsible for keeping the low tech tools in sync with the high tech tools. They are the ones that need to communicate the status of the project to many different types of stakeholders so it makes the most sense for them to manage the communication; and leave the team to focusing on the code…

Continue reading...

How to build a product

Carlos Gabaldon » 10 December 2009 » In Uncategorized » No Comments

  1. Developers, product management, and customers brainstorm ideas.

    What problem are we trying to solve?
    What market opportunity are we trying to meet?

  2. Developers & product management write the core user stories.
  3. Developers build an end-to-end web site skeleton with mocks to any external systems.
  4. Developers spec out the core web site API.
  5. Developers and product management iterate over the web site skeleton adding the core user stories.
  6. Partnering with the customer; developers and product management push the product to market as quickly as possible.
  7. From customer feedback developers and product management enhance, rewrite, or create new user stories and apply those stories back into the web site.
  8. Repeat 1-7

Continue reading...

Tags:

Meetings

Carlos Gabaldon » 09 December 2009 » In Uncategorized » No Comments

It seems that in all my years of software development every company I work at seems to feel the need to pull developers off of real work to have a meeting. Where they want to discuss some useless topic that just makes us managers feel like the team is being productive by communicating status or issues. So what are good guidelines for meetings? Should we be having meetings? Here are my 3 golden rules:

  1. Meetings should never be scheduled; you should strive to create an environment where meetings just happen. How do you do this? Create open development environments where there are no offices or cubicles just groups of desks with lots of couches and whiteboards. In this environments meetings become organic and happen only when people need to talk.
  2. You should never have meetings to communicate status; that is why you use wiki’s and bug tracking tools. People who want status should just pull the status from those tools. It does not matter if you are standing up while you are giving status in a meeting or you call it agile. Status or issues should be an asynchronous activity where the people who need to know should be pulling those from the team, not slowing them down with a synchronous meeting. If there is an issue that needs to be escalated or help resolving then the team needs to get their butts out of their seats and pull everyone together, you should not spend time in Outlook trying to schedule a meeting!
  3. You should only have meetings for productive things like brainstorming new ideas, doing use cases, group design, discussing code, or getting the team together for drinking beer.

Continue reading...

Tags:

Erlang

Carlos Gabaldon » 11 September 2009 » In Uncategorized » No Comments

I added another articles section for my other love language Erlang.

The first article is just a quick intro into this cool and powerful language, I will be sharing more soon..

http://carlosgabaldon.com/erlang/hello-erlang/

Continue reading...

Tags:

Focus on delivering the business value

Carlos Gabaldon » 04 September 2009 » In Uncategorized » No Comments

The following quote from Paul Graham illustrates how in some large software development organizations the leadership team loses focus on the main goal of software development; which is to deliver the business value with reduced costs.

..we can get a portrait of the “normal” world. It’s populated by people who talk a lot with one another as they work slowly but harmoniously on conservative, expensive projects whose destinations are decided in advance, and who carefully adjust their manner to reflect their position in the hierarchy.

http://www.paulgraham.com/kate.html

Continue reading...

Tags:

My interview by Dmitry Belitsky

Carlos Gabaldon » 01 September 2009 » In Uncategorized » No Comments

I recently did another interview by Dmitry Belitsky on “How to become successful rubyist”. Dmitry is an up an coming web developer who put together a great set of interviews with several top Ruby hackers.

http://belitsky.info/freelance/carlos-gabaldon/

Continue reading...

My Interview on RubyLearning blog

Carlos Gabaldon » 21 July 2009 » In Uncategorized » No Comments

I recently had the pleasure of being interviewed by Satish Talim for his RubyLearning Blog on his mini series – “How do I learn and master Sinatra?” – by top Rubyists using Sinatra.

The interview series provides insight and commentary from notable Sinatra developers, with the goal of facilitating and providing answers to the questions Ruby beginners face on how to learn and master Sinatra.

Satish Talim is a programmer, author, trainer, and speaker. A recognized expert in the field of software development with over 30+ years of I.T. experience, Satish has consulted and trained teams at various companies in India and the US.

http://rubylearning.com/blog/2009/07/21/carlos-gabaldon-how-do-i-learn-and-master-sinatra/

Continue reading...

Tags:

Sinatra rake tasks

Carlos Gabaldon » 25 May 2009 » In Uncategorized » No Comments

Since I have been playing around with Sinatra again, I decided that what Sinatra needs is some automation for some of the boring day to day tasks. So I created a GitHub bucket to dump my Rake tasks. I only have 1 task, to create a new project, but I have a lot new projects that I will be doing in Sinatra in the coming months, so I know there will be a cornucopia of tasks.

Sinatra-rake-tasks

Continue reading...

Tags:

More on Sinatra

Carlos Gabaldon » 23 May 2009 » In Uncategorized » No Comments

I wrote another article on the cool Ruby web framework DSL Sinatra.

In my last article I wrote about the cool Ruby DSL web framework called Sinatra which is taking the Ruby world by storm. I decided that another “How to” article on some of Sintra’s other kick ass features was just what Frank would expect.
..

Read More..

Continue reading...

Tags:

Sharpening your tools

Carlos Gabaldon » 05 May 2009 » In Uncategorized » 1 Comment

I have always felt that every software leader should from time to time get back to the basics and do some deep dives into focused technical tasks. Such as writing automation code for any tedious task that you have one of your high paid developers doing manually.

So what do I do? I need to get back to the basics and do some hard core hacking. What does that mean? I have been actively contributing to several open source projects over the past few years. Open source is very rewarding, but I think doing a large project in my first language (C) will remind me why I love programming.  Maybe write an operating system; my own BSD distro? Or maybe a new language?

Continue reading...