nathan_H

[독서] 소프트웨어 장인 본문

끄적끄적/독서 서평

[독서] 소프트웨어 장인

nathan_H 2019. 3. 4. 07:26




요새  다양한 코딩, 개발 관련 교육이 늘고 

많은 사람들이 개발자쪽으로 

커리어를 전환 하는 경우가 

늘어나고 있다.



하지만 

정말 좋은 개발자,

좋은 프로그래머가 

되기 위해서는 어떤 것이 필요하고

어떠한 자격을 갖춰야 하는가??



이에 대한 대답을

이책을 통해

살펴볼까 한다.







애자일

개발자라면 애자일이라는 

단어를 한번쯤 

아니 자주 들어봤을 것이다..



애자일이란 

출처 - https://terms.naver.com/entry.nhn?docId=3578302&cid=59088&categoryId=59096



애자일이란 

정햐진 규칙, 계획에만 

따르는 것이 아니라 

현재 상황과, 주기에 따라

유연하게 대처하는 법이다.



하지만 

과연 많은 기업들, 개발자들이

이러한 애자일을

올바르고 제대로 적용하고 있을까?



애자일 행오버


-많은 기업들과 개발자들이

애자일을 도입한다고 시작을 하고 있지만


부분적인 부분만 전화이 되고

중요한 부분을 관가하는 경우가 많다고 한다.



애자일의 모든 절차에는 

기술적 탁월함이 전제가 되어 있어야 하는데

많은 관리자들이나 역량이

부족한 코치들은 기술적인 수준이 개선되어야함을

무시하고 진행하는 경우가 많다.

절차적인 부분 이전에

기술적인 부분이 갖춰진 상태에서

애자일을 실행했을떄

올바르고 바른 방향으로 팀, 기업이

나아갈수 있다.



그리고 모든 절차에서

긍정적인 피드백 루프가 존재하였을때

효율적이고 긍정적인 애자일이

실행이 된다.


소프트웨어 장인정신

소프트웨어 개발자가 되기 위해선

훌륭한 개발 역량만 

갖춰지면 될까??



절대 아니다.



개발은 혼자 하는 것이 아니라

많은 사람들과 

공유하고 협력하였을때

더 좋은 결과물이 나온다.


세상에 완벽한 코드란 

존재하지 않기 때문에


많은 사람들과 커뮤니티를 형성하고

수없이 공유하고

피드백을 받아야 더 나은 코드

더 나은 프로그래머가 될 수 있다.



그리고 주니어 개발자

다음 세대를 이끌어갈 개발자들을 위해

많은 현업이나 개발을 하고 있는 개발자들은

다음 세대 육성을 위해

커뮤니티를 만들고

참여하고 공유하고 멘토링을 

진행해야 한다.



끊임없는 자기계발


'오늘날 우리는 계속해서 늘어만 가는 정보 속에, 

계속해서 줄어만 가는 의미를 

묵도하는 세상에서 살고있다.'


= 장 보드리아르.



개발자에게 있어

자기계발이란 빠질 수 없는 요소이다.


물론 모든 사람들이 자기계발을 하고

공부했을때 발전하는건  당연하다.



여기서는 개발자가 해야할 

자기계발에 대해 알아 볼까 한다.



[독서, 많은 독서]

개발자는 종이책이든, 전자책이든

나만의 서재를 가지고 있는 것이 중요하다.


기술에 관한 서적, 

특정 개념에 대한 서적,

행동양식의 대한 서적, 등


다양한 서적과 필요한 서적을 갖추고

끊임없이 읽고 공부 해야 한다.



[블로그]


브런치, 티스토리 등 

개발 관련 구글링을 해보면

많은 개발자들이 블로그를 하는 경우를 

볼수 있다.



블로그는

자신의 배움과, 여정, 기록등을

남겨놓기 정말 적합한 장소이다.


또한 

내가 배운 내용을 많은 군중들에게

공유 할 수 있고 

또한 거기에서 좋은 피드백 

더 나아가 긍정적인 커뮤니티까지 

형성 할 수 있다.


요새는 실력 있는 개발자분들이 

유튜브도 하는 모습도 볼 수 있다.


머든지 남과 공유하고 

기록하는 행위는 

나 자신에게 정말 많은 도움이 되는거 같다.




[실용주의]



소프트웨어 기술, 방법론, 실핸 관례들은

계속 발전되고 진화중이다.

어떤 일이든 더 좋은 수행 방법이 있다.


그 중에서도 

실용주의는 소프트웨어 장인이 

가져야 하는 최선의 역량중 하나다.



우리는 지속적으로 일하는

더 나은 방법을 찾고 

고객을 만족시켜야 한다.


그 결론이 

TDD를 도입하는 것이라면

그렇게 해야 한다.


그리고 

언제든지 TDD보다 더 나은 가치와 

더 빠른 피드백 루프를 줄 수 있는 다른 것이 있다면

그것을 TDD 대신 도입 해야한다.


무언가를 절대적으로 진리로 바라보고

맹신하는 것은 바람직하지 않다.

(이건 어느 분야에 가도 필요한 부분이다)


소프트웨어 장인은

자신의 일에 항상 최선의 기술, 도구, 절차, 방법론

그리고 실행 관례를 선택할 수 있도록

개방적인 사고를 가져야 한다.



[소통]


우리는 항상 일을 하기 전에

어떠한 실행 관례를 도입하기 전에

우리가 이루려는 것이 무엇인지 

논의해야 한다.

소프트웨어 개발/납품 절차 중에서 

어떤 부분을 얼마만큼 개선하길 원하는가?

이러한것들이 정의 된다면 

그 목적과 목표에 맞게 

최선의 실행관례를 도입하면 된다.




[끝맺음]


책의 뒤에 내용은 

소프트웨어 인재 채용 등 

사람을 선별하는 내용이 나온다.

소프트웨어 분야 고위직 분들이나

스타트업을 준비하시는 분들이 참고하면 좋을거 같다.


나는 아직 개발 공부를 시작한지 

몇개월 되지 않는다.


하지만 소프트웨어 분야에 

확신을 가지고 공부를 하고 있지만

공부를 함에 있어 

초반이지만 어려움이 좀 있다.


성능, 유지 보수, 네이밍, 리팩토링 등

코드를 작성할때 단순히 작동을 하기 위해 

작성하는 것이 아니라

미래의 나, 혹은 다른 많은 개발자들이

알아 볼 수 있도록 코드를 구성하기 위해

끊임없이 고민해야 한다는 것을

요새 많이 느끼고 있다.


그래서 이러한 습관을 

만들기 위해 노력중에 있다.


또한 간단한 프로젝트를 하기 위해

설계를 하고 FLOW CHART를 작성함에 있어도

깊은 고민과 많은 오류에 맞서야 하는 것이

쉽지 않은거 같다.


그래서 소프트웨어, 개발을 하기 위한 태도로 

틀리는 것을 두려워 하지않고 

용기를 가지고 정직하게 나의 코드를 받아들이고 

끈기와 인내를 가지고 

많은 사람들과 공유하고 좋은 피드백 루프를 

형성할때 

비로서 소프트웨어 역량은 

커질거 같다.


그리고 

빠르게 성장하는 것도 좋지만

조금은 느리더라도 

한줄의 코드를 짜더라도

효율적이고 유지보수가 가능하고 

다양한 소프트웨어에서 고려해야 할 부분을

고민하면서 작성할때 

비로서 그 코드가 내것이 되고 

올바른 길로 가는 것 같다.


소프트웨어 장인이 되기 위해 

조급하지 말고 

제대로 꾸준히 열정를 가지고

나아가는 자세가 필요하다.


나 또한 이러한 자세를 가지기 위해 

블로그, 커뮤니티 형성, 피드백 루프 형성 등

끊임없이 자기계발을 통해

성장하고 발전할 것이다.





Comments