How to be a ‘Scum Master’?

Tags

, , , ,


No no no…you read it right. The title doesn’t have a typo. This small post of mine is actually on “How to be a Scum Master?”.

You may ask what is that. Well a proper definition can be:

A Scum Master is one who is trying to be the scrum master, without imbibing the agile mindset.

These are the most dangerous kind of people as they not only fail badly, they force the others to think that Scrum/Agile is just a fancy word of no use. I had a pleasure to meet few of such people. Let me tell you what can help in identifying such people:

  1. The sprint closing are waiting to finish the tasks, because they are waiting to close the tasks that are not completed due to some reason in last sprints.
  2. Multiple sprints are running at the same time. Again as per above, earlier sprints cant be closed as there are pending items in it.
  3. The sprint backlog is created before the discussion between the development team and the Product team.
  4. Priority field in in ticket takes precedence over the stacked backlog approach. So multiple things becomes highest priority tasks.
  5. No Release planning in the team as team cant think of anything else then finishing up the load of tasks in the team.
  6. The team works round the clock as the Scrum master has added things in sprints after the discussion with products. Not sure who gave the right to scrum master to alter the sprint backlog.
  7. Estimation of the task is done with none or negligible clarifications.

There are many such points you might have noticed. Let me know so that I can add them in my post here.

I see a lot of posts on how one can become a very good Scrum Master, you might have felt the topic a bit different, but valid. Check if you are doing any of it. If yes, I suggest to immediately change the pattern and first work in a real agile team (not as scrum master of course). It hits hard, but given that there are only few responsibilities of scrum master, the role is big because the of the dependency of the team on Scrum Master.

If not, be proud to be a successful Scrum Master.

7 Things To Include in Release Plan

Tags

, , ,


Release Plan is an essential part of a software plan. Most of the Product Owners focus on:

  • what will be part of release,
  • when will it be released,
  • who will do the release.

All of the above are the must haves of the release plan, however while doing an upgrade of a system which is being used by users already, there are some other essential points as well. We sometimes forget about these in planning activities but those are must have for each release.

  1. Duration of Maintenance Window

It’s very important to identify how much time is needed to do all the activities involved in the deployment including the sanity testing. The duration of the maintenance window keep everyone updated on expectation. If the clients know that it’s going to take 1 hr to do the upgrade, they won’t ping every 15 mins anticipating the worst.

2. Maintenance Page

Maintenance page is a way to inform users that there is nothing wrong with the application. Specifying the maintenance window in maintenance page itself will stop user from going in frenzy and wondering when can they try again.

3. Pre-Release Message/ Pre-Downtime Warning

Other then keeping the maintenance page, the best user experience comes in when users do not encounter something which they didn’t anticipate. A Pre-Release/ pre-downtime message somewhere in application (may be on top of the application where it is noticeable) few hours/ a day before release time, will set the right expectation with end user.

On the other hand as people know that downtime is near, they won’t be active and hence your worry that while deployment some user activity data is getting lost will also be handled.

4. How the DB updates be done.

Always plan the DB updates in scripts. It’s important for each release the script is kept specific to release ready to be deployed. Even the data changes should go in separate script which was tested on pre-prod/staging environment.

5. How to handle the cron/scheduled activities

One should always keep a tab on scheduled jobs/cron. Are there any cron jobs running at the time of deployment? Are there any updates in cron job timing/parameters/call in this release?

Also always make sure that there is a step to disable the schedule in start of the deployment and enable at the completion of release.

6. How will the rollback happen in case of failure

It’s important to always plan how will the code be updated and how will be DB be rolled back in case of failure. Usage of CI/CD and DB migrations, makes the rollback process very easy.

7. Testing before exposing to the world

With this I come to last and very important point which gets missed almost all the time. When we complete the deployment, the maintenance window is brought down and application is available for testers to do the sanity. However, what we miss is that it’s also released to entire world and users now have started to use it.

If at this point there is a blocker identified in release, it can’t be rolled back. As in rollback the users data entered between the duration when maintenance was brought down and when the tester identified the issue( which can be an hour or 2) will be lost.

Hence it’s always good to plan in such a way that the application first exposure is to only a handful of people. This could either be with IP specific release, or with feature enabling strategy or even Canary release can help in this case.

How I won both of my Mother-in-Laws *with Shu-Ha-Ri*

Tags

,


Please don’t start running your saas-bahu saga minds here. As the well known agilist, Ken Schwaber said once –

“Scrum is like your mother-in-law, It’s constantly pointing out your shortcomings.”

I have 2 mother-in-laws, one my own and the other one is the Agile process we run.

May be unbelievable but true. Me and my mother-in-laws goes pretty well, almost like friends. The secret behind this friendship is the way I approached the entire relationship with ShuHaRi, the Japanese martial concept which describes the stages of learning to mastery..

Shu– Obey the Rules

Ha–   Analyze the Rules

Ri–    Make new Rules

This way they know, that I am not a rebel, but I am not even a blind follower. I am an intelligent thinker, which establishes a harmony between both of us to accept the changes that bring positive impact.
ShuHaRi is s a Japanese martial art concept, and describes the stages of learning to mastery. Though its related to fight, however that also means its related to survival. Which in turn also mean that its related to LIFE.

The person who says in the start, “My house my rules” will always have a bitter relationship with the mother-in-law. As you have never tried to understand why she had certain rules and the logic behind them. In the end everything fails as your logic is without experience and now you have even lost the support of the experienced person by pissing her off.

Same applies to Agile project management too. I see many organizations trying to devise their own version of Scrum/Lean/Safe. However most of them are doing it

  • without following the process and identifying the gaps
  • and assuming that the current process will not work without even trying.

The process ultimately will fail because,

  • You don’t know what challenges the original process solved.
  • You became a Trishanku (in limbo), who has not totally adapted agile nor moved away from faulty and unnecessary practices of traditional process.
  • In new process you spend a lot of time in solving the older problems which were solved by original process as for you these problems are new
  • You lost the experienced learning from original process creators.

So an advice for any organization/individual trying to adopt agile:

First identify a fitting framework, follow it to the dot for sometime (3-4 months), then inspect and adapt based on your learnings.

Though in case of original Mother-in-law the following period is a bit longer, kinda 4-5 years, however if you can believe me, its the key to successful married life 😉

Happy Living!!!

Docker goodness


Have you ever faced these challenges?

  • It works on my machine but not on yours…
  • I have been helping the new person setup her environment all day…
  • I can’t try it because IT hasn’t  updated dev-environment…
  • I have to work directly on production environment to fix this issue…

I feel these are everyday problems that we face. Is there a solution? Yes.
Docker is an emerging technology which is quickly gaining the momentum. It is the answer to many of such questions other than making the server management and deployment a muc easy task.

If in case you do not have much idea on what Docker can do, take a look at the brief presentation I have prepared to give a high level idea on Docker.

Session updates During concurrent requests

Tags

, , ,


So this has always been a problem with Rails SessionStore. The problem is that if your app is sending concurrent requests and one of them is updating a session then depending on which request wins in the race you might get the stale session variables instead on the updated one. The problem is better explained at other places like http://dev.rubyonrails.org/ticket/8256 and the solution is a plugin smart_session_store by Frederick Cheung.

It might not seem a very informative post to you, but I am still posting it as this has taken me quite a bit of time to find out. And after finding it, I am astonished to see why Rails still can not deal with this issue.

 

Note: I am talking about Rails 2.3.8 here. Not sure if Rails 3 has a fix for it or not.

 

Websockets ?


Just today have seen some buzz around websockets of HTML 5. After exploring a little, I thought this is sharable so here it is in a small description.

So websockets is a two way communications channel that operates over a single socket and is exposed via a JavaScript interface. So unlike Ajax, which needs 2 bi-directional streams on up-stream and one down-stream it serves over just one stream. And this is the latest additions to web 2.0 apps via HTML 5 implementations. The server can then “push” information through the WebSocket, directly to the browser, without the browser having to go out and request it.

So you ll wonder as HTML 5 is just supported by few browsers and very few versions, then how feasible is it to use. Well… for that There are several Websocket servers available that provides JavaScript library that can support almost any browser of any version.

For example : Kaazing supports all major browsers (Firefox version 1.5 and higher, Internet Explorer version 5.5 and higher, Safari version 3.0 and higher, Opera version 9.5 and higher, and Google Chrome version 0.2 and higher).

Where as Pusherapp (widely used by ruby community) doesnt provide support for all browser but provide a flash based fallback solutions for remaining browsers.

Later might come more as I explore more. Or you guys explore before me and update me also 😉 But that sure worth a shot.

Learning Java now :O


hmmm so my resume says, I know java but that was the java we did in a small course during the academics. Hence you can say that I dont know much java apart from the OO part of it which I knew from Ruby. At this stage when I am already spoilt by Ruby, it will be very hard for me to just go through Java’s classes and compilers. I am looking forward to understand and write java webservices which will feed rails apps with SOAP.

Lets see how it goes. Any suggestions if any of you guys  have?? Apart from the general Ruby community comment “You gone mad kya??? ;)”

We All Like to Reblog (via WordPress.com News)


I really like this new feature from wordpress. And this post is just to try it. Thats the reason even after hundreds of available blogging tools I feel wordpress is the best 😉

We All Like to Reblog Have you ever come across a blog post that you enjoyed so much you wanted to easily share it with the readers of your own blog? Sure, you can copy and paste the link and perhaps even a snippet of text with your own comments, but overall it's not a particularly enjoyable experience. We wanted to change this and make sharing other posts with your readers as easy as posting to your blog. Today we're introducing a new like and reblog feature enabled … Read More

via WordPress.com News