Be an agile software developer

What is agile software development?

“Agile Development” is an umbrella term for several iterative and incremental software development methodologies.

There are many methodologies: Extreme Programming XP, Scrum, Crystal, Dynamic Systems Development Method DSDM, Lean Development, and Feature-Driven Development FDD. Each one of them has a unique characteristic; however, they all share the same approach to the incorporation of iteration and feedback that helps to improve and deliver a final software system.

What does that mean?

Software development is taken more seriously because, to develop a software system, these methodologies involve continuous testing, planning, integration, and evolution of software. These methodologies force people to collaborate and make decisions together in a more efficient, and effective way.

This isn’t new, however:

These practices have been around for several years. Basically, these methodologies have packaged and implemented various management, engineering, and customer aimed practices to help, and guide teams into making quick and efficient solutions. Planning and delivering. This trend has been evolving and improving constantly.

VIDEO

References:

https://www.versionone.com/agile-101/


Agile Methodology

https://www.versionone.com/wp-content/uploads/2015/06/agile101-software-dev-300x200.gif
Original at: https://www.versionone.com/wp-content/uploads/2015/06/agile101-software-dev-300×200.gif

Agile Scrum Methodology

Scrum is a management and control process that cuts through complexity to focus on building software that meets business needs. With Scrum methodology, the “Product Owner” works closely with the team to identify and prioritize system functionality in form of a “Product Backlog”. The Product Backlog consists of features, bug fixes, non-functional requirements, etc. – whatever needs to be done in order to successfully deliver a working software system.

  • A “process framework” is a particular set of practices that must be followed in order for a process to be consistent with the framework. (For example, the Scrum process framework requires the use of development cycles called Sprints, the XP framework requires pair programming, and so forth.)
  • “Lightweight” means that the overhead of the process is kept as small as possible, to maximize the amount of productive time available for getting useful work done.

Lean and Kanban Software Development

Lean Software Development focuses the team on delivering Value to the customer, and on the efficiency of the “Value Stream,” the mechanisms that deliver that Value. The main principles of Lean methodology include:

  • Eliminating Waste
  • Amplifying Learning
  • Deciding as Late as Possible
  • Delivering as Fast as Possible
  • Empowering the Team
  • Building Integrity In
  • Seeing the Whole
image1
Original at: https://www.infoq.com/articles/hiranabe-lean-agile-kanban

Lean also concentrates on the efficiency of the use of team resources, trying to ensure that everyone is productive as much of the time as possible.

Kanban is based on 3 basic principles:

  • Visualize what you do today (workflow): seeing all the items in context of each other can be very informative
  • Limit the amount of work in progress (WIP): this helps balance the flow-based approach so teams don ‘t start and commit to too much work at once
  • Enhance flow:
    http://dsdmofagilemethodology.wdfiles.com/local--files/start/ass11.PNG
    http://agilemodeling.com/images/lifecycleFDD.gif
    Continue reading "Agile Methodology"