Monday, October 28, 2019

Profileability: A neglected software capability

While preparing a recommendation report for a reputed product as an assignment, I had to plunder on some capabilities that any enterprise level application should encompass at the design phase itself. Though our industry is matured enough to design and implement any scale of software solution with abilities like scalability and availability, I believe, we do not consider one aspect of the design with due diligence. I call it as profileablity. As I've not seen this terminology being used anywhere so far, let's start by defining the very term.

The term profileablity is coined from the self-explanatory words namely 'profiling' and 'capability'. Profiling, in software sphere, is a process of measuring the performance metrics of a software solution, mainly in terms of the space or time complexity. Therefore, profileablity is an intrinsic capability of any software solution to be performance-measurable. In other words, it measures how performant a system is.

Performance metrics can be of different categories. The main category would encompass metrics like Average Response Time, Request Rate, Error Rate.

Being a purely technical and performant concern, profileablity can be achieved by design and tooling.

By Design
When it comes to performance of any system, measurability of the system metrics is crucial. And it is effective only when the system is modularised, and the individual SLAs are defined.

Along with the measurable eco-system, we should devise a system for metrics collection (like JMX) and extracting meaningful readings out of it.

With Tooling
As we have specialized players in the profiling sphere, making use of such tools would be a wise approach. However, a balanced methodology of system capability and external enabling is a preferred way. 

No comments:

Post a Comment

ഇന്ന്

ഇന്നലെ യെ കുറിച്ച് വ്യാകുലപ്പെടുന്ന നാളെ യാണ് നമ്മുടെ ഇന്ന്!