21.9.14

Agile Delivery vs. Prototyping

  • Dan George
    Dan
    Principal Software Engineer at Grass Valley, A Belden Brand
    In a sense, your colleague has it right. Software is an example of production via prototype replication. We create the original, replicate it and distribute the replicas. However, I doubt that's what he meant.

    He probably thinks of a prototype as something that demonstrates some attributes of the real thing but not all. If this is his definition then he is missing that what is delivered at the end of the sprint *is the real thing*.

    In the late 80's and into the 90's we learned that sw prototypes were relatively expensive compared to the real thing. HW prototypes usually serve their purpose at much less cost than creating a real thing. Not so for sw. Also, too often the sw prototype seemed close enough and was shipped. The quick-n-dirty code lacked non-functional features and was costly in the long run.

    This ties into the value of documentation. If prototypes were expensive, why not just document what the product will look like and then build it? Well, turns out we are not so good at describing a software product on "paper." We can do screen-shots and such but over time we realized that documenting the product was less useful than prototyping and almost as expensive (or even more expensive).

    As much as we wish we were effective at validating the product on paper, we cannot seem to do it. We have to create a functional program to validate it. We learned that developing something that is functionally close, but lacking non-functional characteristics, was too expensive. We have to build it right the first time (ironic, eh?). Since we have to go to the extent of meeting both functional and non-functional requirements, we had better make sure we are building the right thing. Thus, we build it in small functional steps that are implemented well. Theoretically, we should be able to come up with something more efficient but every attempt as been less efficient or ineffective (or both).
     Leo R.Steve B. like this

16.9.14

The Diva Discussion in LinkedIn

I found this topic in the recent discussion in LinkedIn very interesting:

Dealing with Solo stars

Gets the job doneTop Contributor
OK, we've all seen divas in IT.

So let's assume you got a newly formed team and there's 3 guys working really hard to chunk up some basic domain expertise and deliver some value.

Then the CEO decides, without asking the team, to add one diva (with superior domain knowledge) to the team who neither participates in plannings nor standups, who prefers not to share any information unless explicitly asked and refuses to use collaboration tools like Jira, git or Jenkins.

Of course, the diva doesn't feel responsible to anyone and would rather tell the CEO that these guys are all idiots than to integrate and blend with the team.

What would you do?

    And I especially agreed with what Thad Scheer said and would like to share here for future references:

    • Thad Scheer
      Thad
      Managing Partner at Sphere of Influence
      Everyone's beating up on this poor CEO and "diva". I'll take the contrary point of view and side with them.

      The OP says "3 guys working really hard", that's different than "3 guys totally slaying the dragon". Maybe these guys are working hard but going nowhere fast? Maybe they aren't actually working hard relative to the CEO's work ethic? Maybe the bar within the organization has gotten lower over the years? Perhaps it's time to bring in a pro who knows what to do next, puts boot to ass, and gets stuff done?

      This person will make the locals look bad by comparison and will ruffle feathers. She doesn't attend their feel-good happy meetings and doesn't play their silly Agile games. She's laser beam focused on putting points on the board by developing software. The message is "don't step up if you can't keep up".

      The CEO is delighted with her performance because now the important things are finally getting done, things that matter to corporate strategy.

      In the end, the 3 guys are in the wind and the solo star will hire her own team comprised of people cherry picked by her to get things done. Arising out of the ashes is a new team harmony, not the old one built around feel-good happy meetings but a new one built around strong individual contributors, effective professional relationships, and a focused team-level dedication on execution.

      Is that so bad?

      Maybe she's not a diva, maybe she's Wonder Woman?


    This is my comments.

    • Jeff Huang
      Sr Software Architect / Sr Principal Software Engineer at CA Technologies
      @Michael I think you oversimplified what happened between the Diva and the team. How about asking the Diva the following questions:

      1. Do you want to work in this team? If no, why?
      2. Did you tried to work with the team? If yes, how? If no, why?
      3. What would be the best way to work with this team to his own opinion?

      Other than these general questions, you can also ask some more specific questions. For example:

      *. What is the reason that prevents you from using the collaboration tools? Ask him one by one. Do you have any other recommendations for the tools?

      Admittedly, some people are more team oriented, and some are not. But as long as they want to help the team, you can find a way to make it work. More importantly, the Diva is a real expert with superior domain knowledge, that's what matters.

      In fact, the Agile framework, IMHO, was designed to help fit those Diva into the team better.


    12.9.14

    What is Agility?

    I really like the Agile Manifesto:

    Individuals and interactions over Processes and tools
    Working software over Comprehensive documentation
    Customer collaboration over Contract negotiation
    Responding to change over Following a plan
    That is, while there is value in the items on the right, we value the items on the left more.

    To me, being Agile is a very natural thing: to develop successful software products. And I define successful software products in a very simple way:
    • A software product can be sold, and continuously sold successfully.
    Although this is not applicable to open source software, but I still like it.