Agile is pretty much standard these days, basically imagine a year is broken up into 4 releases (just an example). For each release, you break it down into 4 or 5 “iterations.” An iteration is typically 2-3 weeks, but due to math it can be 4 weeks sometimes. Really these numbers are tweakable, a lot of people like to go 1 week, but I digress.
Anyhow, for an iteration you commit to a specific deliverable, and you deliver it during that iteration. You are also doing release planning for what will be released for future releases, and iteration plannings where you are doing meetings once per iteration to plan what will be delivered in the next iteration.
You also have daily standup meetings, which are designed to be literally that: a “stand up” meeting to encourage people to be quick. You spend 1-2 minutes telling everyone what you’re working on, and any issues you are stuck on, and then people can help you figure out how to move forward. Just a quick update, “I am stuck until dev X completes the schema changes” move on.
So whats the upside? Being very “agile” as they say. You spend a week adding a new screen to the application, bam its in. Customers can look at it and give instant feedback, PMs can see whats going on in real time, and most importantly things can shift in importance. Instead of “I spent 3 months adding this feature and now the customer is seeing it for the first time and hates it”, its more “The customer saw the screen and now doesn’t like what they’ve seen; we need to change it.”
The hardest part is breaking your work down into small enough chunks that you can create a deliverable, ESPECIALLY on brand new applications. But you just do stuff like "Create the screen in iteration 1. Iteration 2, add some backend code to handle “load” and “save.” Iteration 3, add more features to the screen. etc.
In short, its supposed to keep a company agile, able to react to a customers needs, and allows you to shift priorities in short order. And the deliverables are simple enough you can jump in and help out when/ where needed. Also, typically when working in agile, half your time is spent on new features, and half your time on bug fixing/meetings. So half a work day is considered a “point” and you rate your deliverables in points. “I can do that feature in 5 points.” then you use a system to track everything, like Rally, and it lists your teams, the iterations, what features you worked on and are planning to work on, and the road map (list of upcoming features and when they’ll be delivered) is constantly changing.
I enjoy it, when you are in bigger companies its needed. Back when I worked at a small, more personal company, it wouldn’t have been needed. This was the kinda place where my boss would come by ,say “I have an idea for X, what do you think?” And we’d come back at the end of the week and be like “Here you go boss, check it out!”
Now its like somebody goes “What do you think of X?” and its like “Sounds good, but you’ll need to run it through the PM and then we can see about adding it to the road map for the future.” But thats just the nature of working in a huge company.