Posts

Showing posts with the label Software Design

Choice of Programming Language for Different Softwares

With experience and reading things around, here I share some patterns, I see about, what programming language is being used for what type of software. C  ... When we need to write some base infrastructure that will be used by some upper layers softwares. This is when no compromise on performance is accepted. For such software middle-ware or virtual machine oriented languages are not good choice, as it would only add an extra layer. And software will not compile in machine native code. For example databases, operating systems, device drivers, etc are mostly written in C/C++ etc. MySQL, Linux, Windows (most part) are all written in C for the same reason. Java  ... Java is best choice for writing bigger softwares that organization need to run their processes (e.g. warehouse, sales, etc.). These softwares are mostly know as enterprise softwares or ERPs. One might think, why not write such software in C, as performance is also paramount for ERPs. Yes, it is right but a bigger reali...

80% Traffic, Hit Only 20% of Website Features

Couple of months earlier, I worked on a web project. We implemented a lot of features, specifically in admin area. But after launch, what I see is, only 20% of the features are being used by 80% of the users. It convinced me, we must make and release small features as fast as possible and plan the roadmap with market feedback. It remind me, Pareto Principle, which stats that " roughly 80% of the effects come from 20% of the causes " ...  for example,  20% of the software functions are used 80% of the time i.e.  80% users used only 20% of a software (just analyse you usage of MS Word, for example) And, If there is 100 lines of code snippet facing performance bottlenecks. There are only about 20 lines that need optimization.  Even Microsoft noted,  when they removed 20% of the most reported bugs, 80% crashes were removed. Its so beautiful and great lesson for me. I can visualize it very deeply.