Re: [teampractices] Healthy discussion: A couple of articles against scrum

2016-10-13 Thread Geeta Kavathekar
Thank you, Kevin, for taking the time to read and share your valuable
thoughts.

On Thu, Oct 13, 2016 at 9:20 AM, Kevin Smith  wrote:

> On Wed, Oct 12, 2016 at 10:17 PM, Geeta Kavathekar <
> geetakavathe...@gmail.com> wrote:
>
>> In regards to the engineering driven and "calling the shots" comments in
>> the article, as I understand the Product Owner is the sole person that owns
>> the product backlog and responsible for maximizing the value of the product
>> and the work of the Development Team. However "in the Sprint Review the
>> entire group collaborates on what to do next, so that it provides valuable
>> input input to the subsequent Sprint Planning." The basic "Scrum Value" of
>> "respect" of each person's role on the Scrum Team and what they bring needs
>> to be there.
>>
>
> ​Indeed. In agile processes, the product owner would never make decisions
> in a vacuum. In addition to evaluating customer needs and wishes, they must
> always consider the feasibility, practicality, and long-term sustainability
> from a technical side. The developers are going to provide most of that
> information. Agile was partly a reaction against "throwing requirements
> over the wall", so it emphasizes ongoing conversations between developers
> and [customers OR customer proxies such as product owners].
> ​
>
>
>> In regards to the "terminal juniority" I am not sure I understand the
>> argument as I think the best Development team is made of cross functional
>> team members which means all skill sets and levels. And that the senior
>> developers could be paired up with the junior ones as needed which could be
>> fulfilling for both and the entire team.
>>
>
> ​Absolutely!
> ​
>
>
>> The Development team from what I have heard should be at 80% capacity so
>> that there is time for exploration and creativity and 10% of the current
>> Sprint should be for "backlog grooming" so there is not a constant looking
>> ahead.
>>
>
> ​Those are not universal numbers, but are reasonable guidelines. Some
> teams might run at near full capacity while others could be below 80%. Some
> teams allocate a specific amount of time for managing/reducing tech debt.
> And some teams adjust those numbers up or down depending on external
> deadline pressures that tend to come and go. I'm not sure about Scrum, but
> in agile more generally that 10% number would be flexible as well. But your
> main point, which is that a "sprint" does not mean an emergency death
> march, is absolutely true.
> ​
>
> ​Thanks for sharing your thoughts.
>
> Kevin
> ​
>
>
> ___
> teampractices mailing list
> teampractices@lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/teampractices
>
>
___
teampractices mailing list
teampractices@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/teampractices


Re: [teampractices] Healthy discussion: A couple of articles against scrum

2016-10-12 Thread Geeta Kavathekar
Thanks for sharing these articles. They were most interesting to me.  As a
newly certified PSM and just having studied The Scrum Guide and now working
a Scrum team I found these articles really very enlightening. I would agree
with all of the comments Kevin talked about as I read the articles I had
many of the same thoughts. Please bear with my basic thoughts below and
these articles shed light on what hiccups I can run into or what more I
could do as a Scrum Master.

As I understand (please note that I am still learning) that Scrum is based
on the empiricism which means that knowledge comes from experience and
making decisions based on what is known. Three pillars (transparency,
inspection and adaptation) uphold every implementation.  So in the first
article, it was interesting to read about the "one sided transparency"
since every Scrum event is based on those 3 pillars including transparency.
Scrum is about long term goals and short term planning. In the Sprint
review is where the Product owner should make it visible about the long
term goal and the assessment on the progress toward completing projected
work by the desired time for the goal.

I was surprised to read that the author felt that their creativity is
stifled if they have to explain themselves while working as from what I
understand Scrum's team model "is designed to optimize flexibility,
creativity and productivity."  The reason behind the daily standup is a
short meeting related to the 3 pillars and inspecting and adapting and
making it transparent to the development team on how things are going
rather than waiting to the last minute or a weekly status meeting.  In my
understanding the development  team is responsible or committed for the
estimates of the user story and the "how" of implementing them. To be self
managed including having those "expertise or specialized" skills in the
development team to create the product increment. I would think that is how
teams are motivated and want to work or be is to have their autonomy,
mastery and purpose. In Scrum by being cross functional and self organizing
it should enable them to that end.

In regards to the engineering driven and "calling the shots" comments in
the article, as I understand the Product Owner is the sole person that owns
the product backlog and responsible for maximizing the value of the product
and the work of the Development Team. However "in the Sprint Review the
entire group collaborates on what to do next, so that it provides valuable
input input to the subsequent Sprint Planning." The basic "Scrum Value" of
"respect" of each person's role on the Scrum Team and what they bring needs
to be there. In an engineering driven organization just because the
engineer/developer called the shots does it mean they brought the most
value to the customer/marketplace or did something they thought was cool?
Again this also does not mean that there is no room for discussion which
takes "courage" and "openness" among the Scrum team members.

In regards to the "terminal juniority" I am not sure I understand the
argument as I think the best Development team is made of cross functional
team members which means all skill sets and levels. And that the senior
developers could be paired up with the junior ones as needed which could be
fulfilling for both and the entire team.

In regards to the comments about the sprint being an "emergency" or running
as fast as you can and "weeding out low performers" makes me feel like the
Scrum Master did not teach or coach on the Scrum Framework.  The
Development team from what I have heard should be at 80% capacity so that
there is time for exploration and creativity and 10% of the current Sprint
should be for "backlog grooming" so there is not a constant looking ahead.
The statements at the end that "Agile" glorifies "emergency" and an
"aspiring demogague (scrum master)" is not how I view Scrum or my role as
Scrum Master. In fact as a servant leader and in an utopian (naive) world I
would work myself out of the job/role.

If you've read this far, thank you for your time and attention.  Your
comments are welcome as I learn.

Regards,
Geeta




On Wed, Oct 5, 2016 at 1:46 PM, Kevin Smith  wrote:

> Again, thanks Joaquin for sharing these.
>
>
> This (insanely long) email is in response to article:
>
> https://michaelochurch.wordpress.com/2015/06/06/why-
> agile-and-especially-scrum-are-terrible/
>
>
> Here's my tl;dr of the article: He associates agile with aggressive
> management, hyper-focus on individual productivity, stifling developer
> creativity, poor code quality, and a lack of professional development.
>
> Here's my tl;dr of my response: Agile encourages humane management,
> de-emphasizes individual performance, enhances developer creativity,
> can/should improve code quality, and is neutral to positive regarding
> professional development.
>
> And with that, I invite you to marvel at my massive wall o' text
>
>
> 

Re: [teampractices] Healthy discussion: A couple of articles against scrum

2016-10-05 Thread Kevin Smith
Again, thanks Joaquin for sharing these.


This (insanely long) email is in response to article:

https://michaelochurch.wordpress.com/2015/06/06/why-agile-and-especially-scrum-are-terrible/


Here's my tl;dr of the article: He associates agile with aggressive
management, hyper-focus on individual productivity, stifling developer
creativity, poor code quality, and a lack of professional development.

Here's my tl;dr of my response: Agile encourages humane management,
de-emphasizes individual performance, enhances developer creativity,
can/should improve code quality, and is neutral to positive regarding
professional development.

And with that, I invite you to marvel at my massive wall o' text


Disclaimer/context: I was a professional programmer for a decade before
agile was invented. I have been a strong advocate for agile software
development since 2001, but I remain agnostic about the specific
implementation called Scrum.

I disagree with much of what is in this article. I can see that the author
has been in some highly dysfunctional environments, and he has my sympathy
for that. He pins the blame on agile and scrum, where I see other causes.
I’m afraid that much of my response is the dreaded “that’s not agile!”[1].
But  I will try to focus on my own experiences, and will try to comment on
his statements which seem more refutable.

Speaking as a developer, switching to “stories” and “iterations” greatly
improved my sense of accomplishment, rather than stripping it away. Stories
are written loosely enough that I would have to work closely with the
customer (or proxy) to figure out what was really needed (and technically
possible). Iterations allowed me to celebrate every couple weeks that we
had made tangible progress. The typical pre-agile alternative was to futz
around aimlessly for a few months, and then have a few months of all-out
death march, before releasing something that was both late and unfinished
at the same time.

I tend to agree about the pitfalls of open-plan offices. But I was
complaining about those in the 80’s, so I don’t see those as an agile
problem. And if I have experienced “humiliating visibility” into my work,
it was in non-agile environments.

In agile, programmers should never be “jerked around or punished when
things take longer than they ‘seem’ they should take.” If that’s happening,
it’s not agile. Period.

The distinction between business-driven and engineering-driven is a real
thing, although there are some subtleties that I think the author
overlooks. I have seen a lot of engineering-driven organizations make
really bad choices: They can produce things nobody wanted; they can
overproduce things to the point of bankruptcy; they can bounce from cool
idea to cool idea without finishing anything. Basically, either approach
can be done well or poorly. At least in theory, I believe that the business
people (or more accurately the “product” people) can and should understand
the customer, and from that they should be able to guide the team to
satisfy those needs. If the business people ignore technical concerns
raised by developers (including tech debt), then they’re not doing it
right. This idea that code quality suffers under agile/scrum seems to be a
recurring theme.

The author claims that “Architecture and R and product development aren’t
part of the programmer’s job, because those things don’t fit into atomized
‘user stories’ or two-week sprints.” Wow, I disagree so strongly with that.
Especially with Test-Driven Development (of which I’m a huge fan),
architecture is *always* a part of the programmer’s job. Architecture and
code design are ongoing, and require constant attention. The developer is
always expected to find (research?) the optimal design. And I’m not sure
how “product development” could not be a part of software development.

I agree that estimates are often misused/abused. But I disagree that they
are useless or harmful. I wrote a lengthy email in an earlier thread on
that topic.

The author feels that agile methods put programmers in the role of
children. Personally, I have experienced two kinds of non-agile
environments: Those that are more structured (waterfall-ish), and those
that are less structured (chaos/cowboy-ish). In the former, I have felt
like a powerless child. In the latter, I have felt like an out-of-control
teen. In agile environments, I have felt like a responsible adult.

This might be a good place to mention that I strongly believe that
programming is a craft. The output has to be functional, so it’s not an
art. We’re generally not inventing entire new paradigms and ideas, so it’s
not science. We’re usually not applying universal laws and heuristics, so
it’s not engineering. As a craft, those who have the skills and knowledge
should be respected, appreciated, and rewarded.

I dispute the claim that “Agile is designed for and by consulting firms
that are marginal”. Some of the biggest early proponents of agile were
developing in-house