Agile process¶
- Working software is a key aspect of Agile.
- software development is all about iterations, if you succeed or failed this week does not mean that the things will be the same next week. so we need to be adaptable.
quotes¶
- General George S. Patton once said, tell people where to go, but not how to get there, and you’ll be amazed by the results.
- Henrik Kniberg, an Agile trainer and author, said: “The important thing is not your process. The important thing is your process for improving your process.”
- Alan Lakein, author og famous books on personal time management. He says, “Planning is bringing the future into the present so you can do something about it now.”
terminology¶
verified product
: means that the product was “done right” and meets the standards laid out by the development team.validated product
: meets the needs of the client. We say that a validated product is the “right product”.hacking
: getting the things work without propper pre-planning.Ad hoc
development: coding from your mind without a specific plan.
Agile Manifesto¶
- team of developers gathered to come up with better ways to manage the process of producing great software.
- They established foGeneral George S. Patton once said, tell people where to go, but not how to get there, and you’ll be amazed by the results.ur core value statements about what is most important in software development. To further expand on the core values, the Alliance also agreed on 12 supporting principles.
4 core values of Agile:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
- from these 4 core vluaes we can say:
- Your developers and clients will be more productive and effective in a collaborative relationship.
- You need to facilitate communication between the people wanting the product and the people producing the product.
- documentation should still be created constantly throughout the project. But when tough choices have to be made, a piece of working software is a lot more valuable than a document that outlines what the software should do.
- you need to foster a positive relationship with your customer that is more concerned with what they want and not as concerned with what is laid out in some contract.
- The client is the center of design and it is important to make sure that their vision is what is being developed.
- Software is constantly changing and it is important to develop your software in such a way that changes are easy to respond to.
Agile 12 principles:¶
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Deliver working software frequently, from a couple of weeks to a couple of months with a preference to the shorter timescale.
- Working software is the primary measure of progress.
- welcome changing requirements even late in development. Agile processes harness change for the customer’s competitive advantage.
- continuous attention to technical excellence and good design enhances agility. * Having readable, simple code and more flexible designs will allow changes to be easily implemented. * Having a good design can let you know what components are dependent on each other.
- agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- simplicity, the art of maximizing the amount of work not done, is essential. This does not mean that Agile is about delivering less. It means that Agile is about delivering what is essential and reducing unnecessary work.
- build projects around motivated individuals. Give them the environment and support that they need, and trust them to get the job done.
- the best architectures, requirements, and designs emerge from self-organizing teams
- client-developer communication, business people and developers must work together daily throughout the project.
- the most efficient and effective method for conveying information to and within a development team is face-to-face conversation.
- reviewing what’s been done, at regular intervals, the team reflects on how to become more effective, then tunes and adjusts it’s behavior accordingly.
good ways to make your software product more change friendly¶
- Frequent client communication.
- Neat, commented source code.
- Continuously reviewing and improving your project.
- Updated, prioritized list of features.
- Development team that is open to change.
practices follow the concept of simplicity from the Agile Manifesto¶
- minimal code that satisfies the desired functionality.
- essential documentation over elaborate documentation.
those are NOT following the simplicity: 1. no comments at all in the code. 2. only developing essential features : he team should develop features not based on their own criteria of what is important, but what is going to satisfy the client.
problems will be solved through monitoring¶
- Adapting to changing product requirements.
- Meeting project plan deadlines.
those are NOT solved by monitoring: 1. Avoiding having to fire his least productive developer: monitoring should not be seen as a way to assess the career progress. Keep it light. 2. Working without interruptions from the client: monitoring should not be a substitute for good communication with your client.