Question: What considerations should I make when developing an application that runs on a core platform?
We are designing a product to run on top of a core platform. Some functionality can be built in to the product, and some can be built into the platform. How do you distinguish between what should be in the product vs. what should be in the platform?
Answer from Michael Hopkin of Lead on Purpose: My definition of a “core platform” is a base on which two or more (usually many) applications run. There are many different purposes for platforms, and there are many out there. In most cases their main purpose is to provide core functionality that some or all of the applications will use. Platforms include functionality such as printing, spell check, network communications, etc.
When developing an application, should you use all the functionality or services on the platform? That depends. The following questions will guide you in making your decision:
- What is the purpose for developing the application? Determine what benefits the platform provides and use the capabilities that are necessary to offer the functionality demanded by the market.
- What functionality does the platform provide? Determine the functionality the platform provides and use the options that will enhance the functionality of the application. Take advantage of the platform components that can add value to the application, if (and only if) implementing them does not exceed time or cost estimates.
- How is the platform received in the market? Many platforms exist on which you can develop applications. When you choose a platform for applications, be sure it’s well received in the market and it’s heading in the right direction. (If the platform is owned by your company you will likely need to use it regardless of its market acceptance.) Carefully compare the direction the platform is headed with the desired long-term outcome of the platform.
- Can you justify the cost? Perform a careful analysis of the cost of building on a platform vs. the cost of building comparable functionality yourself. Most often it costs a company much less to develop their applications on a platform than to develop the same functionality into the application. However, if the platform does not provide the necessary core functionality required by the application, you either need to find a different application or incur the cost to develop the functionality into the application.
When you develop an application on a platform you should use the functionality necessary to meet the application requirements, and if it fits within your cost and time estimates, implement additional functionality that will be useful to your market.