Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^2: Nobody Expects the Agile Imposition (Part VIII): Software Craftsmanship

by jeffa (Bishop)
on Jun 11, 2015 at 23:16 UTC ( [id://1130108]=note: print w/replies, xml ) Need Help??


in reply to Re: Nobody Expects the Agile Imposition (Part VIII): Software Craftsmanship
in thread Nobody Expects the Agile Imposition (Part VIII): Software Craftsmanship

If your current development cycle is based on

  1. gathering ALL requirements for the project first
  2. then complete architecture and design
  3. then write the code
  4. then write the tests
  5. then deploy the code to production
then the Agile process can help you to achieve shorter completion cycles by focusing on shorter work cycles. The idea is to simply consume smaller chunks of work and produce potentially shippable product increments. This is very similar if not the same to release early release often.

There are many critical dependencies to making Agile/Lean work. There are many blockers to preventing it from working. If you ever have the privilege to join a true and successful Agile/Lean team then you will see that it works and it works well. Once the "pipeline" is successfully built and you see your checked-in code automatically deployed to test environments, etc. then you realize it is just an uber form of Clean your room.

I recommend this site http://agilemethodology.org/ to help understand the more involved portions, such as defining and implemented the necessary meetings that make this methodology so successful. The website has wonderful animated videos to illustrate the processes involved. Welcome to the future.

Update: Well BrowserUk, you can do whatever you want. If you want to learn more you can. If you want to continue to justify why you reject change, go right ahead. Just realize that you are considered a minority now and i for one am just glad that someone with your lack of vision is not on my team. For example, SSADM is specific example of Waterfall development -- which is pretty much the opposite of Agile, but one would not get that impression if they listened only to you. Thankfully we have Google and Wikipedia (and people who actually read what you link to).

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)
  • Comment on Re^2: Nobody Expects the Agile Imposition (Part VIII): Software Craftsmanship

Replies are listed 'Best First'.
Re^3: Nobody Expects the Agile Imposition (Part VIII): Software Craftsmanship
by BrowserUk (Patriarch) on Jun 11, 2015 at 23:37 UTC
    Welcome to the future.

    That's what they said about SSADM back in the '80s. I rejected that back then; and I was right. Who's heard of it now?

    Different methodology; same goals. The reduction of the Art of Programming to a paint-by-numbers process with interchangeable machine parts. (Programmers)

    If you can reduce your programmer rolls to lots of Lil'boxes all made out of Ticky-Tacky then they can be managed as numbers in a spreadsheet.

    No stars; commoditised salaries; zero-hours contracts. An out-sourceable resource, purchased on a world-wide spot market at the cheapest price.

    Management has been falling for the hype for decades; and each new generation of programmers are all too ready to sign up with relish.

    It may be your tomorrow; but its not mine. I did my time. Good luck.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority". I'm with torvalds on this
    In the absence of evidence, opinion is indistinguishable from prejudice. Agile (and TDD) debunked
      Different methodology; same goals. The reduction of the Art of Programming to a paint-by-numbers process with interchangeable machine parts. (Programmers)

      That's been the attraction for management with every new process or programming method or language that ever gained a lot of buzz: the promise of being able to replace temperamental, expensive craftsmen with fungible, cheaper assemblers.

      So if something gets a lot of buzz in industry magazines, I assume it's probably not particularly good for programmers or for the craft of good programming. It hasn't failed me yet.

      Aaron B.
      Available for small or large Perl jobs and *nix system administration; see my home node.

        Scrum, for one agile methodology, is not at all about replacing people with cheaper people. It's all about getting a tighter feedback loop on smaller chunks of work. It's meant to deal with specification drift, scope drift, and people talking past one another about the customers' needs.

        Having two weeks or four weeks to deliver a minimum viable product, then increments of the same for new features to be added, is not something one should ask of a team of plug-in commodities. It takes a team some time to work together to even be able to estimate properly what they can deliver in that amount of time. Once the team is built, it should be left in place as much as possible.

        The practice of specifying every little thing up front can be handy if those specifications are done well and won't change. If the customer's needs or which needs take priority over other start to drift, then getting that feedback every few weeks becomes really valuable.

        "the promise of being able to replace temperamental, expensive craftsmen with fungible, cheaper assemblers"

        Wait, are you suggesting that is the "promise" of Agile as well? Because that is not true: http://scrumreferencecard.com/Obstacles_To_Enterprise_Agility_255033.pdf

        "It is naive to think of human beings as resources. Adding people to a team will not reliably increase the intangible resources--and may detract from them. After a year of doing Scrum, one of my clients reported “Once a team is formed, we would rather lose a team member than add one!” In another case, when the Scrum team itself made the hiring decision, adding a new member went well. Even when giving the team hiring autonomy, it’s inadvisable to grow it much larger than seven people. In some circumstances, adding teams may result in more progress, if we’re mindful of the intangible resources"

        These methodologies are built FOR programmers and FOR their craft. Most coders find these practices enjoyable and wonder why they had not used them sooner. The managers are the ones that take more convincing.

        jeffa

        L-LL-L--L-LL-L--L-LL-L--
        -R--R-RR-R--R-RR-R--R-RR
        B--B--B--B--B--B--B--B--
        H---H---H---H---H---H---
        (the triplet paradiddle with high-hat)
        
        So if something gets a lot of buzz in industry magazines, I assume it's probably not particularly good for programmers or for the craft of good programming. It hasn't failed me yet

        See Re^5: Nobody Expects the Agile Imposition (Part VIII): Software Craftsmanship :)


        With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority". I'm with torvalds on this
        In the absence of evidence, opinion is indistinguishable from prejudice. Agile (and TDD) debunked

      I fully agree. Instead of writing up stuff myself - a link: Why “Agile” and especially Scrum are terrible which is a nice read.

      TOC excerpt:

      Specific flaws of “Agile” and Scrum
      1. Business-driven engineering
      2. Terminal juniority
      3. It’s stupidly, dangerously short-term
      4. It has no regard for career coherency
      5. Its purpose is to identify low performers, but it has an unacceptably false positive rate
      6. The Whisky Googles Effect
      7. It’s dishonestly sold

      tl;dr:

      Agile is a tool and mindset which doesn't foster individual or collective joy in business, but to extort maximum profit from programmers in the name of effectiveness, without regard for the very foundations of the latter: individual strenghts, weaknesses, handicaps, genius; and it invades privacy, which is a requirement to grow.

      perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'

        I wouldn't be surprised if that author saw or even experienced most or all of what he wrote about. But I have experienced nearly none of it. It seems plausible that Agile/Scrum could be used that horribly.

        I'm not an Agile fanboy. Fighting Agile fandom or just making fun of it is not uncommon for me at work. This is an annoying part of Agile in a lot of places, but I tolerate it because I can also use the "fan" aspect to ease adoption of process improvements (and because this and other negative aspects of Agile don't outweigh the positive aspects, IME).

        Much of what he wrote is nearly opposite of what I've experienced with Agile. For example, I've never seen the tracking of individual contributor progress used in a way even close to what he describes as the purpose of that. One of the more dramatic benefits I've seen from Agile is the ability to greatly reduce non-direct management's focus on the productivity of individual contributors. The regular, short delivery cycles and several planning elements contribute to Business/Product being able to better predict schedules, which reduces their motivation to micro-manage into within-team concerns.

        Most teams I've been on did not even track individual progress nor productivity within Agile most of the time. When it was done, the purpose was simply to counter-act the common problem where a software developer gets "stuck" on a task and repeatedly thinks that they are 90% done while the time spent grows to many times the original estimate. And those times, the point was not even for the team lead to track individual productivity, but to get the developer to realize much more quickly how "stuck" they were so that they would stop trying to "push through" to finish their current approach but instead take a step back and realize a change was needed (I found that swapping tasks with another developer often just solved such problems).

        The criticisms that Agile does not cater well to senior developers and long-term projects with significant design requirements and also encourages the build-up of technical debt are more realistic. These are areas where you have to push back against Agile, but even more so, against Agile zealotry. I often laugh when I see again how several of my co-workers who aren't Agile zealots but are Agile fans are just unable to admit that aspects of Agile actually contribute to such problems (insisting that only the mis-application of Agile can be blamed).

        But it is certainly not true that Agile makes such problems inevitable. We have Agile zealots here and lots of Agile fans and we have many teams. Most teams have somebody very senior that is very highly appreciated. Many teams have quite successfully taken on projects that took years to develop very complex systems.

        My experience is that the really big projects are actually more likely to be successful with Agile than without it. The problems with Agile and large, complex projects are not trivial. But they are less likely to balloon into project killers, IME, than the classic problems that lead to such a high failure rate for large, complex computer projects.

        I did leave a previous job, in part, because I was not being successful in pushing for fairly minor process changes to prevent the build-up of technical debt. That was in the context of Agile. But the real problem there was that the person at the top of that company was notably bad at empowering those under him and this attitude rolled down hill. Empowering at the bottom is the single most important principle for success, in my opinion. The people closest to the problem are the ones best able to make good decisions about dealing with the problem. Agile had actually made the tech debt problem less bad than it used to be there. But the tech debt problem in the end was indeed the classic form that can happen with Agile.

        One part of the write-up you linked to may reveal a major source of the perspective presented:

        Scrum and Agile represent acknowledgement of the idea that emergency powers must sometimes be given to “take-charge” leaders who’ll do whatever they consider necessary to get a job done, leaving debate to happen later.

        That is the opposite of empowering at the bottom. In that environment, no set of principles will be able to lead to a good system. I've never seen Agile run in something even close to that manner. And the principles of Agile actually contradict such an approach. Straight from the founding Agile principles we have "Projects are built around motivated individuals, who should be trusted". (I suppose you could misread that as "around motivated leaders, who should not be questioned", but that is not how it was meant and is not how I've ever seen it interpreted.)

        So somebody worked in a tyrannical environment where they used many Agile principles and practices. And that was horrible. They also completely rejected one key Agile principle. So such horribleness is certainly not inevitable with Agile. I believe that things being horrible is pretty much assured (eventually) by the tyranny. I see no reason to deny that, in that environment, some Agile principles and/or practices contributed to the horror. But I don't think that actually says much about Agile.

        - tye        

        That is pure opinion editorial. No facts, no actual examples, and not one of the hypothetical anecdotes matched my experiences; I read the follow up post too and much of his would be insight was exactly the opposite of what I experienced at Amazon, for example. It’s not a computer science writing. It‘s personal philosophy blog posts.

        His logorrhea is only matched by his lack of meaningful, helpful, coherent conclusions, for example: Conclusion : Middle management is … both the solution and the problem. … rather than declaring the whole concept obsolete [we must\ figure out how to get good at it.

        You know what that kind of fluff and that ouroborian logic sounds like to me…? “The problem is the solution! We don’t know what to do but we need to figure it out!”

        Boo. Hiss. Fie.

        Instead of writing up stuff myself - a link: Why “Agile” and especially Scrum are terrible which is a nice read.

        He he. I posted the exact same link in Re^3: Nobody Expects the Agile Imposition (Part VIII): Software Craftsmanship 37 minutes before you.

        There's an applicable aphorism I'd quote, but then that yapping toy would pop up to point out my megalomania :)


        With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority". I'm with torvalds on this
        In the absence of evidence, opinion is indistinguishable from prejudice. Agile (and TDD) debunked
    A reply falls below the community's threshold of quality. You may see it by logging in.
Re^3: Nobody Expects the Agile Imposition (Part VIII): Software Craftsmanship
by BrowserUk (Patriarch) on Jun 13, 2015 at 11:28 UTC
    Update: Well BrowserUk, you can do whatever you want. If you want to learn more you can. If you want to continue to justify why you reject change, go right ahead. Just realize that you are considered a minority now and i for one am just glad that someone with your lack of vision is not on my team.

    Read, digest, think!

    It's your future. (Mine's already sorted.)


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority". I'm with torvalds on this
    In the absence of evidence, opinion is indistinguishable from prejudice. Agile (and TDD) debunked
    A reply falls below the community's threshold of quality. You may see it by logging in.
Re^3: Nobody Expects the Agile Imposition (Part VIII): Software Craftsmanship
by Anonymous Monk on Jun 12, 2015 at 00:38 UTC

    jeffa, Your ideas are intriguing to me and I wish to subscribe to your newsletter.

Re^3: Nobody Expects the Agile Imposition (Part VIII): Software Craftsmanship
by Anonymous Monk on Jun 12, 2015 at 00:37 UTC
      SSADM is specific example of Waterfall development -- which is pretty much the opposite of Agile,

      No shit Sherlock!

      Let me translate describe word this: "Different methodology; same goals.", just for you:

      Do fings uvver ways, but same shit result.

      Damn. I failed. Two of those words are more than one syllable.


      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority". I'm with torvalds on this
      In the absence of evidence, opinion is indistinguishable from prejudice. Agile (and TDD) debunked

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1130108]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (2)
As of 2024-04-25 22:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found