Some of the major obstacles of software or new product development start from a long period of time invested in learning and understanding the overall project. Customers may not share their expectations effectively while developers may deliver a product that does not really address customers’ requirements. Two different solutions are generally employed to overcome this issue; to fix scope or to fix time, to synchronize scope of work between the developer and the customer in order to create a software/solution that can effectively fulfill user requirements. Apart from those solutions, Ajarn Somkiat Puisungnoen has introduced some interesting trends below for software development during the IT Trends 2018 Asia’s Rising Power hosted by IMC Institute in collaboration with Optimus.

Continuous Delivery: Invent, Experiment, Implement

Even though choosing to fix scope or to fix time will allow the 2 parties to define a framework, it is difficult to develop a software to actually fulfill customer’s requirements. It is almost impossible to design 100% software function right the first time, which is the reason why the ‘Continuous Delivery’ concept is applied to development process. This concept involves a customer or a user taking part in the project by allowing them to conduct trials and provide feedback. Hypothesis and validation will be conducted by the developer to quickly assess and improve given requirements, increasing the quality of assessment and delivery, especially in the time-limit scenario.
The applied concept was from a Lean Startup book by Eric Ries. The components of the concept are ideation, hypothesis testing, and solution development derived from real situations, in which the developer collects experimental results and refines them to the best quality.

Microservice Architecture: The Smaller, The Better in Flexibility

Under the microservice approach each small and flexible service can independently function compared to an overall Service Oriented Architecture (SOA) which is still lacks that aspect. This outstanding feature of microservice has been acknowledged and ranked on the top list of Software Development Trends 2018. According to Ajarn Somkiat Puisungnoen, there are plenty of beneficial aspects of using a microservice approach, starting from the ability to solve delicate functional issues, to separate each operating task. For examples banking activities can be split into deposit, withdraw, and transfer as different functions, minimizing the amount of codes used to be less than 500 -1,000 lines.

Furthermore, the stand-alone microservice enables the flexibility to build, deploy and individually perform, allowing single services to be tested and integrated at ease. The advantage of a microservice approach helps reduce complexity of systems and lowers risks of system deployment.

Microservice use can create significant benefits towards technology when there is an appropriate database management. Database and database schema should be handled separately to avoid usage from irrelevant services.

Source: IT Trends 2018 Asia’s Rising Power, Tech Blog somkiat.cc