The Emergence of the Modern Framework
Software development is an expansive, self-propagating industry, wherein innovative technologies are perpetually driving the future and expansion – or, in some sense, the compression – of the software development life-cycle. In this perpetuity, we find that the rise of cutting edge development frameworks facilitate faster speed-to-market, broader accessibility, and a smoother development life-cycle, from planning and execution to release and distribution.
These frameworks cover the full spectrum of the software development process, ranging from front-end user interface design to server-side processing and back-end database technologies. Often, these platforms aim to alleviate the disjunctions that partition the software development discipline, either by meshing these disciplines together through common language accessibility or by simplifying portions of the development process such as to make them sufficiently accessible to a less-experienced developer populace.
These advances, alongside the growth of document-oriented database technologies such as MongoDB and the increased popularity of the micro-services architecture, allow developers to swiftly produce well-structured and extensible applications with relatively minimal coding.
While the explosive growth of these development platforms continues to facilitate a smoother development life-cycle, the demand for business logic appears to remain irrevocably entangled with the development process, requiring countless developer hours in diagnostics, maintenance, and enhancement.
Industry standards and client requirements are ever-changing, which effectively ensures that the majority of the application development life-cycle is exhausted simply complying with these demands. Further, the reliance on developers – who are trained in the software development process and not in the nuances of the specific industry’s standards – to produce accurate business logic ensures the propagation of misinterpreted business rules, invalid test cases, and poor overall code structure. Without understanding the demand, there is simply no way to build a structurally-sound system that encapsulates it.
These factors, compounded by frequent requirement changes, varying adaptations, and general miscommunication, can result in the proliferation of substantial application deficiencies and an unmaintainable codebase.
Empowering your business users
The typical business analyst has a strong familiarity with spreadsheets and Microsoft Excel; in fact, more often than not, the entire business logic layer can be structurally recreatedwithin a workbook by these analysts without requiring any effort from the development team.
SpreadsheetWEB can turn these spreadsheet into business-controlled micro-services, ready for consumption by any modern application: each spreadsheet model is converted into a simple service, invoked via simple POST and GET methods to retrieve familiar JSON objects for use in the application-tier.
This separation of concerns effectively negates any necessity for developers to know about the business logic layer of the application: those who know the business will handle the business and those who know software will handle the software.
The business users themselves are able to update and maintain the business logic layer of the application through a well-known and comfortable user interface and developers are not required to maintain or modify the business logic directly. This ultimately results in fewer defects, since those with familiarity and expertise in their respective fields will be maintaining the aspects of the application development process that they are best acquainted with. This also equates to a faster development life-cycle and eliminates the potential for layers of miscommunication that are particularly pervasive amongst large, discipline-segregated companies maintaining enterprise-level applications.
 In reference to the relatively artificial separation of development disciplines that limits technical expertise to a singular function of the whole structure of the software (e.g. ‘web’, ‘back-end’, ‘database’ developers).