Tuesday, November 9, 2010

PostTwiceDaily2 11/09/2010 (a.m.)

    • We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:



      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.
      • Twelve principles underlie the Agile Manifesto, including:[6]


        • Customer satisfaction by rapid delivery of useful software
        • Welcome changing requirements, even late in development.
        • Working software is delivered frequently (weeks rather than months)
        • Working software is the principal measure of progress
        • Sustainable development, able to maintain a constant pace
        • Close, daily cooperation between businesspeople and developers
        • Face-to-face conversation is the best form of communication (co-location)
        • Projects are built around motivated individuals, who should be trusted
        • Continuous attention to technical excellence and good design
        • Simplicity
        • Self-organizing teams
        • Regular adaptation to changing circumstances
    • Agile methods break tasks into small increments with minimal planning
    • When asking questions
      is difficult
      or slow the knowledge gap grows. The system will get
      built, but it won't solve the problem like one guided by an expert on a
      daily
      basis.
    • the way a team works together is far more
      important than any process.
    • Perhaps
      the
      biggest problem with software development is changing requirements.
      Agile processes accept the reality of change versus the hunt for
      complete, rigid specifications. There are domains where requirements
      can't change, but most projects have changing requirements. For
      most projects readily accepting changes can actually cost less than
      ensuring
      requirements will never change.
    • the way a team works together is far more
      important than any process. While a new process can easily improve team
      productivity by a
      fraction, enabling your team to work effectively as a cohesive unit can
      improve
      productivity by several times.
    • The
      most brilliant programmers alive working competitively in an ego-rich
      environment can’t get as much done as ordinary programmers working
      cooperatively as a self disciplined and self-organizing team. You need
      a process where
      team empowerment and collaboration thrive to reach your full potential.
    • making the



      customer, the
      one who funds
      the
      software development,
      a valuable and essential team member.
    • The values of
      the Agile Manifesto are:
    • Individuals and
      interactions
      over processes
      and tools
      .
    • the most important factors that you need to consider are the
      people and how they work together because if you don’t get that right the best
      tools and processes won’t be of any use. 
      Tools and processes are important, don’t get me wrong, it’s just that
      they’re not as important as working together effectively.



    • agile software development is:  

      <!-- Google Ad -->
      <script type="text/javascript"><!--
      google_ad_client = "pub-1563172974921293";
      google_alternate_ad_url = "http://www.ambysoft.com/redirector.html";
      google_ad_width = 120;
      google_ad_height = 90;
      google_ad_format = "120x90_0ads_al_s";
      google_ad_channel ="9817671336";
      google_color_border = "999966";
      google_color_bg = "FFFCEA";
      google_color_link = "660033";
      google_color_url = "008000";
      google_color_text = "000000";
      //--></script>
      <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
      </script> <!-- End Google Ad -->

       



       


      An iterative and incremental (evolutionary)
      approach to software development



      which is performed in a highly collaborative manner



      by self-organizing teams within an effective
      governance framework



      with
      "just enough"
      ceremony



      that produces high quality solutions



      in a cost effective and timely manner



       which meets the
      changing needs of its stakeholders.

    • One of
      several reasons
      why agile techniques are so effective, in my opinion, is that they
      reduce the feedback cycle between the generation of an idea (perhaps a
      requirement or a design strategy) and the realization of that idea. 
      This not only minimizes the risk of misunderstanding, it also reduces
      the cost of addressing any mistakes.  In this article I explore
      this idea in detail.
    • part of the answer is to move to a more
      agile process with more frequent client involvement, but it's not
      immediately clear how this would work for the business. Would it
      mean the end of fixed-price contracts? Would that be a bad thing?
      What are the alternatives? Is there a way to recognize which
      projects are likely to get in trouble before the contracts are
      signed? Do all your projects need to use the same development
      process?
    • literature research on
      approaches to managing agile projects in a contract development
      shop, and develop a set of recommendations for your management
    • you could argue that adopting an agile
      development approach would help Web21 to be more successful with the
      type of projects that have been causing problems - specifically,
      those for which requirements are hard to nail down up
      front
    • you could argue that Web21 should have a
      process for recognizing which projects are likely to cause trouble
      so you can avoid them in the future
    • offer a well-reasoned set of arguments leading to a
      conclusion that recommends specific actions.
    • there are no
      silver bullets
      in software development, so you will need to be
      realistic about what they should expect by improving their process
      and find sources that show not only the promises but the limitations
      of your recommended approach.

Posted from Diigo. The rest of my favorite links are here.