IT systems handle much more complex businesses compare to the past. Unlike in the past where it was all about developing good hardware and software, now it’s more about how to reflect the clients’ complex demands. In this posting, I’d like to show you MDD (Model Driven Development) which is changing the center of the field from technology to business.
- Programming without a Programming Language (1)
The Limit of the Conventional Business Model
The most important part of the system construction for card companies used to be how stably it could process data in a given time. Nowadays, more diverse and complex business models are required which are linked to both their various services (such as membership points, discounts, events, and insurance) and other communication methods (like web, mobile devices, and SNS). This job simply cannot be done with conventional development methods because the system now has too many functions and each new function complicates the relationships these functions have. Under the conventional development model, adding new functions leads to lower development productivity and quality. Let’s take a closer look at conventional development methods.
This conventional method creates the final system by going through stages: Analysis, design, development, and test. The designer drafts the design document and the developer realizes it with programming language. Big projects such as next generation financial projects have dozens or even hundreds of developers with varying skills, and if one of them makes a small mistake, the whole system fails. This is called a bug, and as clients’ demands get more complicated, it becomes harder to find/correct it. I’d like to show you a construction project to help your understanding.
Case: a multi-functional door
The client asked for a door with multiple additional functions. The contractor built a house with this special door, but they realized that the door didn’t close very well. It wasn’t easy to figure out what the problem was, though: Was it because the carpenter nailed it wrong? Did the designer print the wrong sizes on the blue print? The contractor tried to fix the problem by making a new door but he had to test each and every function of the door, too. Anyway, he started working on a new door, and then the client showed up to tell him that the old door had a threshold and people in wheelchairs couldn’t use it, and that the new door now shouldn’t have any threshold.
Let’s take a look at this situation from the IT perspective.
The multi-functional door in the IT world
As you see from the case I just shared, a developer in the conventional method can begin the work only when designing is completed and can test all the functions when the entire development is completed. In other words, until the development is done, testing cannot even begin. If the design changes after the development, this means they have to re-test all the parts that will change and other parts that are connected to the changing parts repeatedly. This is because a change in one part can influence other parts and lead to more bugs in other parts. The more complicated the clients’ requests get, the more tests they need to go through. Sometimes they may not have enough time to test every function.
This is why they often have the risk of not finding critical bugs early enough and end up repeating the entire testing procedure after the bug is fixed. This will not only elongate the development process, but also costs a lot more time and money compared to a procedure that can find and fix bugs in the early design. This kind of ineffectiveness may even cost the clients’ trust in the development company.
MDD (Model Driven Development) Focusing on the Business Design
A model is a type of design document written with figures and text which everyone including the client, designers and developers can easily understand. The procedure that creates this model is called modeling. Take a look at the information below.
The source code shown on the left is difficult to understand unless one is already familiar with programming language. The model on the right, on the other hand, is quite easy to understand as long as one knows basic modeling orthography. The model on the right was automatically created, using the LG CNS MDD tool from the source code on the left.
LG CNS MDD creates a standardized design model which reflects clients’ requests using its modeling tool. Model designs each function into a component. One business process component is completed by assembling various other components
A completed model can also create a design document and a source code that can be run right away. The development stage itself can also be omitted with the automated programming process. Each component is ready for unit tests from the beginning of the design process without any screening or added testing program. Additional components can also be put together to make the model as the project proceeds into a more competed model. Let’s take a look at the case we talked about earlier and see what kind of difference the MDD method can make, then.
Case: A multi-functional door with MDD
The client asked for a multi-functional door. They found that the door didn’t close well after the house had already been finished, but the problem cannot be in the door’s production since it was done through our automated system. The cause of the problem is most likely in the design or that the client asked for the wrong size. The designer looked at the design model with the client and they decided that it’d be better not to have any threshold so wheelchairs would be able to go through it. The test for the door can be done as soon as the design model is fixed. The other functions of the door do not require any other tests.
The multi functional door with MDD
Why Is MDD Better?
Materializing business design optimization
MDD surpasses other methods as it optimizes business design. Complicated requests from clients can be easily added because all the functions were designed as separate components. The functions that are repeatedly used can also be built as a common component for reusability. Early tests done during the early stages of designing can also lead to reduced costs for finding and fixing bugs.
Unlike the belief that programming is destined to involve manual work, MDD is a 100% automated procedure. This enhances development productivity and saves time, and the designers can spend this saved time to think more about the client’s requests and work harder on accurate designs. Another plus is that the design model and realizing technology are now separate. Compared to the past where the source code and development framework were stuck together, it’s much easier to upgrade or make changes without having to change the other part.
What about maintenance? In the past, it was almost impossible for clients to figure out what was going on within the source code and only partially manage it through the output on the document. The model made with MDD, on the other hand, is easy for clients to understand and manage by themselves to detail. It doesn’t even require any extra paperwork when the staff changes during the job because it’s so easy to understand, and it’s also great that the operational staff can be put in only when needed.
Change in working environment
Many believe that MDD replaces people who used to do the job of programming manually and can in turn cause unemployment. However, unemployment is something that takes place only when the employer decides to discharge someone instead of changing his or her job.
When MDD comes into the picture, the working environment for both designers and developers changes to revolve around the business design. First, designers don’t need to learn any programming language in order to communicate with the developers. They can also design the model more accurately by testing their results through its automated system. The developers can also play more valuable roles as model designers and become experts in the business instead of doing repeated and manual programming. If one wants to get involved in a more specialized field instead of business, there’s always the field for developing generic technology for MDD automation technology.
LG CNS is getting ready for this change toward MDD by creating various educational programs so the people working on related projects can adopt the change easily.
Today, we learned about MDD which is leading the change from technology to business. With MDD, work procedures can become much easier and more effective for programmers. This may help them spend their time doing more valuable work that will further satisfy their clients. This, I believe is the real business based modeling.
Written by Kyoung-Hee Jang, Section Chief of LG CNS MDD Technology Team