Cost Advantages of React Framework-Driven Development

Cost Advantages of React Framework-Driven Development

Developing an enterprise-class SaaS application from scratch is a big undertaking with many separate aspects. When trying to cost out such a project, it is necessary to have a solid idea of what you are building.

My own approach is to visualize, in great detail, how the finished system might look, and then drill down into more details of the key subsystems to try to identify areas that might trigger unexpected additional work and higher cost. Outputs from this visualization process include a rough data model, UI wire frames, and a technology stack, including an inventory of potential third-party packages. This process is often referred to as design. :)

One consequence of this process is that many assumptions must be made along the way, particularly if you are trying to estimate costs. There will be assumptions about the data model, the UI/UX and interfaces to external systems. There will also be assumptions about the technology stack, and many qualitative decisions that will involve tough trade-offs. Often, these qualitative decisions are scope constraints, as they are intended to reduce cost. The Lean Startup approach advocates constraining scope in sometimes ludicrous ways to produce an MVP.

When presenting a proposed design and its consequent cost estimates, it is a good idea to explicitly state underlying assumptions. The cost breakdown can be presented to stakeholders as a list of stories and their respective assumptions, along with estimates. For example:

  • Story X estimate story points S is predicated on the assumption that feature Y will be extremely rudimentary and will NOT do behavior Z.
  • Story X will be implemented indirectly by third-party component Y and will therefore have all of the shortcomings of component Y, many of which may be ameliorated by subsequent development efforts at additional cost.

One of the biggest dangers that arises when trying to estimate costs is overlooking an important subsystem or behavior and therefore failing to supply any corresponding cost estimate. In my view, one of the key benefits of using a framework such as VXFrame to develop greenfield SaaS applications is that the baseline system serves as a kind of checklist of features and subsystems that is very tangible. You install the framework and then allow all stakeholders to explore it and review it. Once everyone understands what the framework does out-of-box, you can begin to build a set of stories which express the differences between what the framework does and what it should do.

For example, a stakeholder might assert we need something exactly like the baseline tenant and domain subsystem, but that allows external systems to manage the information via an API. In such case, the story need speak only of the creation of that new API, which is a finite development effort that can be estimated with great precision, compared to the much larger, risky effort that would be required to develop the entire tenant and domain subsystem from scratch.

I tend to think of such stories as deltas (differences) between framework (baseline) features/behaviors and desired features/behaviors.

In short, a framework-centric approach to project planning involves authoring a set of stories which are deltas between out-of-box and expected behaviors. Such stories can be estimated with a very high level of precision, reducing project costs and risks.

要查看或添加评论,请登录

David Lynch的更多文章

  • Performance Characteristics of Modern JavaScript Systems

    Performance Characteristics of Modern JavaScript Systems

    Consider a modern system based on React, Redux, Meteor and MongoDB. Such a system conforms to an architectural ideal…

  • The Secret to Successful Projects

    The Secret to Successful Projects

    Since you are reading this, you may be hoping for a list of policies and procedures to make your projects run more…

  • The Awesome Power of MVC Web Applications

    The Awesome Power of MVC Web Applications

    In the mid-1990s, I became obsessed with the Observer pattern. Geeks familiar with book Design Patterns will…

  • Reign of the Front End

    Reign of the Front End

    For the past five years, I have thrown myself head-first into the world of JavaScript, React, Meteor, Node.js and…

    1 条评论
  • Reconciling React and CSS

    Reconciling React and CSS

    A key benefit of React is the potential of reduced cost through component-based development. Intuitively, the idea of…

  • The Iceberg

    The Iceberg

    Beneath any modern software project lies a vast, invisible effort. The typical user sees only the the tip of an…

  • React/Meteor/Node.js Development on Windows

    React/Meteor/Node.js Development on Windows

    For the first two years of my tenure with React, Node.js, Meteor and MongoDB, I worked exclusively within Ubuntu VMWare…

  • JavaScript Functions That Run Beautifully on Client and Server

    JavaScript Functions That Run Beautifully on Client and Server

    One of the compelling benefits of Node.js is that a single language, JavaScript, can be used on client and server.

  • VXFrame: A React/Meteor Multitenant SaaS Framework (Part 6 of 6)

    VXFrame: A React/Meteor Multitenant SaaS Framework (Part 6 of 6)

    Core Subsystems VXFrame comes with core subsystems that are essential for most multi-tenant SaaS applications…

  • VXFrame: A React/Meteor Multitenant SaaS Framework (Part 5 of Many)

    VXFrame: A React/Meteor Multitenant SaaS Framework (Part 5 of Many)

    Modals VXModal components are wrappers for Bootstrap modals. Traditionally, Bootstrap modals have been pre-rendered…

社区洞察

其他会员也浏览了