Delivering complex Web applications on time and on budget is a difficult engineering task. It requires that the engineer be conscious of the big picture – the client’s business case – and the individual components that make up the larger system. Each individual line of code helps realize the larger vision and serves the client. In order to manage this complexity, engineers use rule sets called “software development methodologies” to guide their work.
There’s no clear consensus within the industry on which methodology is best. But there are plenty of fervent advocates of each method. Here at Etna, we don’t subscribe to a single methodology. Instead, we evaluate each project separately and choose the appropriate methodology (or blend of methodologies). When kicking off a project, we consider the following factors:
• Changing Requirements – If the feature set of a project is likely to change, it’s good to consider an Agile approach. If the requirements are simple and finite, a Waterfall approach may be appropriate.
• Project Size – If the project is too small, it may not be feasible or beneficial to enforce a more complex methodology like Scrum.
• Future system enhancements – Will future phases come fast and furious? Or will the system be largely untouched after delivery?
• Engineer Experience – How does the team work best? Will we need significant methodology training with the selected team?
While it’s easy to be overwhelmed by the massive number of options when choosing a methodology, remember, there is no absolute right answer. When in doubt, keep it simple, and remember that your chosen methods should be a help to the process, not create more complications. Regardless of the chosen methodology, the most important ingredient for success is to hire strategic, engaged, and productive engineers!