Agile model developed software in small iterations instead of developing entire software at once.
Entire products feature list is divided into multiple list of features. For example, if there are 50 features in software we can create 5 lists of 10 features each. Now developers will work on 10 features at a time, create and deliver those 10 features in first iteration and continue with the rest of the features until you get the final product.
Every iteration involves cross functional teas working simultaneously on various areas like:
- Requirements Analysis
- Unit Testing and
- Acceptance Testing
It is not only about creating but also delivering it to different environments like Dev, QA, Staging, UAT and Prod. By this lot of burden is increased the Operations team as they must continuously deliver these changes on the multiple environments. By the way these different environments are just some group of servers owned by different teams like QA is owned by software testers where they test the software.
The general approach that Developers take is that once they are done creating new a feature they will send a procedural document to the operations team explaining how to deploy it
Developers test it on their machine and feel that it should work same in production also. But production systems are different in design as there would be multiple servers for web service, database service and backend service secured by firewalls and NACL. There would be all stable OS and software with a different version that of Developers systems. Development servers are simple one machine and all the services are generally deployed in one server.