Architect for business, not technology

Based on which side of maturity timeline the market is in, either technology drives business or business drives technology. In an immature market such as the IoT market, technology typically drives business. Such a market is a pioneer’s market. Here IoT product businesses are trying to convince the customers that there is an advantage to installing sensors and connecting them to software products. In a highly mature market such

The eroding of the product developed

SDLC or the software development life cycle is the different phases that is present in the development an entire application (any type, web, server, mobile) from requirements to release and continues further into a continuous maintenance phase. Many SDLC processes exists such as the waterfall, iterative, spiral, agile, lean, dev ops and so on methodologies. Each of them come with their own advantages and disadvantages. The waterfall methodology is very

How to design using state machines?

Designing an application typically involves focussing on the application requirements from various angles and thus arriving at different design objects and functions and the triggers when these functions are executed. Once done, these are translated into a coherent “functional design” which then gets translated into a “technical design”.A functional design stays at the level of business objects, business functions and transactions. For eg., in a warehouse management system, “When

Requirements to Release (R2R)

R2R journey and its problemsThe journey from requirements to release (R2R) consists of 3 major phases. Design, Develop and Deploy (3D). There exists no clear distinction when one phase ends and the next starts.  All three phases need to go in parallel to continuously build upon a starting seed idea to get a final end product. But, frequently changing design impacts the development phase leading to developer fatigue and

Standardising software application designing

Existing design-scape for software application designThe state of software application designing is currently subjective. There  exists a definition of a loose set of aggregates such as design principles, design patterns for common problems, predefined architectures, that can be aggregated to design applications, but, no standardised design strategy exists. In general,  the software’s resilience and flexibility depends highly on the architect designing the application.Some existing design