This document stands as a stepping stone in which we will conduct all of our development endeavors with.
The Agile methedology stems from the ever evolving world we live in. The four main values of Agile development are:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
-
###Individuals and interactions over processes and tools: We are a team first and foremost. We fail as a team and we succeed as a team. No one person is responsible for any failure or success. That being said, we need to keep communication open and work as a team to accomplish our goals and be responsible as individuals for our success. Utilize pair programming to keep two sets of eyes on one set of code. This will increase understanding, learning and quality of the product.
-
###Working software over comprehensive documentation Get the MVP(Mininum Viable Product) out the door and document what you have to. This means writing clean and cohesive code. Just remember, that spaghetti code will have to be rewritten. Let's hope you can remember what it is doing if it's not documented.. Good Design helps agility. Let's show our clients good software. Not a bunch of documentation.
-
###Customer collaboration over contract negotiation If the customer isn't happy, then we don't get paid. Constant collaboration with the client will make them feel involved and will deliver better product requirements(update them as they change), and outlook. The more the customer is in the loop, within reason, the more robust and happier they will be when we bill them. The happier they will be to refer us and keep coming back!
-
###Responding to change over following a plan Agile means being quick and reactive. We can't be either if we are boxed into a rigid structure which we cannot free ourselves from. Yes, there are general guidelines, but the team will make up its own structure and details as the project goes on. We are free to create what we want.
With all this in mind, just remember: this is what we make it. Each team will be different, each product will change. Each process we use for each product will change. This is part of the beast. We will change things as we learn more. We will be agile enough for our means. Don't let the process hinder your ability to work and become the problem we are trying to solve.
Some general guidelines:
- Take some time to set up a standard framework, dev environment, and process. Taking the time now will increase development time later. And if it is documented, onboarding new memebers will become trivially easier.
- Pick something and stick to it. Yes, agile means being adaptive, but we won't get anything done with developer A.D.D. If something needs to be shelved inside the iteration, then it needs to be discussed with the group.
- Take the time at the end of the iteration to reflect on what worked for the team and what didn't. Change stuff for the better. Releases will get easier and easier after each iteration.