During design phase, most of developer expect to implement high technology or bleeding edge technology. When project manager asking to them what technology we are going to use,directly they will start with SOA(Service Oriented Architecture), Web Service, ESB, JMS, mongodb, casandra and etc.
What if the sofware is not required to have all those stuff????
The firts of thing we need to consider during design phase is, please have a look the FRS and SDS.
Listing over all requirement to senior developer and communicate with them.
If the high end technology is not part of requirement, then dont take it. Why?
Because the project can be longer then the contract of the employee. You will find difficulty during managing human resource.
I give you case sample:Most of the requirement in FRS expect to integrate with external systems that already in production.
So, what approach we use to integrate our new system to various external system that already in production with various languange (can be COBOL run in mainframe, or .net)
If we expect to get fast and reliable solution then use file base for integration instead of web service and jms. Why?
1. Because other/external system is already on production. A lot of changing may affect to the production system that might be a lot of dependency to another system.
2. If in our new system provide end point web service, then external system must invoke and develop a new ws client, and this issue will be related to point 1
3. External system development is out of scope in the project.
4. It will be easier to find out developer that able to do using file base instead of ws
Somehow the approach looks very old and not fancy to fullfilled the requiremen of software.
But believe me, its happen in the real world. Sometime the solutions is not far from you.
In telecommunication industry , some of the module in billing system use file base approach for input an output of processing billing. By using filebase, the process can be faster then using database centric approach.