Outcome from the discovery phase gives us invaluable inputs into laying the foundation of your project. Some of the aspects we consider while in this phase are compatibility, extensibility, modularity, maintainability, security, reusability, scalability to name a few.
Compatibility
This is the ability of the software to operate with other products that are designed for compatibility
Extensibility
The ability to add new capabilities without major changes to the underlying architecture
Modularity
This allows for independent components of the software to be developed for better maintainability
Maintainability
The ease with which software bugs can be fixed and functional modifications can be made
Security
The ability to keep user data and content secure and private
Reusability
This allows for already existing software to be reused without much modification
Scalability
Ability to scale to the ever increasing traffic in terms of users, data and storage is a very important consideration we make very early on