Category Archives: Life Thread

CoE Tech. Day 컬럼집

coe_tech_column

그림. 본인이 직접 디자인 한 CoE Tech 컬럼집 표지

이전 직장에서 기술에 대해 글을 쓰고 발표하는 행사를 했었다. 거의 모두 신입 3년차 이내라, 크게 아는 것도 없던 시절이었지만 그래도 합격자가 있었고, 아쉽게 고배를 마신 지원자도 있었다.

그렇게 1회 기술 기고 대회에서 선별된 글들을 모아서 컬럼집을 만들었다. 누군가가 시킨 것도 아니었지만, 그냥 이대로 지우기에는 아까웠던 것 같다.

표지 디자인부터 시작해서 목차 디자인까지 직접 했었는데, 저 다양한 컬러 조합을 보니 구글이나 쿠팡보다 앞선 디자인이 아니었나 싶다 🙂 왜 “까치”가 있는지는 만든 나로써도 도저히 이해할 수가 없다. 1월 설날이라고 그랬었나..

coe_tech_column_tc

그림. 이건 목차

coe_tech_column_topic

그림. 이건 글 디자인한 것

[SSA-EAD] Application

아마도 이 글은 예전 직장에서 SSA(Samsung Software Academy) 중에서 EAD(Enterprise Architecture Pattern) 과정에 지원할 때 쓴 지원 동기 같은 글이다. 왜 영어로 썼는지 생각해보니, 강사가 Rebecca Wirfs-Brock이라는 외국 할머니 개발자였기 때문인 것 같다.

pablo-rebecca-1024x512

Object Design – Roles, Responsibilities, and Collaborations라는 책으로 강의를 했던 것 같다. TDD니 DDD니 DD(Drive Design) 용어가 난무하기 전에, RDD(Responsibility-Driven-Design)이라는 개념을 가장 먼저 내놓아서 외국에서 유명하신 분으로 알고 있다.

아래는 해당 과정에 지원할 때 감히 영어로 쓴 지원서 전문이다.

Here is my written application. The subject of this writing was the importance of the on-site education and training and I’d like to take that role of mentor and consultant, if I could. As always, time was running short and I concluded my opinion without sufficient proof. In spite of that, I succeeded to get the chance for the interview. Enjoy it!

“It will be better tomorrow.” I used to cast spell on myself when I was worked on the first enterprise project. The conditions haven’t been little better than those days yet. In my opinion, the project was composed of four things: project leaders, programmers, customers, and the software system. However, I’ve never seen the harmony among them. The programmers who worked for the system complained about the pay, excessive overtime work, and all about the customer. In addition, it seemed like that customers who use the system never satisfied about the quality of the system forever. Moreover, the project leaders whomanage the project wanted to let programmers work late at night whether or not they did the tasks already.

Since I worked as a developer in 2006 at SW Eng. Team, I pondered upon those problems. Even though the software system is for the customers, they think they never get the reasonable profit compared to the expenses. Additionally, the system is done by the programmers – they are human beings without doubt, they actually don’t have normal human lives.

Finally, I found two reasons that made the situation worse, the gaps; the gap between customers and the programmers and the gap between project leaders and the programmers.

The gap between the customers and the programmers makes the system useless. From November 2006 to December 2007, I developed the statistical analysis program for the Ministry of Public Administration and Security. The program aggregated the data of the history for other programs usage and showed the statistical information through web.

The problem was that there was no requirement at all because the customers didn’t know what it was. As a result, I made the program according to my guess and it was never requested any bugs until I left that project.

Besides the business requirements, there is gap between the customers and programmers about the IT technologies. When I developed the card system for the AK Department from March 2008 September to March 2009, customers demanded that the system should use only the Struts framework. At that time, I was really enjoyed the benefits of the Spring framework and the iBatis framework during the former project for the Incheon Airport. Since I was confident the advantages those frameworks gave, I wanted to persuade the customers to approve the use of them. However, they said they didn’t want those difficult frameworks because their IT managers were accustomed to only the Struts framework. This experience made feel that the Spring framework and iBatis framework are useless if the customers don’t want to learn them. The IT managers who maintain the system would rather want the spaghetti code instead of learning IoC(Inversion of Control), AOP(Aspect Oriented Programming) and ORM(Object Relational Mapping).

Secondly, the gap between project leaders and programmers makes the condition worse. I always thought that programmers are intellectual labors not the muscular labors. However, the leaders want programmers to stay up till late. Moreover, the leaders hold a biased view that the programmers make more programs when they over work. This doesn’t apply to the programmers because they can make 12 hours work to 0 hours work by using the computer and their brains. When I developed the card system for the AK Department from March 2008 September to March 2009, the leader wanted the program to be deployed to the test server as soon as possible. He want me stay up to night to deploy the programs to the test server until all programmers went to home. At first, I used FTP program and my two hands because I didn’t know how to automate that process. After 1 week, I made that process using the Hudson framework an the Ant.

In Conclusion, the spell will not be come true if we don’t narrow the gaps. To narrow the gaps, the training and education is the best. Since I’ve worked on projects, I took many roles like a developer, designer and architect in the projects. I’ve learned from senior developers and taught my junior programmers and IT managers. However, I am always short of training resources and educational materials. The manual pages on the web site are too incomplete. The books are expensive and the books in translation are in disorder.

Through this course, I’d like to make pragmatic manuals for developers, project leader, customers and IT managers, if I could. Keeping up with that manual, I’ll spread the knowledge and with that knowledge I’ll make an educational framework that is easy to learn. On the ground that manual and educational framework, I’ll make enterprise design specifications which will be helpful for others.