While there was a little research detailling the benefits of agile software development not actually that much systematic work was done to find the problems rising from using the agile paradigm. Therefore, what’re the issues with agile applications development? In A Comparison of Problems and Benefits in Agile and Incremental Development involving State of the Art and an Industrial Case writers Petersen and Wohlin list several advantages and issues associated with Agile software development. Problems with Agile Software Development – Petersen and Wohlin provides 3 lists of topics. There are plenty of things that must work in order for constant testing to work.
Just to name a few! There has to be a working automatic build and packaging script. There must be a working environment wherein the aforementioned script is running regularily. Programmers should work on a common branch or commit or merge to the frequent branch often. It has to be possible to deploy the application to an evaluation environment. Deployment can’t include manual steps and regular changes which violate the automatic testing. Test interfaces must be comparatively stable so the automatic test cases do not violate all the time. Suites of automatic test cases must be accessible. The automatic test cases must offer meaningful info concerning the system under test.
The team of programmers must set a sound culture about constant testing so the info is used and acted upon. Issue 2: Multiple Configurations and Agile – indefinitely, I’ve not encountered that many difficulties rising from this issue. Most methods require co-ordination and of the overhead rises rapidly as more teams are involved. A software system should not be overly simplified if it’s going to serve its purpose. Issue 4: Dependencies Discovered Late – The idea that dependencies will be discovered late because of the lack of major design in advance is a bit foreign to me. At my experience any development method will suffer from this problem.
The key is to keep a modular structure and also to always be willing to replant and refactor. Successful design work requires frequent shifts between different abstraction levels in order that what’s desireable could be reconciled with what’s possible. Issue 6: Hard to maintain priority and Agile – At my experience creating and managing priority lists for agile software development prerequisites lists is very difficult and seldom successful. On the surface, it sounds very simple to keep a list of priorities and after that simply do the most crucial thing first. Logically, if we do the most crucial things we’re always functioning on the right thing and nothing could go wrong I’ve a few problems with this: There’s no single oracle to turn to, to get the priorities of requirements.
Occasionally stakeholders may have widely varying needs and expectations. Maintaining an extensive list of prerequisites at which the items with the lowest priority would be executed some time in of the far future is daunting for both developers and stakeholders. Our limited cognition and inability to predict the future makes it difficult ascertain the real priority of things. My preferred approach is to attempt to organize prerequisites into minimal meaningful releases or potentially shippable increments.