In how many projects have we noticed development getting completed on time, testing completed on time and finally live production usage failing because of unexpected behavior of the software due to high Volume and Load. I am sure all of us would have experienced it. What leads to this situation is not lack of technical expertise but rather lac of awareness of what is called the NFRs – Non functional requirements. Once these factors are known, solutions to solve this are in fact easy though is not straight forward.
Three things that always developers need to watch for while programming any use case are
Data Volume – Volume of data that is getting processed.
Concurrency – Number of parallel requests to the process, this could be from the users or internal calls
Touch point latencies – Latencies that could be experienced due to any internal/ external integration and network calls
The above parameters need to be looked at for every use case and use cases should be tagged wherever the above numbers are more.
Use the following mantras to solve the above need
1) Acquire late release early
2) Prefer batch processing for voluminous jobs
3) Adopt asynchronous out of process processing
4) Adopt scaled out design for process intensive jobs
5) Avoid chatty calls over network
6) Adopt good caching techniques
For a complete list of NFRs and further details please contact me at firstname.lastname@example.org