Who are the Professional Scrum Developers?
×
Please Provide Following Information. We will get back to you as soon as possible.





HRDF CLAIMABLE

This program is eligible for the HRDF training grant claims under the TRAINING ASSISTANCE SCHEME (SBL SCHEME). Click on the below link to know the eligibility criteria and claim procedure.

HRDF Claim Eligibility and Procedure

Everyone is developer in development team and not just a coder, a tester etc.

Scrum is a straightforward framework to develop complex software products in a complex environment but hard to practice. But why? I am not going in detail of why but wanted to highlight one problem with the development team as per my understanding.

The development team means a cross-functional and self-organizing team of developers. But who is the developer? Isn’t it everyone who contributes to developing software? A coder, tester, dba, UI designer, content writer, and business analyst? Now, look at your team. Is it cross-functional? Yes, you have because you have technicians for all skills, but are those technicians are developers? Maybe not. 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 intending to develop software, but they are just doing their tasks as per their skills.

Key things that will help you to understand the characteristics of the development team. 

Assume L&D (Learning and Development Dept) is about to organize a few training and announcing like below.
1st announcement “we are planning to have a workshop for Scrum Developer, so send your nomination.” You will find that only coders have subscribed to this workshop.
Another announcement, “we are organizing Agile Testing workshop, so send your nomination.” This time only tester will subscribe. The same happens with Agile Business Analysis and UI/UX training.
What reflects above? The team is still divided based on skills coding, analysis, UI/UX, and testing. Tester feels everything related to testing is their domain, and similarly, coders think all coding work is part of their work.

But in reality testers write code in order to test production code and coders write test to perform unit and integration test of code.

Let’s look at it differently.

During sprint planning team has prepared below sprint backlog. What it reflects? There are tasks but those tasks are skills based and not component. Isn’t it bad way of creating task? If not? Then read below situation.
scrum-board

Assume there are 2 people Alex (coder) and Martha (tester) working on these 3 stories.

Alex done with coding part of story 1 in 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. But 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 found a bug in story 1 so what she has to do? She reached out to Alex and wanted to discuss about it but Alex is busy and asked her to come later.

What 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 separately 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 and framework level code changes needed in order to fix it. But that will also impact code that he has just completed for story 2.

What Alex will do? Good if he changes 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) so it should not have much impact on 2nd story code.

Majority of the time coders choose 2nd option because coders are very emotional about their code (just kidding). There are multiple reasons for choosing 2nd option but end result will be “Technical Debt”.

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

Thanks for reading! If you have any query then reach out to me.

1 Comment

  • N. Srividya
    Posted August 29, 2016 7:11 am

    Beautiful article….articulated in the simplest form. Thank you!

Leave a comment