The rapid growth of some recent companies has shown that use of Platform as a Service (PaaS) can allow even the smallest company to fully utilize the advantages of cloud computing. In PaaS offerings everything from the hardware to the software and the management tools are available to the developer in a complete package. This means that web services and applications can be created and completely contained within the platform and the development cycle can be greatly reduced.
The rise of PaaS has led me to review how it could impact the software tenets described in Fred Brooks’ The Mythical Man-Month: Essays on Software Engineering. This book, first published in 1975, describes the common errors in software development, the difficulty in estimating project schedules and the constraints placed on software design with large scopes.
A quick Google search shows that I am not alone in evaluating PaaS as a possible progression significant enough to invalidate Brooks’ observations. But that is to be expected since after it was published in 1975 nearly every major software development advancement has been thought to be the “silver bullet” capable of bringing software development into a definable and therefore predictable process. Given nearly 40 years of not having success, I am putting the odds low for this attempt too.
That being said, PaaS may break down part of The Mythical Man-Month principles. As the scope of any project grows the amount of time that must be spent designing how the parts will interact grows faster and the time to test all of those interconnections grows even faster. Software re-use and pre-made packages have allowed developers to create much larger and richer applications than just a few years ago with the same man power as before, but these packages must still be tested as part of the system and how they interact with other disparate code bases. And then time will be consumed evaluating the project on the deployment hardware and systems.
PaaS offers the developer not just the software tools for code creation, but ready-made environments for the deployment of Software as a Service solutions. Major time sinks to a solution like security, scalability, database, usage mapping and visualization tools are inherited to the solution from the PaaS meaning that the development team can limit their scope to the user interfaces and data processing.
By getting the development back to what the project truly cares about, user interface and data, and taking everything else out of scope the overall schedule is shrunk allowing for products being brought to market faster than ever before.