Agile is a form a software development where advances in developing software are done in small, manageable amounts. When development is done in small iterations, it can be easier to make changes to the software and develop it in a certain direction as the developers, company, or clients see fit. This is in contrast to traditional methods of software development, where the design of the software is planned for in advance, and deadlines are pre-determined, leaving little room for deviation. Although traditional software allows a product to be delivered reliably on time, the product may also lack features that were initially not thought of until later in the development cycle. While the quality of a traditionally-developed software product will likely still be adequate, its features may not be as fleshed out as if it were developed with Agile.
This leads us to Scrum, a form of Agile development that my classmates and I are using for a university class. Up until this point, all of my software projects have been done alone recreationally—I have almost never developed software in a group, and I have never developed software to provide a specific purpose. Because of this, my Agile software project has for the first time allowed me to see how professional software development works, and more specifically, how quickly plans during the development process can change.
In my class’s Scrum, we meet with a client who tells us what he wants for a website, and sometimes during a meeting, he will tell us new information that we developers were previously unaware of, which may requires our groups to redistribute tasks. In addition, my Scrum group uses various websites such to decide on layouts, designs, and features for the website that we are developing on. From what I have seen, software development processes can take on various forms, and it this trait that allows creative solutions to be achieved via software.
