Wednesday, May 25, 2016

Dedicated Scrum Master or Full-time Scrum Master?

Which is a better statement?
A full-time scrum master for a team? giving all her time to one scrum team and attend all scrum events.
A dedicated scrum master for a team? not full-time and she may work as development team member also?

Arguments in favor of full-time Scrum Master
  • If not full-time then what will happen to impediment those need immediate attention?
  • She has to attend all events in order to ensure people are practicing right scrum

Argument in support of not having full-time Scrum Master
  • But majority of time impediments are not impediment but intra-team dependencies that team has to manage not scrum master.
  • Scrum master not needed in all events and she has to only ensure those are getting done by team.

Tuesday, May 24, 2016

Done with Certified ScrumMaster (CSM) so what next? Agile Coach?

Nowadays everyone wanted to become agile coach after clearing Certified ScrumMaster (CSM). And why not there are already so many scrum masters and we have to stand out of the crowd. There is nothing wrong in this because we all have passion and desire to become something.

People consider CSP (certified scrum professional) as 1st step in order to become agile coach. I don’t know how true is that but I know people start collecting SEUs. This SEUs business is not bad either especially for community building because many started coming to conferences and meetup to collect SEUs.

But there is some challenges? Nowadays companies are looking for specific kind of coach like Process Coach, Flow Coach, Scrum Coach, Kanban Coach, Technical Coach and Developer Coach etc. This is creating another level of confusion for people wanting to become coach. In fact I am waiting to see if someone post LeSS Coach so I can apply :) In fact training business flourish when market create confusion and now I can see many people wanted to attend Scrum Developer workshop in order to become technical coach or developer coach etc.

Don’t know where this industry is heading but so far everything looks lucrative. Also all certification bodies like scrum alliance keep launching new certifications to tap market opportunity like enterprise coach, team coach and now leadership program so be ready to spend more in order to be in race.

I still believe Scrum Master is true coach provide he or she is good facilitator and servant leader. If Scrum Master has exposure on technical practices such TDD, ATDD, CI and Pair Programming etc then nothing like it. But this is what I believe. 

Friday, May 20, 2016

Everyone is developer in development team and not just a coder, a tester etc. Are you kidding?

Scrum is very simple framework to develop complex software product in complex environment but hard to practice. But why? I am not going in details of why but wanted to highlight one problem about development team as per my understanding.

Development team means cross-functional and self-organizing team of developers. But who is developer? Isn’t it everyone who contribute to develop software? A coder, tester, dba, UI designer, content writer or business analyst? Now look at your team. Is it cross-functional? Yes you have because you have technician for all skills but are those technician developers? May not be. There are just a coder, a tester, a dba, a ui designer and waiting for their skill related task. They are not working as developers with goal to develop software but they are just doing their task as per their skills.

Some of the key things that will help you to understand about development team. Think about L&D organizing few training is going to announce it.

1st announcement “we are planning to have workshop for Scrum Developer so send your nomination”. You will find that only coder has subscribed for this workshop.

Another announcement “we are organizing Agile Testing workshop so send your nomination”. This time only tester will subscribe.

What reflect above? Team is still divided in coder and tester. Tester feels everything related to testing is their domain and similarly coders feel all coding work is part of their work.

But reality is tester has to write code in order to test production code and coder has to write test to perform unit and integration test of code.

Another way of looking at it.

During sprint planning team prepared sprint backlog. Below is sprint backlog and now what it reflects? There are tasks but those tasks are skills based and not component. Isn’t it bad way of creating task? No? Then look below situation.
Assume there are 2 people Alex (coder) and Martha (tester) working on these 3 stories.

Alex done with coding part of story 1 after 2 days and Martha has started testing so what Alex will do next?

Most likely Alex will start working on coding part of story 2. Is it good? Why can’t Alex picks up other work from same story? Or why Martha was waiting for Alex to complete coding in order to start testing? Why can’t she pair with Alex to test in parallel or at least started testing APIs?

Many people asked me what’s wrong if Alex start working on coding part of story 2. Let’s see below situation.

Alex completed coding of 1st story and started coding 2nd story. Martha still testing 1st story found a bug so what she has to do? She reached out to Alex and wanted to discuss about bug but Alex is busy and asked her to come later on.

What do you think Martha will do next? Most likely she will open a bug tracking tool and log newly found bug over there. Is it good? No but why Not? I will write about bug logging challenges sometime later on but let's focus on other aspect of it for now.

After a day Alex is done with coding of Story 2 and started looking into bugs those were logged by Martha. He identified route cause of a bug that requires to change some framework level code. But that will also impact 2nd Story code that he has just completed.

What Alex will do? It is good if he go change whatever needed in order to fix at route but it will generate rework and will delay delivery. Other option is shortcut to fix bug (patch work) that will not have much impact on Story 2 code.

Majority of the time coder choose 2nd option because coders are very emotional about their code but result of shortcut will be “Technical Debt”.

What can be done in order to avoid such scenario? Yes. 1st don’t break story like above but try to divide in component. Best is not to divide but still dividing then divide in component. Work in pairing. Team should focus on finishing one that already in progress rather than starting new story.

Tuesday, May 17, 2016

I don’t want to be a developer

Is there something wrong with software developer designation? Because everyone wanted to become scrum master and agile coach but not a good software developer. May be scrum master sound really big because of MASTER keyword but if you see same word in other context like school master then again nobody wanted to become school master. This may also because scrum is very light height framework and described in just 16 pages so everyone feel they are master of those 16 pages.

Since I coach development team and facilitate scrum developer workshop so get to interact with coders and testers often. Sometime few participants give impression that they are no open position for scrum master in their company that’s why they are part of development team.

Although I having feeling that real master is development team not others. All other exist because of them so other can be termed as servant teams and that’s why we have scrum master as servant leader to lead our servant team.

Few interesting conversation when people call to enquire about scrum developer workshop.

“I wanted to learn agile engineering practices such BDD, ATDD, TDD and CI etc but not looking for certification. I am an agile coach and need these skills to facilitate my team but don’t want to be labeled as certified scrum developer.”

“I am a certified scrum master and looking to become certified scrum professional. I have gone through your blog and believe you can help me in getting remaining 20 SEUs but please don’t suggest to attend scrum developer workshop because I am looking for CSP but not CSD.”

“I am tester and following agile in our company. Looking for Certified Scrum Master training is there certificate for testers like the way we have scrum developer for developers.”

Above conversation reflects how much people understand about role of developers and development team.

I was reading Agile Testing book authored by Lisa Crispin and Janet Gregory and they have beautifully quoted “Everyone involved with delivering code is a developer, and is part of the development team.”

Scrum developer workshop is not for only programmer but for tester, architect, leads, manager, coaches and as well as for MASTERS.

Why I am so passionate about development team? Wrong this has nothing to do with my work but more about letting developers know how important they are and what they can do.

Friday, May 13, 2016

Something wrong with software engineer designation

Why we don't feel proud in saying "I am a software engineer"? We all want to move away from this designation as fast as possible but why or this is not true?
May be we don't get equal values what other stream engineers get like mechanical engineer, electrical engineer or automobile engineer?
I am saying based on my conversations with various people during my workshop. Since I facilitate Scrum Developer workshop so mainly developers (Software Engineers and QA Engineers) come to attend.  
1st conversation
Developers - I am a software developer with 5 years experience and looking for role of Tech Lead or Architect etc.
Me - But there is no such roles in Scrum and you will have tough time going forward if you opt for meaningless designation and roles.
Developers - That I have heard but I can't even get attention of my company as developer so what's the use of being called Software Developer.
2nd conversation
Tech Lead - I am planning to be Scrum Master and I am already leading a team of 6 developers. What do you suggest? Can I go for CSM workshop?
Me - If you are still technical and contributing as development team then why moving to Scrum Master role? How much you know about Scrum?
Tech Lead - I don't know about Scrum and that's the reason I am here but I don't want to become developer. Scrum Master sounds more commanding and anyway I should not looking backward because I was developer for 6 years before becoming Tech Lead this year. Now you are saying there is no role like Tech Lead in Scrum so better to try for Scrum Master than becoming developer again.
3rd conversation
Future Agile Coach - I saw your post about how to earn 70 SEUs and I am running short by 15 SEUs. Can you help my getting those and please don't suggest to attend Scrum Developer workshop. No offence because I am planning for Scrum Professional so there is no point to know what Developer do.
Me - Still thinking how to reply
We often see engineers from other stream carry engineer as title till retirement like Assistance Engineer, Executive Engineer or Chief Engineer whereas Software Engineers move to some confusing roles like Tech Lead, Project Lead, Sr. Project Lead and some time even "Senior Assistant Vice President".     
We should start respecting ourselves as Software Developer/Engineers rather than moving into a trap of rat race.