Act with Prudence - Seb Rose


"whatever you undertake, act with prudence and consider the consequences" Anon


NO MATTER HOW COMFORTABLE A SCHEDULE LOOKS at the beginning of an iteration, you can't being under pressure some of the time. If you find yourself having to choose between "doing it right" and "doing it quick." it is often appealing to "do it quick" with the understanding that you'll come back and fix it later. When you make this promise to yourself, your team, and your customer, you mean it. But all too often, the next iteration brings new problems and you become focused on them. This sort of deferred work is known as technical debt in his taxonomy of technical debt, and it should not be confused with inadvertent technical debt.


Technical debt is like a loan: you benefit from it in the short-term, but you have to pay interest on it until it is fully paid off. Shortcuts in the code make it harder ot add features or refactor your code. They are breeding grounds for defects and brittle test cases. The longer you leave it, the worse it gets. By the time you get around to undertaking the original fix, there may be a whole stack of not-quite-right design choices layered on top of the original problem, making the code much harder to refactor and correct. In fact, it is often only when things have got so bad that you must fix the original problem, that you actually do go back to fix it. And by then, it is often so hard to fix that you really can't afford the time or the risk.


There are times when you must uncur technical debt to meet a deadline or implement a thin slice of a  feature. Try not to be in this position, but if the situation absolutely demands it, then go ahead. But (and this is a big but) you must track technical debt and pay it back quickly, or things go rapidly downhill. As soon as you make the decision to compromise, write a tack card or log it in your issue-tracking system to ensure that it dose not get forgotten.


If you schedule repayment of the debt in the next iteration, the cost will be minimal. Leaving the debt unpaid will accrue interest, and that interest should be tracked to make the cost visible. This will emphasize the effect on business value of the project's technical debt and enables appropriate prioritization of the repayment. The choice of how to calculate and track the interest will depend on the particular project, but track it you must.


Pay off technical debt as soon as possible. It would be imprudent to do otherwise.


맞습니다.

급한 프로젝트일정때문에 가끔은 "제대로하기"(doing it right) 보다는 "빨리하기"(doing it quick)를 선택해야될 경우가 많다.

그러지 않기 위해서 노력해야겠지만 어쩔수 없는 경우에는

빠른 주기로 재대로 고치를 작업을 해야한다.

그렇지 않고 놔두다보면 나중엔 정말 일이커져서 엄청난 위기에 봉착할수 있다.

 

Posted by 빨강토끼
,

괜찮은 책인것 같아서 한 꼭지씩 주석을 달며 정리하려고 합니다.


원문은 CCL 라이센스가 있어서 블로그에 등록이 가능하지만


한글로 번역된 글은 저작권은 어떻게 될지몰라서 그냥 원문으로 정리 하겠습니다.


http://www.amazon.com/Things-Every-Programmer-Should-Know/dp/0596809484/ref=sr_1_5?s=books&ie=UTF8&qid=1393335474&sr=1-5&keywords=97


http://book.daum.net/detail/book.do?bookid=BOK00017977718BA

Posted by 빨강토끼
,

예전에는 필요한것이 있으면

http://www.sunfreeware.com 에서 다운로드 할수있었지만

언제부터인가 http://unixpackages.com 으로 유도하고 있더군요.


그런데 문제는 그사이트가 유료화되고 있다는 것입니다.


구글링을 하다보니 다행이 괜찮을 곳을 찾을수 있었습니다.


http://ftp.riken.jp/Sun/sunfreeware/sparc/


물론 다운받을수있는 버젼이 극히 제한적이다....



Posted by 빨강토끼
,

기사와 다른쪽으로 이야기가 흘러간 글입니다.

NoSQL 이나 NewSQL 관련 정보를 얻고 싶으시면 구글의 다른 검색 결과를 조회 하세요.


"새로운 SQL이 뜬다" SQL과 NoSQL의 장점 결합한 NewSQL

http://www.itworld.co.kr/news/71459

나는 나름 매출이 큰 서비스의 PG(payment gateway) 시스템을 개발하고 있다.
하지만 시스템에는 ESB 나 EAI 심지어는 MQ 도 사용하지 않고 있다.
그중 메인엔진은 스프링도 사용하지않고 pure JAVA 로 되어 있다.

이유는 간단하다. 검증이 안되서이다.
확장성도 좋고 유지보수도 더쉬어지고 심지어는 성능도 더 좋아진다고 하는데
쓰지 않는다.

웹이나 앱쪽은 참 빠르게 변화되는데 말이다.
다른 서비스는 빠르게 요구사항이 변화되고, 
검증되지 않은 문제점이 발견되더라도 대처가 유연하고
이러한 이유로 잠시 서비스를 중지 한다고 해서 큰사고로 이어지지 않는다.

하지만 코어개발쪽은 365일 24시간 무정지서비스가 원칙이다.
최초에 C 나 C++ 이 아니라 JAVA로 개발한다고 해서 이슈가 되었을 정도로
코어개발쪽(돈을 처리하거나 민감한 서비스는)은 최신 기술도입에 참느리다.

NoSql도 마찮가지다. 
빅데이터가 수많은 정보를 모아놓고 그중에 보물을 찾는 과정이라면
주어진 역활을 정확히 처리해야되는 상황에서는 오히려 그런 보물을 찾는 과정을 사치(?)로까지 생각하는 경향이 있다.

스터디 활동을 하며 이런저런 기술에 대하여 듣고 도전해보는 분들을 보며,
급격하게 변하는 세상속에서 나만 혼자 가만히 있는 것 같아서 두려움을 느낄 때가 많았다.

인터넷이나 책을 보면서 이것저것 공부를 해봐도,
가장 그 기술에 대하여  학습할 수 있는 가장 확실한 방법은
실무에 사용하는 것 만한 것이 없다. 

스프링을 반년동안 공부를 했지만 
실무에 적용하질 않으니 1년이 지난후에 기억나는 것은 별로 없다.

마치 영어를 공부하는 것과 같았다

핑계라면 핑계일까? 아니 나름 깨닳은 것이 있다면
항상 신기술에 흐름을 주목해야 하지만 무작정 신기술을 쫓아다니면 안되겠다는 것이다.
어쩜 그 기술을 실무에 써보기도 전에 다른 기술로 트랜드가 넘어가는 경우가 생길수도 있고,
어쩌면 평생 그분야의 일을 실무로 경험해보지 못할수도 있다.

마치 네트워크 프로그래밍쪽 일을 하거나 진로를 정한 개발자가
node.js 나 CSS 쪽에 관심을 갖는것처럼 ...
하지만 보안쪽일을 하게되면 그쪽의 지식이나 경험이 필요할 때가 분명 있긴하다.
그러나 아직 네크워크 프로그래밍이나 개발자체에 경험이나 실력이 부족하다면 
자기 분야에 좀 더 공부시간을 투자하는것이 더 도움이 될것같다.
대용량 DB 튜닝이나 OS쪽에 관심을 가지는 식으로 말이다.

모두들 javascript 나 빅데이터에 관심이 쏠려있다고 해서 이끌려 다닐 필요가 없는 듯 하다.

물론 그분야에 일을 하거나 관심이 있는 사람들에게는 그런 이슈들이 상당히 중요한 문제들이고 
꼭 필요한 과정이다.

나역시 매일 마음을 가다듬지만 매일같이 쏟아나오는 신기술에 대한 기사나 
튜토이얼 메뉴얼을 힐끔힐끔 검색하며 보고있는 내자신을 발견하게 된다....


Posted by 빨강토끼
,