
When should firms use Agile? The short answer is that within IT, it should be the de-facto methodology for development, migration and delivery of IT projects. However, Agile is difficult, mandates a long-term investment along with widespread cultural, organisational, and automation changes and improvements.
| Use Agile when |
Pros |
Cons |
| Architecture informal and incremental | Discovery with hands-on allows one to discover the current estate which is mandatory in order to build a proper TOM | Cross functional teams are difficult to arrange, manage, Agile PM skills do not exist |
| Budgeting | Based on delivering value | Waterfall budgeting is done once a year, difficult to change |
| Code base | Code management is important and each code base moves with associated application to TOM | Existing SME time to help discover can be costly, difficult |
| Supporting infrastructure | Applications are tied to LDAP, DFS, NFS and other infra | Domain, network access difficult to obtain, time-lags |
| Continuous integration | Dependency mapping a priority and necessity | Not documented usually, takes a lot of SME, existing Ops time to do |
| Functional Requirements are complex | Domain logic must be understood | Domain logic documentation costly to make, time-lag, requires a lot of people to input |
| Non-Functional requirements are complex | NFRs are built into the design | If no existing NFRs takes time to get the organisation to agree on what they are |
| Best engineering practices | Patterns and principles drive development, deployment | Patterns and principles need org input and sign-off, takes time, Agile skills lacking |
| Stakeholders | Matrix map of stakeholders and what they want | Time-consuming, hard to get inputs from stakeholders, delays everything |
| Complex environments | Design principle should be simplicity, need to map out how to migrate to a coherent model | Silos mean little active cooperation can be expected, unless C Suite gets involved |
| Business | Aligns IT with the business | Business does not have time for technical projects |