I'm currently involved in an upgrade of a purchased product from version 6 to 8 (throught 6.5 and 7). This requires upgraded versions of OS, message queue, jdbc drivers, mainframe database and hardware (9-10 servers in test and production).
I've seen Agile (scrum) work on additions to an established infrastructure. How does an agile methodology apply to a project like this where we have 3 teams (dev, hardware and database) working on what appears to be a 10 month project with schedule restrictions based 3 separate schedules for delivery?
Why do you need to have three teams? Why would they be separated by function?
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
It depends on your context and your goals. You will have to determine those yourself, and based on your findings, you can then start looking at what practices to adopt.
A few that come to mind that I've seen in similar situations are: 1) we need to communicate better because we are three different teams, 2) we need to be 'on the same page', and 3) we need to integrate well.
Those bring practices such as: 1) co-location, evocative documents, workshops 2) release backlog, iterations, iteration demos 3) continuous integration
Now, I don't recommend you adopt them all at once. And which ones come first really depend on your pains, risks, and goals.
Hope this helps - Amr
Amr Elssamadisy<br /><a href="http://www.amazon.com/Agile-Adoption-Patterns-Roadmap-Organizational/dp/0321514521/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1220909336&sr=8-1" target="_blank" rel="nofollow">Agile Adoption Patterns</a>