Time and again, we witness, when a program goes into acceptance testing phase, the client and teams suddenly realize that the application is not meeting the Non-Functional requirements. Usually the application is very slow, or it is frequently going down or not scaling up as expected. I am not even talking of requirements mismatch here.
Why are Enterprises looking at BigData?
The advent of the Social Collaboration, Online Selling, Digital Goods, Mobile means every enterprise wants to process the transactional and analytical data, that is being collected at multiple customer touch points. All this data need to be processed so that the enterprise can better understand the customer, his social network, his buying patterns and other things.
For an Architect, as if deciphering the requirements between Functional and Non-Functional requirements was not enough, DevOps and Technical Debt has opened another head for bunching requirements.
For the uninitiated, DevOps is a movement that is meant to break down the silo approach between the Dev, QA and IT teams, where the code moved in a batch mode from Dev->QA->IT Operations teams. This silo'ed approach meant delay, disruption and duplication of efforts, which ultimately leads to delays in pushing out business functionality.
PaaS - is it right for me ?
An organisation embarking on a cloud journey invariably ends up looking for PaaS solutions. PaaS sounds like something that will help me take away all my pains. Creating your application, using drag and drop controls in a browser and everything else taken care (from deployment to running to scalability to back up of data and what not) sounds something exciting and very hard to believe.
Anyway, who wants to deal with the IT folks and deal with all the tantrums they throw, what is possible and what is not.
Capacity Planning is all about managing you resources better. Resources are finite, resources need to be procured, resources come at a cost, resources get consumed, as a result you need to do some capacity planning.
Capacity planning is an exercise undertaken in all the industries. There are plenty of models on how to perform capacity planning. But somehow application of these models in the software industry is too cumbersome, tedious and at times completely useless. These models work best when you have a standardized product and process. In software, every release changes the dynamics of the software product. The code base changes, the code performance changes, the usage pattern might change leading to the failure of the previous capacity planning exercises.
With the proliferation of devices in various screen sizes and running different OS, having a coherent mobile web strategy has become somewhat of a nightmare for the enterprise. Gone are the days, when the enterprise would just optimize the existing web site for mobile and let the content be served. Today’s consumer with the ever powerful device and increasing bandwidth is looking for experience that is equal to or at times better than the web.
When designing and maintaining large scale software architecture, certain rules need to be adhered religiously. In the absence of which the software starts degrading, maintenance becomes difficult, adding features becomes a nightmare and soon everything comes crashing down as a house of cards.
Tiering/Layering your logical architecture – a clear logical separation between different layers lead to simplified code navigation and comprehension. The layers should also follow a strict and clear naming convention for all packages and types. One can make of tools to make sure the code follows the logical architecture and all dependencies are in order.
NCCD (Normalized cumulative component dependency) is another factor that needs to be adhered. NCCD of compilation units must not be bigger than 7. If this value grows over the threshold, one should isolate layers and subsystem by only letting them have interfaces as entry points. Breaking cyclic dependencies can also shrink this metric considerably.
In today’s world, whenever you are facing a problem, the first impulse is to open Google and see if other people had already faced the similar problem and how they did they resolved the same. The good part is you are most likely to find the solution to the problem also. Does that mean, Google is the new Knowledge Manager for your enterprise?
Why do the employees tend to search on Google/Bing for solutions and not look at the KM systems?
Healthcare Sector in India is poised to grow to $280 Billion USD by 2020. The investment required in the next 10 years is to the tune of $86 Billion USD, majority of which will be contributed by the private sector. All this investment will need require lot of people that need to be integrated in this sector and IT backbone will be needed to be able to service the ever-growing Indian population.