Sunday, January 14, 2018

An information technology architectural dilemma: Documentation vs Implementation

Recently, when I was taking a session on 'Progressive Web App: Are we lagging behind?' in my current company, I wanted to introduce myself to a big gathering, who apparently knew me to a certain extend. Believe me, I gave a damn thought about it that I gave no intro, but just got started with the topic. However, I being an architect (precisely solution architect), that very thought gave me few sleepless nights, pondering what really an architect does. This write-up is all about a dilemma encountered on a daily basis in any architect's life in information technology.

Who is an architect? If you avoid technical jargon, architect is one who creates architecture. Ha! As per Aristotelian syllogism, this definition has a fallacy. Now, what is architecture? Since that is the point of discussion today, let me park the question, for now.

Based on the architecture one creates, he or she is categorised into any one of the three: software, solution or enterprise architect. To set proper context, I need to put forth my view of these three roles in an organisation. The easiest comparison I've seen is a graph with technology on x-axis and strategy on y-axis, where software or technical architect lies on the right-bottom most corner, enterprise architect on the left-top most corner, while the solution architect on the centre of the graph. Since there is no cause-effect relation between technology and strategy, which on what axis doesn't really matter here and therefore the position in an organisation too. However, as remuneration is directly proportional to the risk taken, it's right to place strategy on the y-axis and enterprise architect on top.
Image courtesy: LeanIX

For me, an enterprise architect creates the architecture that converts the organisational business strategies into technical terms. And the solution architect understands the strategy and design solution. The solution architecture can be one or more of these: application architecture on functional system, technology architecture on supporting systems, security architecture on authentication and authorisation of the solution, data architecture on data flow, integration architecture on how systems communicate each other, devops architecture on delivery and maintenance of the solution and so on. Software (or technical) architect, on the other side, creates technical architecture of the individual system with details like use cases, domain object model, component design and so forth. Enough of boring explanations!

In fact, the subject of our discussion is what architecture, in software sphere, means. Though it means a lot, generally it denotes the design documents created to help the implementation of the system. That means an architect is a 'documentalist'. But we know that's not true. An architect is involved in all phases of software development. Apart from the design documents, he or she is also responsible for the proof of concept and even prototype of the solution at the minimum.

At least in few cases, proof of concept becomes an alternative to design documents, of course based on the solution complexity. However, the dilemma is not about what to choose, but where to give emphasis. In other words, what does an architect deal mostly with? Documentation or Implementation? Again there is no definite answer. It all depends on the solution and the role one plays. However, everybody would have a soft corner towards one of them. Some people, like me, love the magic of codes compiled, whereas others do the beauty of the words diagrammed.

Obviously, both are important. So let the dilemma be there. You either choose one or mix both. The latter is preferred because falling into one of them (technology or strategy) makes your process complicated. If you emphasize on documentation, your software development becomes rigid (and may be useless later) and on the other hand, if you focus on implementation, you loose the scope (and may be unaccomplished later). Therefore, an equilibrium between them is required, not a dilemma of selection. I need to confess here that I've a leaning towards implementation (technology). In fact, documenting is an art and saves a lot of time. Let all master both with a right balance and take wise decisions. At the end of the day, it's all about getting the job done better!

Monday, January 1, 2018

Why should I pay extrafacultaprecium?

In fact, I'm forced to coin a new term here to explain a common but unbothered phenomenon in our society. However, please consider my economical ignorance, in case this is already known and defined by someone.

What is extrafacultaprecium? Etymologically speaking, extrafacultaprecium ('ex prodigis usus resource sumptus est') is nothing but the cost from extravagant usage of resource. In simple terms, it's the extra cost incurred for a resource due to somebody's extravagant usage of it.

To understand this term better, we need to brush up our memory of fundamental economic concepts and their relation: supply, scarcity, demand and cost. This terminology can be defined as below (may not be economically accurate though).

Supply is the total amount of a specific good or service (referred here to resource) that is available to consumers. Scarcity, on the contrary, is the condition that exists when there are not enough resources to satisfy all the wants of individuals or society.

Demand can be defined as the consumer's desire and willingness to pay a price for a specific good or service, whereas the amount that has to be paid or given up in order to get the good or service is called cost.

From all the definitions and our common sense (if we share one), we can safely assume that the more the demand, the more the supply. And therefore, in case of natural resources (unlike services) which is limited or fixed in nature, the more the supply, the more the scarcity. And defenitely, the more the scarcity, the more the cost.

What does this imply? To make it plain, the more we use a resource, the less it's available, thus the more it costs.

Can't you go for an alternative in this case? For many a reason, it can not be plausible. Few are unavailability of choice, opportunity cost (the next highest valued alternative that is given up when a choice is made) and so on.

So far, we were looking at how the more use of a resource can lead to higher cost for the same resource. Neverthless, to understand our new term, we need to diferentiate between mere usage of a resource and extravagant usage of it.

What is the extravagant usage of a resource? Of course, it's relative. The amount (unit) of usage has nothing to do with extravagance. For instance, the amount of water being used in an appartment will defenitely be more than that of in a small household.

Then waht does really constitute extravagance of usage? With any common economical sense, we can very well say that mere usage is that of need, whereas extravagant usage is that of want. Again you can argue that need and want are relative. One's want can be somebody else's need.

However, the Google guru clearly explains that the idea of survival is real, meaning someone would die without their needs being met, whereas a want is one step up in the order from needs and is simply something that people desire to have, that they may, or may not, be able to obtain.

By now, if we are clear of need (mere usage of resource) and want (extravagant usage of resource), it's time to revisit our newly coined term, extrafacultaprecium. It denotes the additional cost incurred for a resource by one, due to somebody else's extravagant usage of it. For example, in a hypothetical situation, a litre of petrol costs Rs 100. And imagine I used 1000 litres of petrol extravagantly, which made a small scarcity of petrol resulting an increase of Rs 1 per litre. Now the price of one litre petrol, when you go and buy, is Rs 101. Here the Rs 1 that you pay extra for a litre of petrol, just because of my extravagant usage, is called extrafacultaprecium.

Really? This phenomenon of extrafacultaprecium is true? It is very much true, if you are able to differentiate between need and want. Though the extra cost is not something taht can statistically be derived (at least for an economical ignorant like me), it is very much logical. It looks very much a common sense to me.

Now, if it is so? Am I not entitled for my want? It's my hard-earned money that I spend. An article in Times of India (dated Nov 25, 2010) was talking about Mukesh Ambani's first power bill in his godzilla-sized home, Antilia. The house with five members had generated a power bill of Rs 70,69,488 in a month. Though it takes a good amount of time for me (being from a so-called middle class family) to digest the news, what is wrong here? It's quite legal. It's good, as government gets more tax. But, had this 'extravagant' usage of electricity made a small scarcity of electricity in Mumbai resulting an increase of Ps 1 per kWh in that area, then those people would have forced to pay that extrafacultaprecium of Ps 1 per every kWh of electricity they used.

Is it not scary? Any extravagant usage of a resource adds an extra cost to thousands of poor people around us! And even that extrafacultaprecium gets added to my next purchase of the same resource! The more frightening fact is that it happens everywhere by everybody on every resource. When people predict that world war III is for water, never ever neglect our contribution to that war!

Next time when you go to bed without putting off your toilet light,or when you illuminate stars and serials in your home, or as you pour milk down into your deity, remember that you are so cruel to impose extrafacultaprecium on us!

ഇന്ന്

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