2024.10.01
AI-driven replacement of software development, present and future
Hyunseok Shin, CEO of Smilegate Vietnam, presents the column "AI Software Development" in a three-part series. This is the third and final installment.
- Changes and strategies in software development due to AI
- Can AI replace the technical skills of developers leading the digital world?
- Replacement of software development due to AI, present and future
Can AI replace the technical skills of developers leading the digital world?
Software development is relatively slow compared to hardware development. The hardware field has developed rapidly in line with Moore's Law (the phenomenon in which the performance of semiconductor chips doubles every 18 to 24 months). Since hardware such as processors and memory mainly aims to improve physical performance, immediate performance improvements can be expected through new manufacturing processes and design techniques as technology advances. On the other hand, unlike hardware, software development must be designed and developed to meet the diverse needs of users, and in this process, the complexity increases greatly depending on the customer's business domain (finance, games, distribution, manufacturing, etc.). Even if new programming languages, development methodologies, and frameworks are introduced, developers spend a lot of time learning actually to apply and use them, and technical debt causes risks and change management costs associated with the introduction of new technologies.
Traditionally, software has been developed in a waterfall manner, with a structure in which projects are carried out in stages. It is divided into requirements analysis, design, implementation, testing, distribution, and maintenance. Still, there was an inefficiency in returning to the initial stage of requirements changed in the middle. Since testing is conducted after development is completed, it is difficult to find errors or defects that occurred in the initial stage. If problems happened in the middle, they often affected the entire project. This is a method that does not fit the rapidly changing digital era. The development team and the operation team performed their roles separately, and while the development team wanted to design and implement software and create fast and innovative functions, the operation team prioritized stable operation, so their goals conflicted, collaboration did not go well, and the deployment cycle became longer. Ultimately, there was a disadvantage because responding quickly to changing market demands was difficult. Since large-scale releases were distributed at once, finding the cause if a problem was challenging, and the modification work was long, which could lead to additional delays.
To compensate for this, the Agile methodology emerged to respond to rapidly changing requirements and actively reflect user feedback. It emphasizes customer communication, overcomes traditional development methods' shortcomings through an iterative and gradual approach, strengthens collaboration between development and operation organizations, and pursues DevOps to improve the deployment process through automation. DevOps allows the development and operations teams to work closely together while sharing the same goal, making the deployment process smoother and allowing for quicker responses when problems occur. Since they are jointly responsible for the quality and stability of the software, the speed of problem resolution increases, and responsibility becomes clear. By building an automated pipeline to test and deploy new code when it is written automatically, small changes can be deployed in short cycles, and the risks associated with deployment are also reduced. In addition, since the build, test, and deployment are performed automatically when code is written, errors caused by manual work are reduced, and deployment speed is increased. DevOps strengthens monitoring tools and feedback loops to monitor software status in the operating environment in real time and respond quickly when problems occur. This allows the software to operate stably and predict and resolve issues in advance.
Further evolving, DevSecOps (a compound word for Development, Security, and Operations) aims to rapidly deploy secure software by internalizing security in all software development stages while maintaining the advantages of DevOps, such as automation, continuous deployment, and collaboration. In traditional software development, security is mainly done at the last stage after development, so it costs money and time to fix. Security vulnerabilities are often discovered after deployment, but DevSecOps conducts security inspections from the early stages of software development to prevent security vulnerabilities that may occur after deployment in advance.
Software must be able to change services promptly to meet customers' rapidly evolving needs in the digital age. This is why microservices, containers, Kubernetes (container orchestration), clouds, and DevSecOps emerged. This is why we need to consider a software development strategy that applies a microservice architecture that can be changed to meet customer needs, an Agile methodology, and DevSecOps rather than a silo structure that divides the development team and the operations team.
However, many Korean companies still adopt a monolithic structure (a single integrated application, i.e., the user interface, database processing, and business logic of the application operate in a single code base, and all functions are closely connected, making it difficult to add or expand new functions) rather than a microservice structure, and are divided into development and operation teams, and often conduct software development in the Waterfall method. The general interpretation is that this is because the existing development organization does not want to change.
Software development using AI is currently mainly used for code generation, code analysis, and bug detection, but I think it will be significantly utilized in the software testing field. In fact, many digital companies are innovating code testing with AI in the DevSecOps environment, and this trend is expected to accelerate. According to GitLab's research, only 41% of DevSecOps teams are currently using AI to generate automated tests as part of software development, but it is expected that most companies will adopt AI in the future.
In addition, it is evolving into a model that combines machine learning algorithms and natural language processing to analyze patterns in large-scale data sets, identify potential bugs and traffic bottlenecks, and suggest optimization solutions through innovative methodologies such as Test-Driven Development (TDD) and Component-Driven Development (CDD).
It is not easy to learn and adopt something new. Still, I hope that the development of methodologies suitable for the digital age, the adoption of new technologies, and the use of AI will increase the company's competitiveness.
About the Author
Smilegate Vietnam CEO Hyunseok Shin, is a top expert in the IT service and cloud fields, and an expert in the Asia Pacific region. While in charge of Microsoft Asia Pacific, he was based in Korea and was in charge of Asia Pacific including Korea, Australia, and New Zealand, and has deep understanding and experience in the Vietnam, Singapore, Thailand, and Indonesia markets. Starting out as a PC communication Unitel developer in Samsung, he worked as a platform architect at Microsoft Asia Pacific and Microsoft Korea, and as a cloud expert, and after working at AWS Korea, he was recruited as the head of SK C&C Cloud Division in 2016. He successfully carried out the establishment of a business model for the cloud business, and business and platform operations, and led the role of making the cloud the main business of C&C. In addition, he led the establishment of Smilegate Vietnam to contribute to the development/operation of Smilegate's game platform, and is currently developing & operating game platform innovation with Vietnamese software developers.
Source: koreaittimes.com