Interview: Kelvin Soen on Waterfall, Agile & Scrum

The following is an interview between Hugo Messer and Kelvin Soen.

Kelvin Soen

Hi Kelvin, thanks for taking the time to run this interview. We both spoke at the very first agile Indonesia conference in 2016 and you’ve been a very enthusiastic member of our scrum community. In your role, you have moved your development teams to scrum and you seem to be deeply into agile. Let’s start with a short introduction about yourself (your role, how long you’ve been working with agile and the current company, etc)?

My role is head of software development. I have been working in the current company for approximately a year. I have been implementing agile since my previous experience for approximately 3 years ongoing.

You have been a ‘project manager’ and now you are more into scrum. What would you say are some big differences between traditional project management and the way scrum proposes us to work?

Basically, the difference is the deadline. In traditional PM we focus on deadline and scope while leveraging on the other variant: resources. In agile, we focus more on deliverable and quality while we put aside other aspects as a variable (timeline and resources).

Most people know the golden triangle of project management which you refer to here. When we google ‘waterfall versus agile’, a lot of different versions of that model come up. I found this one for example:Agile

In this model, quality is the variable in the middle. And they used features instead of resources. How do you see quality and features at play in the two different frameworks?

In my terminology, resources mean costs and features mean scope. Quality and features have similar traits in both framework; high quality and many features will require maximum time, vice versa. The only difference is: in agile quality is a MUST while in waterfall it is dispensable. And to achieve this quality, time and cost are required, leaving features to be ranked in prioritization (variable).

Another thing that often comes up is that deadlines are still imposed by management or customers. So even though we use agile, some management teams hold on to deadlines (which also seems reasonable as products need to be launched). In your experience, in projects that have deadlines, what’s the difference between waterfall and agile work?

I think that the fact deadlines fall almost 90% of the time is the catalyst to the birth of agile. In waterfall, a deadline is imposed in the beginning of the project when team and stakeholders have completely no idea in mind about the skills of the team, tasks required or design flaws. This is a perfect recipe to fail the deadline in the first place. While in agile, we iterate work every certain week to re-estimate or re-arrange deadline based on facts found in the field. It makes it more reasonable to come up with features estimations based on how much a team can deliver within a specific period of time.

One thing I notice is that managers who still impose waterfall based deadlines, while disregarding the facts, will only exhaust themselves with deadlines to finally succumb to the team’s velocity (agile). This is still the mindset of the majority of managers (especially non-technical) though, who still think that deadlines will boost and propel their business to the next level related to product delivery.

Another thing I found is that sometimes it is better to let them struggle with deadlines and then present facts and data of a previous delivery to show what agile might offer than to contradict them in the first place. As the saying goes: only a child who is already exposed to the damaging pain of a frying pan (waterfall deadline) will avoid making contact with it (switch to agile instead).

You’ve transformed your development teams. What do you see as the 3 most important things in the role of an engineering head or software department head in moving people to scrum?

  1. Empower/coach team
  2. Paradigm change from top-down to bottom-up
  3. Focus more on the environment; provide metrics for the development of each function, ensure every team members has a chance to speak out, establish innovative workplace.

Number one is a very interesting point in the Indonesian context. Many people are used to hierarchy. Bosses like to ‘give orders’ and employees like to ‘get orders’. Without orders, some people are confused and don’t know what to do. How do you go about ‘teaching’ your team to be self organized, to take responsibility?

This is a challenge and I am still learning myself. This is extremely hard for a team that has no person with leadership potential in it. But it is the first thing to identify in a team to make itself organized. A good thing is if you are handed a team that already has proper leadership escalation. But there are cases when you are handed a team of leaderless ‘lost chicks’. If you, yourself, have the technical capability you can actually lead the team yourself. Otherwise, if there is a more technical capable person in the team (as is mostly the case for a Scrum Master), you need to coach the person to be in charge and most importantly feel engaged with the team.

By coaching, I mean basics supervisory skills like coordinating, delegating tasks, etc. Agile best practices like daily meetup, refinement, retrospective, etc to agile technical aspects like continuous delivery, continuous integration, DevOps and so forth. Once the team can make a decision to apply or experiment with a tool, technology or methodology AND be responsible for the outcome, the team is one step ahead in becoming self-organized. Even though you have a concern or disagree, it is better to let them see the results themselves and learn from it. This, of course, excludes common sense mistakes such as agreeing not to utilize automatic deployment in which case you should intervene and justify.

Can you elaborate a bit on the paradigm change you mention? Why is that important? And how have you enabled your organization to become more bottom-up?

I think it is super important nowadays as this is the culture of the so called Silicon Valley. Bottom up paradigm bestows each employee with entrepreneurial and problem solving opportunity, instead of regarding them only as a muted machine designed to get things done. Creativity and innovative ideas are prized more in this type of organization which allows the organization to be innovative and disruptive.

Your third point covers many aspects. What do you mean by environment? What kind of metrics do you use?

A good environment is when management can have a clear transparent helicopter view of the organization. That means they can see clearly in which process, teams or procedures the organization stumbles or lacks. In software development, for example, you have front end developers, back end developers, quality assurance engineers, business analysts, designers and so forth. The kind of metric I mentioned above should be able to pinpoint which areas go wrong and which areas work well, very specific to each individual if possible. It will provide the management with the tool to make strategic decisions to propel the business even further.

How did you get started with scrum?

Self learning/autodidact

Ok, so you went about reading the scrum guide and articles online? And then what were some of the first ‘steps’ you took to implement scrum in your organization? Many people find it challenging how and where to get started, so it’s good to hear some practical experience on that.

In my case, I just implement it right away. In startup world agile, especially scrum is accepted as the general way to do things. So I never have difficulty persuading management or transforming a waterfall culture. Of course, you will have some failures or things that you feel are not suitable for your organization. And that’s where the agile community or forum can support you, to share issues or ideas worth implementing in your business.

What roles did you transform into the scrum roles?

Project manager, management and stakeholders

Ok, and what role became scrum master? What role became product owner?

I personally become the scrum master. The management (CEO) takes part as the product owner. Once the organization has grown large enough, it can have specific product owners to allow the management to focus on other areas.

What were some of the challenges you faced in moving the teams towards scrum?

Adapt to each team and organization characteristics. Each team and organization have a unique approach, mindset and difficulties in implementing agile.

So what you are saying is that there is no ‘one size fits all’ way of implementing agile. Do you have some more specific examples of challenges you have recently faced?

For example, in one team we do not need an analytical phase, moreover a specific team of system analysts. But in a different product which is more complex in term of technical design and model relations, we required this specific team before development begins.

If you compare the way things worked in your company 1-2 years back and the way they work now, what are some of the biggest improvements (can be outside scrum….)?

I don’t exactly change from traditional to agile. It was more like I moved from a traditionally structured company to a more agile one, including forming an agile team from scratch. From the experience, I can tell that agile is the most suitable framework (not only in software development) for your organization to survive in this fast paced and ever changing world. The methodology encourages and induces innovation through which the organization can survive and thrive.

What have you done to make your teams stable?

Restructure the team, re-organize procedures, persuade and set expectations of management, implement lean startup methodology. And most importantly: review, review and review. Adapt to find the most suitable approach. Base them on accurate data, though, otherwise, too many changes only cause confusion and waste of time.

How did you combine lean startup with scrum? With the review, I assume you mean doing retrospectives on the team level or do you mean something else? It would be interesting to hear some of the data you have used to base your decisions on.

I do retrospectives to get insights internally. Lean startup requires you also to gather insight every certain period externally. We can do this by AB testing, surveys, etc and implement the results on the product. I’m afraid those data are classified for now 😀

As you have 35 people, you have multiple scrum teams. How large is the average team? And the biggest team?

Supposedly maximum 9, but on the initial step of agile, you might want the whole team to know the overall issues. It might be needed when the team is not yet stable.

So in your case, the biggest team is 9 people? And how many teams do you have?

Yes, I had 9 people in a team once. At the start, I also combined several team daily meetups into one. I feel the need to make the mindset of all people in the team congruent since they are developing one product. Once you are sure that each team has the same mindset and knows their exact territory and correlation to other teams, it is best to separate them to get the most effective time.

You are working on ‘one product’ or ‘one website’. Do you have 1 product backlog for each team?

I have two products in one website. I separate those into two backlogs and two main teams which divided into several smaller teams.

Ah, that’s an interesting story. What you’re saying is that you have 2 main sub products and multiple teams work from each of those 2 backlogs? How many teams per backlog? And does each team have their own sprint backlog which they derive from the main product backlog or how does this work?

Yes. Those two products are pretty much standalone, so you don’t need much integration for both. So I only separate each backlog for those 2 teams, not more. Multiple teams in team A refer to backlog A and multiple teams in team B refer to backlog B. Each team can pick their own backlog to be developed in their sprint.

How do you ‘cut’ that project into parts so that each team works on its own product backlog?

I divide them based on domain functions and team’s capacity, ability and skill. The purpose is to make it as efficient and productive as possible.

Does each team have a dedicated product owner and scrum master?

Dedicated product owner but the same scrum master. I believe that you need to implement the same standard for the whole organization to be able to analyze the metrics and issues happening in each team. Once the team grows larger, you may work with several scrum masters but ensure they have same standard to come up with impartial unbiased analysis.

How do you align and integrate the works of the different teams?

I implement scrum within scrum. We have one central team (each member heads their own other scrum teams) that is responsible for the whole overview and progress of the products in one organization.

I’m not clear on this setup, can you elaborate a bit more?

For example, I have one website that offers a product to customers. But actually that one product we can divide into several parts which pretty much are independent and need the least integration; let’s say team A, B and C. Each of those teams consist of several smaller scrum teams (Team A: team A1, team A2. Team B: team B1, team B2, team B3. Team C: team C1, team C2, team C3, team C4).

We have a representative of each team (usually the team leader) that gathers in separate scrum ceremonies to discuss and ensure the integration is smooth.

OK Kelvin, thanks a lot for the insights and experience sharing! If readers want to learn more from Kelvin, he is a frequent visitor at our Jakarta meetup, so come over and have a chat. You can also find his LinkedIn profile here.

agile team

agile teams

scrum teams

Leave a Reply

Your email address will not be published. Required fields are marked *