associated with complex programs led to the origin of scripted languages and with it, the process of continuous build and test. We saw the rise of the interpreted languages- Perl, Python, PHP, and Ruby, to name a few. Though initially dubbed "kiddie scripting" languages, their use in the deployment of hyper-scale systems (Facebook/PHP and OpenStack/Python) saw a rise in their usage. With multiprocessors and the scale of commodity clusters, the need for languages that support parallel processing led to a revival of functional languages such as Erlang that provide native sup- port for concurrency, as well as Go, which provides native and simpler concurrency. Go is popular because it provides many of the benefits of the scripting languages, the perfor- mance of compiled languages and the concurrency of functional languages. This has led to an enormous growth in Go's usage for cloud infrastructure and container management solutions such as Docker and CoreOS. 17.7 THE AGILE METHOD AND DevOps Agile methodology is the engine for enabling change that is SO frequent that it can be essentially thought of as constant change. The waterfall approach starts out with accumulating as many features in the planning process as possible, assuming the features delivered in a release are concrete, which translates into longer planning time horizons, and with changing market conditions and customer needs, there is constant risk of perpetual slippage. On the other hand, a smaller set of features leads to shorter release cycle, with a greater probability of making release dates, followed by iterations that capture any required market changes. Concrete and frequent releases dates, this is the essence of the agile approach. A modular software architecture makes it easier to continuously improve the quality of the individual elements without disrupting the system-level performance of the software. As such, the agile method promotes a more modular approach. In addition, testing in the agile methodology, calls for writing tests at the same ti