품질 / 표준을 무시하는 소프트웨어 개발자는 회사에 더 적합합니까? [닫은]


10

코드 최적화, 표준 및 모범 사례를 최우선 순위로 두지 않기로 선택한 소프트웨어 개발자는 적시에 작업을 완료하는 것 이상의 최적화, 코딩 표준 구현 및 사례에 대해 걱정하고 싶은 개발자보다 유용한 코드를 생성합니까?

개별 성능 검토와 관련하여 이러한 방법론을 어떻게 비교합니까?

동료 리뷰에서 이러한 스타일을 어떻게 비교합니까?

SDLC 동안 더 많은 모범 사례를 구현하기 위해 팀에 영향을 미치는 가장 좋은 방법은 무엇입니까?


2
@Haylem-원래 수정 한 내용이 더 좋았다고 생각합니다. 제목이 첫 번째 문장과 동일하면 제목의 요점은 무엇입니까?
BlackJack

1
@BlackJack 나는 당신의 제목을 되찾고 질문을 조금 더 다듬 었습니다. 우리 세 사람이 편집 기록에서 같은 게시물을 밟아 잡힌 것 같습니다. 지금은 좋아야합니다.
Thomas Owens

4
SE는 당신의 상사에 대한 광란의 장소가 아닙니다. 우리 모두는 상사를 가지고 있으며 대부분의 사람들은 지휘권에 소속되어 있지 않다고 생각하는 사람을 가지고 있습니다. 여기에 대해 달아나는 것은 좋지 않습니다.
SoylentGray

1
@ 차드 : 당신이 말한 모든 것에 동의하지만, OP가 그의 상사를 (직접적으로) 망할 것인지 완전히 확신하지는 못합니다.
haylem

2
@ 차드 : 나는 그것을 읽었으며, 나는 당신의 반응을 이해할 수 있지만, Jitendra는 그가 한 모든 것이 사람들의 코드를 고쳤다 고 말하지는 않습니다 . 그러나 기능을 먼저 제공하는 것이 완벽한 품질의 미완성 제품보다 더 중요하다는 귀하의 주장과 다른 답변에 동의합니다. 빛이 조기에 죽었거나 아직 태어나지 않았기 때문에 빛을 볼 수없는 제품을 유지할 필요는 없습니다.
haylem

답변:


32

아니요, 프로젝트의 소유자 만 존중합니다.

그들은 다음 과 같이 몇 년 동안 쓰레기버릴 것 입니다.

  • 미래의 관리자
  • 미래 테스터,
  • 미래의 프로젝트 소유자,
  • 미래의 관리자,
  • 앞으로 코드베이스에 관련된 사람은 거의 없습니다.

그들은 다음과 같은 치료를받을 수도 있습니다.

  • 현재 테스터
  • 현재 기술 문서 작성자

@Ivan : 감사합니다. 장기적인 사고가 항상 이깁니다.
haylem

@haylem-사람들이 직업을 빠르게 바꾸고 있기 때문에 동의합니다. 그래서 더 나은 코드는 새로운 회원들이 코드를 빨리 이해하는 데 유용 할 것입니다
Jitendra Vyas

모두 사실이지만, 그들의 성능 때문에 그들은 오랫동안 고통을 겪은 사람들로부터 멀어 질 것입니다. 슬프지만 사실이야!
anon

6

거짓 이분법 : 자질은 직교입니다.

                고품질 저품질

수익성있는 멋진 스케치

수익성없는 Iffy FIRE FIRST

5
Iffy가 Sketchy보다 좋거나 나쁩니 까?
HLGEM

1
@HLGEM : 수익성은 항상 수익성보다 좋습니다.
Donal Fellows

스케치 품질로 인한 미래 비용을 무시하는
Rudolf Olah

1
개발자 뒤에 만 수익성을 할당하는 것은 지나치게 단순화 된 것입니다. 제품 관리, 배포 인프라는 어떻습니까? 또한 수익성에서 역할을 수행하지 않습니까?
DavidS

5

때문에 제 모범 사례는 최고 정의에 의해 , 그들이 그렇게 그들입니다 무시, 도로 아래로 빨리 modifcation으로, 짧은 시간에, 더 정확하게하는 프로젝트를 얻을 수 있도록 보장 이익을 감소. 물론 관리자는 자신 이 최선 이라고 생각 하지만 실제로는 그렇지 않다는 관행을 처방 하거나 고객이 지불 할 금액과 그렇지 않은 금액을 잘못 판단 할 수 있습니다.

코딩 표준은 더 까다 롭습니다. 코더에 너무 많은 세부 사항을 규정 할 수있어 효율성이 떨어집니다. 그러나 경험이 있으면 항문 보유 마이크로 관리에서 유용한 지침을 말하기가 매우 쉬워 지므로 실제 모범 사례는 항상 가치가 있고 의사 모범 사례는 항상 가치가 없습니다.

당신이하지 않은 코드 최적화는 일반적으로 일을 가치가되지 않습니다 측정 병목 현상이있는 것을 확인 최적화를 수행하는 것이 필요하다고과 측정 당신의 영리한 트릭 실제로의 preformance의 rquirement을 충족. 그렇지 않으면 (주로) 가치가 없으므로 최적이 아닙니다.


6
모범 사례는 짧은 시간 내에 모든 프로젝트를 올바르게 수행하는 데 도움이되지 않습니다. 대부분의 프로젝트에서 대부분 잘 작동하는 것으로 관찰 된 것입니다.
토마스 오웬스

2
"모범 사례"또는 다른 사람이 최선을 다하는 것으로 선언 된 최선의 방법은화물 컬트 코딩이 코딩 프로세스에 해당하는 개발 프로세스입니다. 실제 상황에서 실제로 가장 좋은 것이 든 아니든, 그렇지 않은 경우 대체해야 할 것이 무엇인지 이해해야합니다.
Blrfl

5

코드 최적화 및 실습에 관심이없는 개발자에게 동의합니까? 아니.

그들은해야 할 일을합니까? 예.

사업은 돈 버는 것에 관한 것이며 돈을 버는 유일한 방법은 제품을 출시하는 것입니다. 이것은 일반적으로 프로젝트에 엄격한 일정이 있다는 것을 의미합니다. 즉, 무언가를하는 가장 좋은 방법은 무언가를하는 가장 빠른 방법이 아닐 수 있습니다.

이러한 스타일의 개발에 동의하지는 않지만 제품이 출시되면 회사에서 존경받을만한 것으로 보일 수 있습니다.


나는 마지막 직장에서 코드 최적화에 대해 많은 관심을 보였지만 동료 개발자는 관심이 없었지만 더 많은 프로젝트를 저보다 더 많이 수행했으며 프로젝트 관리자와 이야기 할 때 고객이 프로젝트를 제 시간에 원한다고 말했으며 코드가 어떻게 작성되었는지 보지 못했습니다.
Jitendra Vyas

1
@Jitendra-하루 종일 이미 작성된 것들을 최적화하고 새로운 기능을 얻지 못하면 행복하지 않을 것입니다. 최적화로 인해 소스 코드에서 적은 수의 행과 문자 이외의 것을 얻을 수 없다면 아무것도 달성하지 못합니다.
SoylentGray

3
@Jitendra-나는 그것이 아니라고 말하지 않았다. 코드를 읽을 수있는 방식으로 작성하는 것이 좋습니다. 자신의 작업이있을 때 다른 사람들의 코드를 '고정'하는 것은 아닙니다.
SoylentGray

1
@Chad-내 코드를 다시 작성하거나 다른 사람들의 코드를 수정하는 것이 아니라 좋은 가독성, 향후 개발자를위한 적절한 의견 및 코드를 재사용 할 수있는 모범 사례를 사용하여 처음에 코드를 작성하려고합니다. 원본 개발자 만 이해할 수있는 엉망 코드를 작성하는 데 시간이 걸립니다. 좋은 코드는 항상 시간이 걸립니다.
Jitendra Vyas

4
@Ivan : 나는이 사고 방식에 직접적인 경험을했습니다. 이렇게됩니다. 회사는 그린 필드 프로젝트를 시작합니다. 유능한 개발자 X는 풍부한 양을 사용하여, 가능한 한 빨리 함께 물건을 던져 ctrl + c하고 ctrl + v. 제품이 매우 짧은 순서로 시작됩니다. 회사에는 Developer X가 있습니다. 버그 보고서 및 기능 요청이 들어옵니다. Developer X는 계속해서 다음 작업으로 넘어갈 수 없습니다. 향후 3 년간의 발전은 진보를 이룰 수없는 새로운 엔지니어 의 회전문이며 , X 회사는 한 번의 시장 이점을 모두 잃습니다.
Greg Burghardt

4

아니, 나는 가장 빠른 경로를 찾아 낼 것입니다 멀리 그 악을 높이 평가했다 회사로부터.


2
짧고 포인트가 높으면 +1합니다. 품질 표준에 관심이없는 회사는 어리 석거나 무지하거나 사기입니다.
Wayne Molina

3

예, 아니오. 약간 소망스러운 워시이지만 최선의 연습이며 완벽한 연습은 아닙니다. 이상적으로는 지속적으로 따라야하지만 항상 비즈니스가 제품 요구보다 먼저 요구를하는 상황이 발생합니다.

당신은 관리자에 의해 미워하지만 상사에 의해 사랑받을 것입니다.


3

모범 사례는 다소 상식과 비슷합니다. 모든 사람은 두 사람이 자세히 논의하기 시작할 때까지 모든 사람이이를 알아야한다는 데 동의합니다. 두 사람이 정의에 완전히 동의하지 않으며 모든 상황에 적용되는 논리적 진리의 원천이 없습니다.

우주 위성에 대한 안내 시스템을 작성하고 있습니까? 그렇다면 이런 종류의 작업에서 나쁜 품질 / 성능 코드는 결코 용납되지 않습니다.

일회성 마케팅 푸시를위한 끔찍한 웹 사이트를 작성하고 있습니까? 그렇다면 네, 마감일을 맞추는 데 필요한 수단을 통해 보풀을 제거하십시오. 차기 마케팅 이사는 아마도 다른 회사와 다른 일을 할 것입니다. 예술이나 과학이 아닌 것은 유료입니다.

그 사이의 모든 것 : 협상 할 수있는 것, 특히 개발자가 초기 지원을 받기 위해 필요한 경우.

당신이 선호하는 성품이 다시 올 때까지 그리고 그 / 그 / 그녀가 개발 관행을 기적적인 방식으로 정의 할 때까지, 삶과 죽음의 결정에 직접적인 책임이없는 어떤 프로젝트에 대해서도 논쟁의 여지가 많이 생길 것입니다 일회용이 아니기 때문에

생명에 중요한 레이블이있는 모범 사례 이외의 모든 것은 일반적으로 회사 정책, 고객 사양 또는 개인 의견과 유사합니다. 그들 중 다수는 현재 많은 사람들이 동의하는 개인적인 의견이지만 모든 상황에 대한 불변의 가이드는 아닙니다.


2

그들이 회사를 위해 얼마나 많은 돈을 벌 수 있는지는 논쟁의 여지가 있습니다. 문제의 코드를 다시 방문하는 수준이 있다면 유지 관리 비용이 상승하고 누군가가 행복하지 않을 것입니다. 장기 유지 보수 비용이 높으면 올바르게 수행하는 것보다 비용이 많이 듭니다.

그들이받는 존중의 정도는 사례마다 다를 수 있습니다. 그러나 어느 시점에서 누군가가 알아 차릴 것입니다.


2

이러한 것들에 신경 쓰지 않으면 단기적으로 회사에 더 많은 돈을 벌 수 있지만 더 많은 버그 수정 및 유지 보수 코딩으로 회사에 더 많은 비용 이들 수 있습니다.

경쟁사와 유사한 제품을 동시에 시장에 출시하기 위해 서두를 필요가있는 경우, 때로는 더 빠르고 더러운 작업이 필요할 수 있지만, 그러한 조치의 향후 비용은 신중하게 고려해야합니다.


2

그것은 모두 고객에 달려 있습니다.

빠르고 더럽고 (그리고 일반적으로 더 싼) 것을 좋아하는 고객은 앞으로 문제가 발생할지 걱정하지 않습니다.

캐비닛 구성을 생각하십시오.

일부는 양질의 맞춤형 캐비닛을 지불하고 높이 평가합니다. 그들은 나무 서랍과 최고급 하드웨어의 추가 비용을 신경 쓰지 않습니다. 그들은 물건을 짓고 설치하는 데 1 주일 또는 몇 달이 걸릴 것이라고 걱정하지 않습니다.

많은 사람들은 그렇지 않습니다. 많은 사람들이 큰 상자 상점에서 얻는 저렴한 파티클 보드 대량 생산 재료를 선택합니다. 그들은 2 일 안에 설치하기를 원합니다. 여기에 작은 간격이 있으며 완벽하게 수용 가능합니다. 그들은 10 년 후에 헤어질 것이라고 걱정하지 않습니다.

따라서 관리자가 빠르고 더러운 작업을 수행하는 개발자를 칭찬하는 경우 고객은 고품질을 원하지 않거나 관리자가 고객에게 거짓말을합니다.

단지 시간이 말해 줄 것이다. 관리자가 원하는 것을하거나 다른 직업을 찾으십시오.


1
물론 소프트웨어는 지원을 제공 할 수 있으므로 두 가지 모두 옵션이 될 수 있습니다. 즉, 우리는 알려진 문제에도 불구하고 v1과 함께 처음으로 시장에 출시 될 것입니다. 그러나 우리가 벌어 들인 돈은 미래에 문제를 해결할 수있게 해줍니다.
jk.

1

아뇨. IMO 코드 최적화, 모범 사례, 실제 장인 정신 은 코드베이스에서 가장 중요합니다. 그것 없이는 모든 것이 슬러지가되고 덕트 테이프와 함께 유지됩니다. 지속 불가능한 디자인입니다. 그것은 작고 건강하기 때문에 종양을 무시하는 것과 같습니다. 당신은 지금 건강하지만 길 아래로 몇 년 동안 그것을 오랫동안 무시했기 때문에 터미널이됩니다.

난 단지를하지 아니 이런 것들에 대해 걱정하지 않는다 개발자들과 동의하지만, 나는이 제로 존중 부팅에 대한합니다. 내가 얼마나 짧은 시간을가더라도 조직을 떠나도록 고려할 수있는 확실한 방법은 내가 관심을 가지는 유일한 사람 (회사 전체에서 유일한 사람이 아닌 경우) 인 팀으로 둘러 쌓는 것입니다. 적절한 소프트웨어 엔지니어링 개념에 대해


1

좋은 읽을 거리 : http://www.joelonsoftware.com/items/2009/09/23.html

그러나 IMHO, 한 사람의 모범 사례는 다른 사람의 악몽입니다. 그리고 사소한 모든 코드 기반은 외부인에게 악몽이 될 것입니다.

당신이 어떻게 생각하든 그것에 대해 바보가되지 마십시오.

편집 : 나는 양쪽에 기댈 수있는 작업에 따라 어떤 직책도 변호하지 않습니다.


"모범 사례"IMO에 따라 다릅니다. SOLID디자인 패턴을 사용하고 추상화 / 인터페이스를 사용 하는 원칙을 따르는 테스트 (일반적으로 TDD는 아니지만 일반적으로 자동화 된 테스트)와 같은 것은 유능한 개발자가 수행해야 할 기준입니다.
Wayne Molina

내가 테스트를 좋아하는 한 ... 기준이 아닙니다.
CaffGeek

1

회사에 더 좋습니까? 때에 따라 다르지.

제한된 자금을 가진 신생 기업의 경우, 자금을 조달하고 밖으로 나가십시오. 지저분한 것이 든 상관없이 나중에 더 많은 자원이있을 때 고칠 수 있습니다.

소프트웨어의 품질에 의존하는 사용자가 많은 성숙한 제품의 경우 모든 것이 "적절하게"수행되어야합니다.

개별 개발자에게 더 좋습니까? 실제로는 관련이 없습니다. 동료들이하는 일과 똑같이하고 경영진이 낙진을 처리하게하십시오. 그것은 당신의 일이 아닙니다. 당신이 항상 다른 사람들의 쓰레기를 고치면, 당신은 느리게 보일 것입니다. 그리고 당신은 다른 사람들이 당신 위로 승진하는 동안 여전히 거기에있는 사람이 될 것입니다. 프로그램에 참여하거나 그렇게 나쁘다면 가능한 한 나가십시오.


"지저분한 문제는 중요하지 않으며 나중에 더 많은 리소스가있을 때 수정 될 수 있습니다." 이론 상으로는 실제로이 결코 발생하지 않기 때문에 당신이 무언가를 밀어 일단있는 거 붙어 그것을 유지하고 다시 가서 그것을 해결하기 위해 자원이 없다, 그래서 새로운 것을 추가.
Wayne Molina

동의하지 않습니다. 그것은 내가 관여했던 많은 중소 규모 웹 프로젝트에서 확실히 일어 났으며 주요한 방법으로 코드베이스를 리팩토링하는 유명한 회사의 사례도 많이 있습니다. PHP 언어 등을 최적화하십시오. 실제로, 우리가 매일 사용하는 성공적인 성숙 앱 (웹 및 데스크톱)의 대부분은 v1 조상과 공통되는 코드가 많지 않다고 확신합니다.
timh

그러나 6 년 동안 회사를 개발 한 결과, 시간이 지남에 따라 코드를 리팩터링 할 수있는 회사를 정확히 찾았습니다. 다른 곳에서는 코드를 관리 할 수없는 경우에도 "파괴되지 않은 것을 수정"하는 데 전념 할 자원이 없었습니다.
Wayne Molina

0

개발자와 프로젝트 / 상황에 따라 다릅니다.

특별한 시간에는 특별한 조치가 필요합니다.

따라서 지금 제공 해야하는 것이 있고 누군가가 최신 버즈 워드 프레임 워크를 14 개 이상 사용하는 엔터프라이즈 급 Java 응용 프로그램을 과도하게 엔지니어링하는 경우 간단한 파이썬 스크립트가 작업을 수행하는 것은 모서리를 자르고 생각하는 개발자만큼 나쁩니다. 버그가있는 코드는 정상적인 시간에 수행됩니다.

개발자가되는 부분은 유연합니다. 도구의 노예가되어서는 안되며 맹목적으로 관행을 따라야합니다. 항상 실패 할 경우가 있습니다. 규칙을 어 기고 구부릴시기를 아는 것은 많은 경험과 함께 제공되는 가치 중 하나입니다.

귀하의 경우-속도가 중요하기 때문에 그가 당신보다 더 많은 가치를 제공한다면, 도로에서 유지 보수 비용 증가를 고려한 후에도 더 나은 보상을받을 자격이 있습니다. 다른 한편으로-당신이 그의 혼란을 청소하는 데 붙어 있다면-경영진과의 의사 소통 문제가 있습니다.

경우에 따라 다릅니다. 코딩 스타일을 제외하고는 변명의 여지가 없습니다.


0

죄송하지만이 질문에 대한 대부분의 답변에 동의하지 않으면 안됩니다 (상단 답변 제외).

소프트웨어의 주요 가치는 유연하다는 것입니다.

이유없이 다른 사람들의 코드를 다시 작성해야한다고 생각하지 않습니다. 기능을 구현하기 위해 어떤 이유로 든 모듈을 변경해야하는 경우 이제 해당 모듈의 소유자가 더 좋거나 더 나쁩니다. 변경하고 일부를 다시 작성하고 모두 다시 작성하십시오.

유연성면에서 결코 낮은 품질을 생산하지 마십시오. 소프트웨어에 아무것도 버리지 않는 것은 없습니다. 고객이 일시적인 말을하고 특정 날짜 이후에 필요하지 않고 품질에 관심이없는 경우 "나쁘다"라고 말하거나 코드를 한 번만 사용자 나 다른 프로그래머가 변경하지 않을 것이라고 서면으로 작성하십시오. 프로덕션 환경에 배포되거나 소송을 제기 할 권리가 있습니다.

이 답변 중 일부에서 가장 나쁜 가정은 어떤 깨끗한 코드가 어떻게 든 개발 속도를 줄인다는 것입니다. 어떤 물질 (6 시간 이상의 작업)의 프로젝트에 대해서도 깨끗한 코드는 장기적으로 (1 주일 이상) 개발 속도를 높입니다. 나는 그것을 몇 번이고 또 다시 보았다.

품질이 좋지 않은 코드는 직업과 동료에게 무례합니다. 미안하지만 사실입니다.

따라서 유연성 측면에서 품질이 떨어지는 것은 아닙니다!


1
절대 말하지 마 모든 앱은 휴지통에 버려집니다. 한 시스템에서 다른 시스템으로의 데이터 변환은 한 번 사용되며 썩어 버립니다.
JeffO

코드를 깨끗하게 유지 하면 단기적 으로 개발 속도가 약간 줄어 듭니다 . 중요한 부분은 부정한 코드로 인해 장기적으로 크게 줄어든다는 것입니다. 나는 그것을 언급하는 몇 가지 다른 대답을 봅니다.
Ixrec
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.