Agile – Should we adopt an agile methodology when rewriting an existing application from scratch

agiledevelopment-methodologiesproject-management

I work for a small product based company. We are about to re-write our existing product from scratch. We are planing to adopt Agile methodology for our development. Now my question is as we have all the requirements even before start of project (as we are re-writing the existing product), is it worth to dive into Agile world? Isn't agile more useful when you don't have all the requirement upfront and you get your requirement in phases?

Secondly, let's say if we jump into Agile, whats the best practice to design database? Let's say in our first iteration we just create a login system (user can login, logout etc). Do we just need to create Users table without worrying about other tables? And other tables would be evolved as our product would progress?

Best Answer

is it worth to dive into Agile world?

Yes.

Isn't agile more useful when you don't have all the requirement upfront and you get your requirement in phases??

False.

When you don't have all the requirements it's the only way to make progress. Anything else requires fanciful assumptions that will eventually be proven false. Agile simply makes fewer fanciful assumptions.

When you have all the requirements, you must still follow all the Agile principles.

Read this before proceeding any further: http://agilemanifesto.org/

All of these points are true no matter how much you know of the requirements.

You still benefit from using an Agile method like Scrum, because you'll have more realistic expectations.

whats the best practice to design database? Let's say in our first iteration we just create a login system (user can login, logout etc).

What a terrible first iteration.

Do we just need to create Users table without worrying about other tables? And other tables would be evolved as our product would progress?

Yes. You create the database incrementally.

You do everything incrementally.

You prioritize based on what creates the most value to users. Not fanciful (and silly) technical considerations.

Related Topic