Agile is an interactive process in which you deliver value through a basic solution and then enhance it over time. You deliver quickly and you deliver often.
Throughout the whole process, you have constant communication and interaction with your customer to ensure he is happy with every product you give him. The client can actually start using even your first interaction.
Like in the above example, just like the car which is the final product, the skateboard can also be used to go from point A to point B giving us lesser options but still serving the purpose. It is nice to have a car but a skateboard is better than having nothing.
What exactly Agile does is, it provides you with a skateboard while you are trying to build a car. Let’s put this into the real web development world. Suppose you are building a website to sell products using different categories, flavors, and colors. In Agile you won’t spend months building that website instead you would create a basic first iteration maybe just a homepage to get started and then you would enhance it over time and start adding more & more pages to it, or more and more product features over time. In Agile, that period is called Sprint. A sprint normally lasts 2 weeks.
In Agile, the key concept is ‘keep it simple’. Build the minimum you really need to deliver what the customer expects and this relates to another key concept in agile which is known as the MVP or Minimum viable product. So, it is the minimum you can deliver which satisfies the basic requirement.
To define Agile, it is a methodology that delivers software or value incrementally from the start of the project instead of all at once at the end. It is iterative and time-boxed. It works by breaking projects down into little bits of user functionality called user stories, prioritizing them, and then continuously delivering them in short 2-week cycles called Sprints (iterations).