Posted on 2 mins read

What is Agile Software Development?

It refers to adopting a set of practices or principles while developing software.

In early 2001, the Agile Alliance met to outine the values and principles that would allow software teams work together and respond to change.

Agile Software Development, Principles, Patterns and Practices.

Things that got my attention

1.

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

2.

An agile project is not run like a 50-yard dash; it is run like a marathon. They run at a fast, sustainable pace. Running too fast often leads to burnout, shortcuts and debacle. … A team is not allowed to work overtime. The only exception is the last week in a release.

3.

Splitting, Spiking and Velocity. Any story too big should be split in stories that aren’t too big. After splitting, it should be reestiamted.

Velocity is something like “2 days per story point”.

Example:

-> Users can securely transfer money into, out of, and between their accounts.

becomes

-> Users can login
-> Users can logout
-> Users can deposit money into their account
-> Users can withdraw money from their account
-> Users can transfer money from their account to another account

4.

Intentional programming. You state your intent in a test before implementing it, making your intent as simple and readable as possible. The act of writing tests first is an act of discerning between design decisions. WumpusGame example: Integers instead of room object or game world?

White box test: A test that knows and depends on its internal structure. (unit)

Black box test: A test that does not know or depend on its internal structure. (acceptance)

5.

Always practice refactoring for every module you write and every module you maintain.