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