Friday, March 12, 2010

2010 Orlando Scrum Gathering- A Retrospective

Just returned from the Scrum Gathering in Orlando. Two years in a row at the same place. I think we are liking the place for the gathering at this time of the year. As I am writing this retrospective, many things are coming to mind. But, I will start off by saying that what a difference a year can make. I wrote a retrospective after 2009 gathering. If you are interested to see how things have changed in the last one year, I would encourage you to read that post too.

With all the things that have been going on in the Scrum community and in the Agile community at large, I must admit that I went there with a bit of skepticism this time around. To my surprise, I sensed a lot of "calming energy" in the community with many new and familiar faces. Tom Mellor summarized it well for everybody at the closing,
                                  " I feel satisfied."
 What were new at this Gathering? There were 6 different "deep dive" sessions on the first day. Each session focused a specific topic (i.e., Kanban, Coaching, Software Craftsmanship, Collaboration etc.)  very relevant to the community. I went to the "Innovation Games" session hosted by the creator Luke Hohmann. I am planning to buy his book. If you haven't heard about it, I recommend that you check it out. From what I gather, participants found all the sessions very useful. The only dissatisfaction I have that I could not attend more than one session since each was day long and all were on the same day. Hopefully next year we would schedule them on different days.

Also this year we had "Scrum Clinic at the Dialog Room" for the first time. Thanks to Gerry Kirk for organizing this. The idea behind Scrum Clinic was that people would singup as a "doctor" or a "patient."  Patients would seek advice from doctors on a pressing issue with their Scrum implementation. It was a hit. All the slots were filled. I played the role of a doctor and helped (hopefully) two patients. I thought people might not show up because either they would forget about it or not be able to come out of sessions (wherever they happened to be at the time). To my surprise, both doctors and patients were serious. I would love to see this extended to all days in the next gathering.

Social media was leveraged more this time than in the past. You can see what happened at the gathering from the event's posterous (you can see me playing volleyball in one of the video clips) site.

What's new with Scrum Alliance? Tom and Tobias have shown a great leadership in putting together a great event. Hats off to them and the staff and other volunteers. It seems the alliance is evolving into more transparent organization. The board has decided to include two members from the extended community to server on the board through election. This is a great step in the right direction. There are more regional gatherings in the works. First ever China Gathering is coming up in April. There were a lot of talk about trainer certification. Tobias is working on redesigning the process. Certification in general and specifically trainer certification is a thorny topic. There was an open space session on this very topic.

Scrum Alliance is collaborating with CMMI  community to understand and explore how the two frameworks can co-exists. Jeff Sutherland and Kent Johnson are working together on this. They shared a case study about how CMMI and Scrum were adopted at a company called Systematic (the world's first Agile CMMI level 5). According to them, Scrum as-is is considered a CMMI level 3 equivalent. The lack of a formal recognition of a manager and client roles as well as a compliance framework is preventing Scrum to become a CMMI Level 5 equivalent. While I agree we need to recognize the role of managers, to be honest, I did not like what I heard so far, specially the idea of "compliance." It remains to be seen what comes out of this collaboration.

What was hot? Of many things discussed at different sessions, it seems coaching the coaches (Lyssa Adkins),  coaching and managing self-organized teams (Joseph PelrineJurgen Appelo), and using different games to help Scrum teams to understand Scrum principles and perform different activities more effectively were the favorite topics at the Gathering. Both Lyssa and Jurgen have a book on the respective topics coming out soon.

What I wish were there at the Gathering? It seems we have learned to collaborate with the PMI community and the relationship is maturing. There was a dedicated track on Agile PMI. However, I have not seen much of a presence from XP, and Kanban community. The recent exchanges among these sub communities are anything but cordial. It is sad. It seems as an Agile community at large, we are acting in our self-interests. It goes against what we all stand for, that is collaboration and learning (mutual respects).

So, I will end this retrospective by challenging all of us to rise above our personal differences and foster a true collaboration in search for better results in what we do everyday. Is that too much to ask for?

Thursday, March 4, 2010

Ruby on Rails setup on Windows

Most of the in Rails community uses Mac and or Linux to develop Ruby in Rails applications. So, it is difficult to find resources or help on how to setup Ruby on Rails on Windows. Unfortunately we do develop on Windows since we also work on .Net application and cannot afford to have both environment.

Recently, I had to get a new laptop that came with Windows 7 (64-bit) and had to go through the pain of setting up a Ruby on Rails environment from scratch. The biggest challenge I faced was with the gems that require native extensions, for example, "rcov." And, the rest were to do with 32-bit versus 64-bit. If you are on the same boat, here is what you need to do,

1. Install Ruby. Get the Ruby installer from RubyInstaller.org. They have done a great job of putting together a great installer for the versions you would (1.8.6, 1.8.7 and 1.9) probably want to use. I would recommend installing it under C:\Ruby (the default) directory to avoid any configuration changes in the later steps of setup.

2. Update "PATH." Make sure that your "PATH" environment variable includes the Ruby\bin directory.

3. Setup to build native extension. Get the development kit from RubyInstaller site in order to be able to build native extensions for gems that require it. You need to get the 7-zip, if you do not have it already. Extract the files where you have installed Ruby.

4. Setup Gems. Now you can follow the usual steps of installing Rails gems as well as other gems. Gem should be able to build native extension without any problem. If you are on Vista or Windows 7, you have to run gem command from command shell opened as "run as admin" (by right clicking the program even if you are an Admin). I did not know this. It is Microsoft's attempt at becoming Unix (emulating "sudo" command).

5. MySQL setup. If you are using MySQL, you want to get the 32-bit version even though you machine is 64-bit. This is because the "mysql" gem that is available already comes pre-compiled with 32-bit version. You may still run into an error (i.e., MySQL::Error: query: not connected: SHOW TABLES) while accessing your database. This is most probably you have a newer version of MySQL than the "mysql" gem was originally compiled with (MySQL 5.1 does not work well with Rails 2.2 and later). You would need to get this libmySQL.dll. You need to get the older version and put it in Ruby\bin directory. 

That is all. You should be good to go. Let me know if you still run into issues following these steps.
_______________________________________________________________________________
Update: I ran into issues with the 1.8.7 version. Something to do with GC. Siwtched to 1.8.6, and it is working fine. March 12, 2010

Friday, February 19, 2010

Rails migration guideline

I recently tried to setup ScrumPad on my new laptop windows 7 (yes, I know not an ideal environment for Ruby on Rails. The peril of doing so is a topic for another blog) from scratch and stumbled on migration decay issue. We usually don't need to set up our projects from scratch. Every now and then we would. Whoever is doing the setup from scratch would go ahead fix any issues that might crop up in our migration scripts.

We are happily doing everything through migration just because we can- from managing incremental change in schema, to loading seed data, to migrating data due to schema changes. Over time we accumulated 498 scripts! And we have many non-backward compatible changes along the way.
This got me thinking whether we are following the best practices around migration. Here are a few things that we decided to follow going forward based on my findings:

1. Incremental changes. We will only use migration to manage incremental changes to schema.  Nothing more.

2. Loading seed data. We should not be using migration script to load seed data. Instead we will use ActiveRecord to load data. If we have a lot of seed data, we would use database ETL tool instead, which would be faster.

3. Irreversible schema changes. We should through ActiveRecord::IrreversibleMigration exception from the "down" method when changes are irreversible.  This is recommended by the Rails core team. We were not doing this. Even if we can revert back the schema changes, we won't be able to revert back the data changes that we do as a result of schema changes. So, why bother?

4. New database setup. We should use schema.rb to setup the database from scratch, instead of using migration scripts. We should store this in the repository and always keep it up-to-date.

5. Periodic baselining. When we reach a point of irreversible change, we should re-baseline migration script to start from that point going forward. That is we discard old migration scripts, and start with the schema.rb as the new baseline schema from that point forward.

6. Migration versioning. Although the use of sequential numbers may cause conflicting migrations (migration script with the same version), we still like this over the timestamp-based versioning introduced with Rails 2. We just synchronize among ourselves (communication!) to make sure we do not step on each other's toe. As a result, we can easily understand the logical ordering among the scripts (hence the assumed dependencies, if any).

What do you think of our approach to Rails migration? What guideline (if any) do you follow with your rails migration?

Thursday, February 18, 2010

Introduction to Ruby on Rails: A Beautiful Framework for Today’s Web

In last one month we presented two seminars on above topic. Fuad, Faruk and Arif presented the seminars. Hasan showed how to build an application quickly from the scratch. Here is his slides. The one we presented is embedded below. One can also download this and many other interesting materials from our website tech corner.

 

Introduction to RoR: A beautiful framework for today’s web  

Visit our photo albums to see how the seminars went.

Tuesday, February 2, 2010

Welcome 2010- agile way of nature and life

Good bye 2009 and welcome 2010.

What better way to start a promising and exciting year than getting in touch with the wild yet agile nature and appreciate it. To rejuvenate ourselves with energy and promises, and to learn the agile way of nature -- we escaped to the nature with our family for a few days from our busy life in the office this January.

Lawachara is a national reserve forest located in Sreemangal, which is also famous for the highest rainfall, orange orchard, export quality tea, indigenous people like Manipuri and Khasia, and the reserved natural  lake - Baikka in the vicinity.

We started our journey early in the morning.
DSC_0062

The tea garden was fabulous.
20280_263320211599_800186599_3298884_2758355_n

The landscape was breath-taking …
DSC_0051

Not quite was the navigation through it.
DSC_0054

But there were hands to help
DSC_0026

and little things that made us laugh.
DSC_0036

The woods were dark and deep
DSC_0171

and dangerous species lurking around,
DSC_0110DSC_0238

but we had miles to go before we sleep
DSC_0222

as we knew 2010 is a year to fly
DSC_0021

on the wings of our weaved dream.
DSC_0034

[We took loads of pics visit our Facebook Fanpage to see more.]

Thursday, October 22, 2009

Three Year Anniversary

We celebrated three year anniversary of our Company in BCDM, a rather serene place out of the city.


6729_106849926599_800186599_2115932_4743028_n

Thanks to Brac for building such a wonderful place for business meeting and recreation.


6729_106837291599_800186599_2115668_4000378_n

We cut cake, played tennis, ping pong, and volleyball, which was truly a team event and involved lot of fun. Timing was good, Syed was in the country.


image

There were some takeaways, too. We rediscovered our existing culture, identified the gap between ‘as is’ and ‘as should be’, analyzed product diversification possibilities, devised internet marketing plan and mulled over future business strategy. We recorded those all in the ScrumPad wiki. Thanks to Syed for ending it with the mesmerizing talk by Jill Bolte Taylor on TED.


image

So, we are three years old now. My three year old daughter talks a lot, imitates instantaneously anyone she thinks worth imitating, surprises everyone with her newly learned skills, and aspires to grow up faster than she possible can. There must be a lot of similarities in the learning process of a human mind and that of a modern organization. And there must be a lot of dissimilarities, too. An important dissimilarity probably is that a startup can hyperdrive a lot of stages that a human child cannot afford to. But to grow organically perhaps we have to go through many stages in years forward; and who knows we could learn one or two things by observing my toddler, too :).

Click for more pics.

Wednesday, October 21, 2009

Agilebd – Get Going!

Wow! AgileBD acquired 192 members and counting! About 50 posts in a month! We launched a web site. And we are planning to host an international Agile conference in early next year. What do you call it? The power of networking? Or, the power of passion?

So, that was the seed of a bigger dream, and now it is rolling. Thanks to Zaman, Syed, Fahim, Bas, Sohan, Tim, Hasan, Raisul and Nayeem for their continuous support and encouragement. And thanks to all who are worth mentioning, but let’s visit the group to know how they think and express!

We, Code71, is of course the proud and humble initiator of the group and the site. It really feels great to be part of something greater than yourself, doesn’t it?