블로그 이미지
미국에서 모바일 애플리케이션을 개발하고 있습니다. 요즘 Corona로 앱을 하나 개발하고 있는데 나도 공부 하면서 여러 분들에게 소개도 하고 싶어서 블로그를 만들었습니다.
솔웅

글 보관함

calendar

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    


High Performers vs. Workaholics: 7 Subtle Differences

(원본을 보시려면 위 제목의 링크를 클릭하세요.)


나는 일중독증에서 회복되고 있다.

지난해 나는 High performer와 workaholic의 다른점에 대해 알고 싶어 관련된 책도 읽고 나름대로 연구도 해 보고 나를 대상으로 실험도 해보고 했었다. 우리의 여러 가치들을 희생시키지 않으면서도 일할 수 있는 좀 더 우리에게 건강한 그런 방법이 있다고 나는 믿는다. 우리 사회는 일을 잘 하고 성과를 많이 내기 위해 일중독자가 되어야 한다는 잘못된 생각을 가지고 있다. 일을 하는 방법은 두가지로 분류할 수 있다.

High performance와 workaholism은 외견상으로는 비슷한 것 처럼 보인다. 둘 다 열심히 일하는 것을 말하는 것 같다. 그 둘 사이에서 크게 다른 점은 그들 일과의 관계에서 그 자신이 어떻게 느끼고 있느냐 이다.

High performer는 건강하게 일하는 방법을 유지하고 행복을 느끼면서 계속 영감을 받으면서  일을 열심히 한다.

workaholic 은 건강하게 유지되지 않는 방법으로 행복하게 느끼지 못하고 burn out 되버리는 방법으로 일을 열심히 한다.



1. Doing Business vs. Being Busy

High performer의 첫    번째 목표는 business를 하는 것이다. 그들이 관심을 갖는 것은 결과이다. 그들이 창조적인 가치를 보지 못하는 순간 그들은 대신에 전략을 세우고 일을 더 분발하게 된다. 그들은 economy, business 가 wave인 것을 안다. 그래서 그들은 하향기일 때는 기다릴 줄 알고 상향기 일 때 성과를 낼 줄 안다.

workaholic의 첫번째 목표는 바쁜 것이다. workaholic은 모든 시간을 다 일을 해야 한다. 아무것도 안하고 있으면 뭔가 불안한 것이다. 그 불안정성은 그들의 가치를 알지 못하는데서 나온다. 그들은 그들이 더 바쁠 수록 자신이 더 가치 있다고 생각한다. 그 결과로 일별, 주별, 월별, 분기별 그리고 연단위로도 그렇게 바쁠 필요가 없는 시기에도 바쁘게 지낼 수 있는 그런 방법을 찾아낸다.



2. Knows What's Enough vs. Never Enough

High performer는 어느만큼이 충분한 지 안다. 1점이든 50점이든 그 크기는 상관없이 충분할 때를 아는 것이다. win은 win인 것이다. High performer는 해당 분야에서 어느 정도 얻는 것이 충분한지 아는 것이다. 그럼으로서 성공의 정의가 명확하게 서 있게 된다.

workaholic은 충분한게 어느만큼인지 모른다. 항상 자신은 충분하지 않다고 생각한다. 그리고 자신은 한상 시간이 충분하지 않고 충분한 지원을 받지 못한다고 생각한다. 그들은 항상 '좀 더'에 촛점을 맞춘다. 그리고 모든것을 극대화 하고자 한다. 왜냐하면 그들은 그들에게 어떤것이 성공인지 그 의미를 정확하게 모르기 때문이다.



3. 100% At The Right Time vs. 110% All Of The Time

High performer는 언제 turn it up 해야 되는 지를 안다. 자기 차례가 되면 자기가 가지고 있는 전부를 준다. 그들은 불확실한 110%를 취하려고 하지 않는다. 그들은 110%는 지속 가능하지 않다는 것을 안다. 그들의 capacity를 초과하려고 하지 않는다. 그들의 100%가 경쟁자의 110%보다 더 나은 것임을 그들은 알고 있다.

workaholic은 '무엇을 위해 거절하는데?' 라고 생각하고 항상 무리하고 grind 하고 go H.A.M.(Hard as a Motherf**ker. 지랄 맞게 힘들게 한다.) 하게 된다. 그들은 뭐가 더 중요한지 그 우선 순위를 매기지를 못한다. 그래서 모든 것이 중요하다고 생각해 버린다.




4. Knows Their Value vs. Allows Others To Determine Value

High performer 는 그들 자신의 값어치를 안다. 그래서 자유로운 상황에서 일을 할 줄 안다. 이런 것들은 그들의 performance에 대한 self-evaluation 을 주기적으로 하는데서 비롯된다. 그래서 스스로를 지속적으로 계발시킬 수 있게 된다. 그들은 다른 사람들로부터의 feedback을 기다리는 것 보다 자기 자신의 feedback loop를 창조해서 사용한다.

workaholic은 그들의 boss, 동료 나 고객들로부터 오는 외적 평가에 의존한다. 그래서 뭔가 두려운 상황속에서 일을 하게 된다. 그들은 그들이 얼마나 일을 잘 하는지에 대해 다른 사람들이 하는 판단을 분기별로 혹은 연단위로 하는 그런 외부적인 평가를 기다린다.


5. Proactive/Intentional vs. Reactive/Unintentional

High performer는 그들의 시간과 일을 다루는데에 proactive하다. 그들은 자신의 하루를 디자인하고 의미 있는 일들을 정해서 중요한 일들을 우선 순위에 둔다. 그리고 나서 실행을 한다. 그리고 계획되지 않은 일들은 여유 시간에 채운다. 그들은 그들의 전략을 결심하는데 집중한다.

workholic은 그들의 시간과 일을 다루는데 있어서 reactive 하다. 그들은 다른 이들의 이메일에 반응해서 일을 진행하고 다른 사람들이 시키는 일을 처리하고 하루 종일 계획되지 않은 일 산만한 일들을 같이 처리한다. 아주 세세하고 자질구레한 것들 까지 다 정해 졌을 때에 거기서 가장 의미있는 일들을 찾으려고 한다.



6. Focus On What I Control vs. What I Can't


high performer는 그들이 얼마나 노력하느냐와 그 결과에 촛점을 맞춘다. 그들 스스로 최선을 다해 일을 처리하고 스스로 그것을 인지한다. 그들은 자기 자신이 최선을 다 했느냐의 여부로서 스스로를 판단한다.

workaholic은 outcome에 촛점을 맞추고 그 다음이 그들의 income이다. 자시 자신이 최선을 다 했다고 생각함에도 그 일로 이룬 outcome과 우리가 투자한 income들이 자신의 통제속에서 이루어 지지 않는다. 그들은 성공에 대한 일반적인 기준을 사용해서 그들 스스로를 평가한다. 그런 일반적인 기준들은 자신의 상황에서 자신이 들인 노력과 직접적으로 관련이 있지 않은 기준들이다.




7. Put Self First vs. Second

High performer는 그들이 알아야 그렇게 행할 수 있으므로 자기 자신을 첫번째로 둔다. 그렇게 함으로서 다른 사람들에게 higher level로 serve 할 수 있다. 때로는 이기적인 모습으로 비칠 때도 있지만 사실은 그것은 이기적인 것이 아니라 이타적인 것이다. 왜냐하면 같이 일하고 있는 사람들에게 first-class service를 주고 싶기 때문에 그렇게 하는 것이기 때문이다.

workaholic은 그들 자신보다 다른 사람들을 우선순위에 둔다. 이것은 이타적인 모습으로 보일 수 있다. 하지만 이것은 지속적일 수 없다. 우리가 가지고 있는 것보다 더 많이 준다면 그럴 수 있는 자원을 계속 보충할 수 없기 때문이다. 그러한 행동은 좋은 의미에서 나오는 것일 수 있다. 하지만 그것에는 다른 사람들이 자신을 필요로 하고 자신이 영웅적인 존재로 인식 되고 싶기 때문도 있다.

이 글을 통해 workaholic과 high performance를 확실하게 구분하는데 도움을 주었으면 한다. 그리고 여러분 자신은 어느쪽이고 매일 여러분의 일을 훌륭하게 성취하는데 도움을 줄 수 있으면 하는 바람이다.

Wishing you more happy hours,

Jullien Gordon
www.julliengordon.com

저작자 표시 비영리 동일 조건 변경 허락


Automated Testing Advantages, Disadvantages and Guidelines


이 글은 Automated Testing에 대한 간략한 소개로 시작합니다. Automated Testing의 다른 방법들과 잇점 그리고 Automated teste들이 automation의 잇점을 충분히 활용하기 위해 반드시 따라야 하는 가이드 라인 등도 함께 소개 됩니다.



Advantages of Automated Testing



Introduction:



"Automated Testing"은 현재 사용하고 있는 manual testing 과정을 자동화 하는 겁니다. 이를 위해서는 먼저 현재 회사나 조직에서 사용하고 있는 manual testing process를 formalized 해야 겠죠. 


Automation은 manual 혹은 human involvement를 줄이고 기술이 필요로 하지 않은 반복적이거나 redundant 한 일들을 줄이기 위한 strategy, tool, artifact들이다.


최소한 아래의 프로세스들이 포함된다. :


- 예상되는 결과를 포함한 자세한 테스트 케이스. 이 테스트 케이스는 Business Functional Specification과 Design documentation을 바탕으로 개발 된다.

- standalone Test Environment. 테스트 케이스가 매번 반복될 때마다 어플리케이션에 수정되면서 적용될 수 있도록 하는 미리 정해진 constant 같은 것들이 restorable 될 수 있도록 하는 Test Database 같은 것들이 포함 되어야 한다.



아래와 같은 테스트 타입이 자도화 될 수 있습니다.


* Functional – 항상 예상대로 진행 되어야 하는 것들에 대한 테스트

* Regression – 어떤 시스템의 동작이 변경되지 말아야 되는 경우에 대한 테스트

* Exception or Negative – 시스템에 일부러 에러를 일으켜서 테스트 해야 되는 경우

* Stress – 어플리케이션이나 operational infrastructure 의 capacity 를 측정해야 될 경우* 

* Performance – 시스템의 퍼포먼스가 business projection, 요구조건과 관계된 온라인 트랜잭션 과 batch run들 모두에 대해 알맞게 이루어 지고 있음을 보여주어야 할 필요가 있을 때.

* Load – 시스템의 capacity와 performance가 하드웨어나 소프트웨어의 업그레이드가 필요할 정도로 노화되는 시점을 파악할 필요가 있을 때




Benefits of Automated Testing


* Reliable: 매번 실행될 때마다 정확하게 동일한 동작을 시행함으로서 human error를 줄일 수 있다.

* Repeatable: 같은 동작에 대해 반복 시행될 경우 소프트웨어가 어떻게 작동하는지 테스트 할 수 있음.

* Programmable: 어플리케이션의 알려지지 않은 부분을 알아내기 위한 정교한 테스트를 프로그램할 수 있음.

* Comprehensive: 어플리케이션의 여러 기능들을 한번에 테스트하는 test suite를 만들어 사용할 수 있음

* Reusable: 하나의 테스트 케이스를 여러 버전의 어플리케이션에 적용할 수 있다. (유저 인터페이스가 바뀐 경우에도 사용할 수 있다.)

* Better Quality Software: 적은 resource로 짧은 시간에 더 많은 테스트를 진행할 수 있다.

* Fast: Automated Tool은 사람이 하는 것보다 훨씬 빨리 일을 처리 할 수 있다.

* Cost Reduction: Regression을 위한 테스트 인원을 감원할 수 있다. 


해당 작업에 알맞는 tool을 고르는 것과 deploy를 위해 해당 조직의 제대로 된 적용 범위를 정함으로서 이러한 잇점을 최대화 할 수 있다. Automation 이 반드시 사용되어야 할 알맞는 적용 범위를 정하는 것이 중요하다.


아래의 분야들은 반드시 자동화 되어야 한다.


1. 중복적으로 진행되는 일이나 시나리오.

2. 단순하고 오래 걸리며 human error를 일으 킬 수 있는 반복적인 일

3. 잘 개발 되고 잘 구성되어진 use case나 시나리오 우선으로 자동화

4. 상대적으로 안정된 부분



Automated tester들은 자동화의 장점을 최대화 하기 위해 아래 가이드 라인을 따라야 한다.


• Concise: 최대한 간단하게

• Self-Checking: Test Report에 모든 결과가 있도록. 사람이 별도의 분석작업을 할 필요가 없도록

• Repeatable: 사람의 개입 없이 여러번 테스트가 진행될 수 있도록

• Robust: 테스트의 결과가 항상 같아야 함. 테스트가 외부적인 변화에 영향을 받지 않도록 해야 함

• Sufficient: Tests verify all the requirements of the software being tested. 해당 소프트웨어에 대한 요구조건을 모두 검증할 수 있어야 함

• Necessary: 각 테스트 마다 특정 테스트 사항들이 포함돼 있어야 한다.

• Clear: 모든 statement가 이해하기 쉬워야 한다.

• Efficient: 테스트 실행 시간이 적당해야 한다. (너무 길면 안된다.)

• Specific: 각 기능마다 failure point가 있어야 한다.  unit test failures provide "defect triangulation".

• Independent: 각 테스트는 임의의 suite 내에 있더라도 독립적으로도 실행 될 수 있어야 한다.

• Maintainable: 테스트는 쉽게 이해하고 수정하고 확장 될 수 있도록 만들어야 한다.

• Traceable: 요구사항의 시작과 끝과 같이 테스트의 시작과 끝을 추적할 수 있어야 한다.



Disadvantages of Automation Testing



자동화 테스트가 많은 장점을 가지고 있지만 단점도 있다. 아래에 그 단점들이 있다.


• 자동화 테스트 script를 작성할 수 있는 인원이 필요하다.

• 디버깅하는 것이 가장 이슈인 부분이다. 테스트 스크립트에 에러가 있는 경우 deadly consequences에 이르게 할 수 있다.

• playback method들인 경우 테스트를 유지관리 하는데 비용이 든다. GUI에 약간의 변화가 있어도 test script 는 수정되거나 다시 작성되어야 한다.

• 테스트 데이터를 관리하는 것이 어렵다. 


위의 단점들이 테스트 자동화로부터 얻을 수 있는 잇점에 손상을 가할 수 있다. 테스트 자동화에는 이렇게 장점과 단점이 있음에도 세계적으로 널리 적용되고 있다.




저작자 표시 비영리 동일 조건 변경 허락




저작자 표시 비영리 동일 조건 변경 허락

'TDD Project > Software Estimation Model' 카테고리의 다른 글

Software Estimation Technique  (1) 2014/06/24
이전 1 2 3 4 5 ... 267 다음

티스토리 툴바