KEMBAR78
Common Problems of Software Development | ODP
Common Problems of Software
      Development

        Aleksejs Truhans
       10.05.2012 @ tsi.lv
Who's speaking?
Who?
Programmer, student, teacher, administrator,
father, analyst, project manager, team leader...

Where?
citadele.lv, tsi.lv, nh.lv, javaguru.lv,
agile-latvia.org

Contacts?
@AleksejsTruhans,
Aleksejs.Truhans@gmail.com
Things I haven't been taught in
              university
Unit tests
Version control
Issue tracking
Test driven development
Pair programming


=> javaguru.lv
Recent trends
Protecting personal data. And sharing them.
 Simultaneously
Mobile computing
Stop pushing features, start delighting users
Multiprocessor parallel computing
We work hard...




http://writerunboxed.com/2006/10/09/driving-the-deadline/
…yet we never know the future.




  By Simon Baker, http://www.energizedwork.com/weblog/2007/11/xpday7-why-do-agile-projects-fail
Our perception changes...




http://community.humanityhealing.net/group/toolsforshiftingperspective/forum/topics/is-what-you-see-real-change-
                                       your-perception-change-your-life
People change...




http://www.tnp.sg/picture/big-picture-week-12-finalist-5
So does the environment.




     http://vxside.deviantart.com/art/4-seasons-81436429
simplicity
discipline
value
feedback
beyond rules and roles
On February 11-13, 2001, at The
 Lodge at Snowbird ski resort in the
 Wasatch mountains of Utah,
 seventeen representatives
 convened...

http://agilemanifesto.org/
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.
Applicability




http://www.scrollinondubs.com/2005/11/23/book-review-agile-software-development-by-alistair-cockburn/
Applicability




 http://duncanpierce.org/node/163
Some of our work goes down
         the drain




 http://brucesmideastsoundbites.blogspot.com/2009/03/down-drain-pouring-money-down.html
Most of time it's “almost ready”
We lie to ourselves



Customers will understand

We will fix it in the next release
Efficiency deterioration
Continuous attention to technical excellence
       and good design enhances agility.


      Agile processes promote sustainable
  development. The sponsors, developers, and
users should be able to maintain a constant pace
                  indefinitely.



                   http://agilemanifesto.org/
More in “Economics of Software
  Design” by J.B.Rainsberger

      http://jbrains.ca

http://www.youtube.com/watch
       ?v=7HecgbghFTk
Individuals and interactions over processes and
                      tools

 Build projects around motivated individuals.
 Give them the environment and support they
  need, and trust them to get the job done.

  The best architectures, requirements, and
 designs emerge from self-organizing teams.



                  http://agilemanifesto.org/
http://knolt.com/projectmanagementconstruction/
Responding to change over following a plan

Simplicity--the art of maximizing the amount
        of work not done--is essential.




                 http://agilemanifesto.org/
http://lkb.lv/
Customer collaboration over contract negotiation

 Our highest priority is to satisfy the customer
    through early and continuous delivery
             of valuable software.

 Welcome changing requirements, even late in
 development. Agile processes harness change
   for the customer's competitive advantage.



                   http://agilemanifesto.org/
http://hypertonicreservoir.tumblr.com/
Business people and developers must work
  together daily throughout the project.


Working software is the primary measure of
                progress.




                http://agilemanifesto.org/
Deliver working software frequently, from a
couple of weeks to a couple of months, with a
     preference to the shorter timescale.

  The most efficient and effective method of
    conveying information to and within a
development team is face-to-face conversation.




                  http://agilemanifesto.org/
At regular intervals, the team reflects on how
  to become more effective, then tunes and
       adjusts its behavior accordingly.




                  http://agilemanifesto.org/
We

learn
analyze
invent
communicate
make decisions
Professionalism...




http://praguestepchild.blogspot.com/2011/02/pride-of-workmanship.html
Responsibility...




http://simply-the-test.blogspot.com/2010/05/it-works-on-my-machine.html
/http://uphilldowndale.files.wordpress.com/
Focus...




http://www.flickr.com/photos/lululemonathletica/4207563765/
More:

http://articles.jbrains.ca/GettingStartedWithGettingT
hingsDone.pdf

http://www.stevepavlina.com/blog/2005/06/self-
discipline/

http://www.stevepavlina.com/blog/2007/05/33-
rules-to-boost-your-productivity/




                    http://agilemanifesto.org/
Interested?


Watch the presentations:

 http://agileee.org/2011/07/15/keynote-the-extreme-decade/

 http://agileee.org/2011/07/14/keynote-effective-software-
development-in-the-21st-century-the-new-face-of-software-
engineering/



Read the books...

Common Problems of Software Development