題:
我如何避免因繼承的本來就多蟲的項目而受到責難,但被告知要添加功能而不是對其進行修復?
Prodnegel
2016-11-01 20:00:19 UTC
view on stackexchange narkive permalink

過去:大學畢業後開始擔任軟件工程師的新工作。分配未經註釋,未經記錄的項目混亂,無需培訓或指導。我是從事此項目的唯一人員,其他人都不知道或從未見過代碼

我告訴我的經理,代碼非常混亂並且有錯誤,但是他告訴我開發功能而不是修復代碼。現在已經過去了幾個月,現在是時候向客戶展示該程序了,我擔心我會因提供部分“中斷”的程序而受到譴責。

因為沒有重構,而且從來沒有使用過重構受時間限制和經理的意願影響,我該如何避免即將來臨的厄運?我覺得我從一開始就無意中失敗了。我什至認為我在錯誤代碼的頂部添加功能使事情變得更糟,因為我不得不做一些奇怪的事情來繞過這些錯誤。

在告訴我開發更多功能而不是修復錯誤的同時,如何避免被繼承的本來有bug的項目所遭受的懲罰?

編輯:我感覺像這樣與標記為重複的問題不同,因為我是一位擁有0年經驗的全新開發人員。我覺得這是我情況的重要方面。


[您如何確定自己是否正參加死亡遊行?](http://workplace.stackexchange.com/questions/58831/how-do-you-figure-out-if-youre-on-死亡行軍)
評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/47938/discussion-on-question-by-prodnegel-how-can-i-a-avoid-being-chastised-for-a-項目)。
啊,中毒的聖杯。我想我有這個項目了。
@Simba [Scotty]的強制性參考(https://youtu.be/8xRqXYsksFg?t=11s)。
無論事情進展順利(或糟糕),都應感謝您在職業生涯的早期(而不是稍後)學習了該課程。這不是一種罕見的情況,我在這裡看到很多很好的建議:如果再次發生這種情況,您將準備從關係開始就以機智和專業的方式處理它。
十二 答案:
user44108
2016-11-01 20:14:33 UTC
view on stackexchange narkive permalink

您現在比任何人都更了解該軟件。

因此,在進行演示時,請專注於運行良好(或至少應按要求運行)的部分。當前無法正常運行的任何其他功能都可以標記為“進行中”或“原型”。使用這些來討論如何改進這些功能(或者更好的是,讓他們告訴您這些並不重要)。可以,什麼不可以。另外,請查看與他人的任何文檔/談話,並了解應該應該做什麼以及如何工作。展示知識並表現出對系統的信心將使您和您的言論充滿信心。

這是在您和經理之間的,您如何擔任此職務—即,如果您告訴他們原始開發人員已經離開項目並且您已經必須收拾the繩。人們確實比不誠實更尊重誠實,並且掩蓋以前的開發人員的嘗試總是被視為掩蓋(人們不喜歡這樣)。允許重新調整項目的重點(以前的開發人員可能還是帶領該項目走了一條不必要的路線)。

我認為您的回答在這種情況下最能幫助我,但是由於似乎似乎在試圖怪罪別人,因此我有點猶豫使用“老開發人員離開它……”這一行。
@Prodnegel-為什麼?員工繼續前進是很自然的。您也可以稱其為“獲得項目”或“我現在已分配給該項目”。無需責備它,這只是簡單的事實。
與承擔責任和承擔責任無關。我認為最好說“我受命添加x個新功能,我將在這裡向您展示。”換種方式看起來像是“給了我這個,找到了這些,並決定不修復它們,因為它們不是我的問題。”對於客戶而言,問題在於,如果他是項目的開發人員,那麼在一定程度上他們就是他的問題(確實是經理的問題,但在這種情況下,他是代表)。
另外,最好記下演示步驟並事先運行要演示的程序版本,這樣您就可以記下任何可能出錯的地方。然後,您可以說“這應該...”,然後在演示中進行說明之前,請說出可能出問題的地方,以及要解決的“待辦事項”隊列中的問題。這樣一來,您就不會離開“嗯..嗯..這本來就不會發生的。”
@AndrewMorton太好了,不容置評。製作演示時,*準備演示*。不要只管它-計劃,排練,修復或避免您以這種方式發現的任何錯誤並提高性能。考慮客戶可能會詢問或希望看到的內容,並找出良好的響應。與您的經理一起仔細檢查所有內容,以便您清楚地知道要交付的內容以及需要謹慎的內容。剪掉效果不佳的東西-缺少功能(“ WIP”)通常比可怕的功能要好。
@Pete承認這在內部項目中很好,但是絕對不能在客戶演示中完成。但話又說回來,在大多數情況下,這些演示文稿都不應該由開發人員來運行。
@Prodnegel的問題將是真正明顯的和不可避免的,而不是說“老開發人員以這種方式離開了”,而是列出了一個“已知問題”,您已經知道並且需要解決,並且已經給出了一個解決方案。經理對您的優先級要比添加新功能低。
-1
應當指出,演示越野車的情況並不少見。史蒂夫·喬布斯(Steve Jobs)演示的iPhone能夠完成演示過程中的演示集。偏離“黃金路徑”將導致其崩潰,AT&T帶來了一個便攜式蜂窩塔以確保它們能正常工作,並且在舞台上有多個裝置可以讓他在死亡時進行切換-http://www.nytimes。com / 2013/10/06 / magazine / and-then-steve-said-let-there-be-an-iphone.html
Kilisi
2016-11-01 20:04:52 UTC
view on stackexchange narkive permalink

在這種情況下,您需要遮住背部。始終以書面形式了解問題所在,尤其是經理們的反應是忽略這些問題並添加功能。就像發送電子郵件一樣簡單。

'您好,老闆,在我們進行進一步交談時,請您澄清一下我應該優先考慮的事項。 X中有很多錯誤,或者我應該只使用新功能。另外我還必須做一些數字功夫來解決W中的錯誤,可以嗎?'

如果您的後背被遮蓋了,沒關係,經理就在其中,而不是您,您只是在完成工作。

我的老闆總是會親自見我,這就是大多數談話的地方。我會寫下他的回答,所以我沒有太多紙條告訴他“忘了那個錯誤,改為執行此操作”。我很擔心最後他們會來找我,問為什麼有那麼多錯誤,我不認為說“經理告訴我”會起作用嗎?
為什麼不?工人並不會自己離開(希望)。基本上,要根據他的團隊來管理項目是經理的責任。如果一切都落到我的頭上,我更有可能自己解僱經理。
但是,即使詳細說明未答復問題的電子郵件仍然是有力的證據。
我認為我沒有收到任何電子郵件指出這些錯誤,因為它們足夠小,不會妨礙程序的大多數。我總是會向老闆提起“我認為這不是非常穩定的代碼”,並指出無法100%正常工作的小事情
@Prodnegel進行“快速對話”是多少不道德的人試圖在雷達下做事。從現在開始到您的職業生涯,以及**每一次上一次**,都會發生這種情況,發送一封以“根據我們的談話”開頭的後續電子郵件,並詳細說明您的指示。當有人堅持“離線”與您交談時,這是掩蓋您的背面的“唯一”方法
通過電子郵件將對話摘要發送給CYA不僅是一種很好的方式,而且對於雙方都對問題有相同的理解也很重要。
我可能會避免使用諸如“數字功夫”之類的措辭,尤其是對於非技術人員。如果所實施的解決方案必須不合標準才能適應時間限制,那麼您應該清楚做出了哪些妥協,否則他們將不知道他們同意什麼,也不會期望他們應該了解*”“功夫” *表示代碼庫中存在潛在的缺陷,可能會導致將來的複雜性。
這是一個很好的答案,但是“數字功夫”聽起來比實際要迷人得多。真正的問題是,必須在垃圾上堆滿垃圾。如果基金會搖搖欲墜,有時您必須要擁有各種不必要的工程技巧,以使事情變得幾乎不穩定。
哦,哎呀,我認為“數字功夫”是一個合法的技術術語,我已經使用了十年了:-)
如果您使用票務系統,請儘早為遇到問題的所有問題創建帶有高點估算值的技術債務票證,並且需要花費一些時間來解決。吉拉(Jira)和我認為特洛洛(Trello)都有審核記錄,通過這種方式,您既可以跟踪錯誤,需要做的事情,也可以保留預訂的數字記錄
我要偷'數字功夫“。
Jeremy French
2016-11-01 22:14:06 UTC
view on stackexchange narkive permalink

這種情況並不像您想的那樣罕見。肯定會感到快要死了。這就是為什麼他們只分配了一名初級開發人員給它的原因。

在軟件為某人解決問題之前,他們願意為此付費,但該軟件毫無價值。如果它需要一些功能使其進入現階段,那麼那是投資該軟件的最佳場所。花時間修復沒人願意付錢的東西並不是對資源的良好分配。不存在。這可能會導致銷售損失,這完全是您的錯。您不知道所有這些決定的原因,因此請堅持下去。負責整個系統。

設置為失敗的可能性很小(儘管並非不可能)。企業更有可能嘗試從當前的死角中賺錢。

因此,您可以做些什麼來幫助演示順利進行。從一開始,您就已經清楚了代碼的狀態,並已從管理層獲得了優先級。如果演示不能順利進行,那不是因為您的工作做得不好。

如果您的公司具有合理的文化,那應該沒事。

如果公司有一種怪罪的文化,儘管您向管理層提出了所有建議,但您因演示或代碼狀態而受到指責,那麼下次您就可以更具防禦性。以書面形式獲得一切,對修復錯誤要更加固執。如果您對此有所呼籲,請指出您過去曾因不這樣做而感到厭煩。在這種文化中工作並不好,您需要留心(如果可以另謀高就,那就找一份工作吧)。

但是我建議給您的公司一個機會。盡您所能,並接受公司的共同努力。

“直到軟件為某人解決問題為止,他們願意為此付出代價,但該軟件毫無價值。”謝謝,需要聽到這一點,並且很有意義
這是一個非常合理的答案,+ 1。始終做到最好。讓您的公司再一次變得出色。
從頭開始重寫通常是個壞主意。http://www.joelonsoftware.com/articles/fog0000000348.html。話雖這麼說,每當一個現有的錯誤阻止您編寫新功能時,就該進行本地清理了。只是局部的,以保持焦點。
您所引用的文章@gazzz0x2z已有15年曆史,並且幾乎只涉及收縮包裝軟件。我並不是說您錯了,而是要謹慎對待概括。
@JaredSmith已經很老了,但是所有這些參數仍然完全有效。它們也不是收縮包裝所獨有的-重寫成本很高,而且消除了您的所有優勢。如果您需要從頭開始使用您的諮詢軟件,那麼在哪裡可以領先競爭對手?
@JaredSmith:我說“通常”,因為可能總是有反例。在內部軟件中,我看到很多重寫都以失敗而告終(這相當於對垃圾箱的價值1億歐元的努力)。我不是說“從不重寫”,而是說“小心翼翼地進行重寫”。
@Luaan我們是在OP問題的背景下談論軟件,“顯然沒有人在使用任何東西”。沒有設計文檔,沒有規格,沒有表明所需功能的測試套件。它的越野車對於初級開發人員來說是顯而易見的。試圖挽救它可能僅僅是沉沒成本的謬論。Spolsky在談論重寫很多人使用的工作軟件。對於他在這種情況下使用的論點,您絕對是正確的。
@JaredSmith當然,這使事情之間的平衡有所不同。但是您仍然不知道原始作者已經解決了多少極端情況和細微問題,可能是在與客戶溝通時。沒有規範的事實給嘗試重寫它並使它保持生命都帶來了負擔。完全重寫可能會比嘗試解決此問題要便宜得多-也可能是,如果有選擇,經理將只是停止該項目。但是最終,這是一個管理決策-這是一個很好的選擇,Prodnegel對更大的前景一無所知。
@Luaan非常正確。如果確實是沉沒的附件,那麼您的猜測幾乎可以肯定是正確的,即轉儲項目對企業而言是最好的。
smci
2016-11-02 04:16:26 UTC
view on stackexchange narkive permalink

這種代碼庫經常出奇地存在,而且我們許多人都在類似的代碼上工作。 (已經指出,代碼庫反映了產生代碼庫的組織結構,或者確實反映了組織的編年史)。這是我學到的一種實用的方法:

  • 管理人員不知道代碼庫(實際上既是優點也是缺點),完全不關心錯誤,並且僅受激勵添加新功能。因此,出售您正在開發後者而不是前者的產品絕對容易。因此,他們很容易在內部將其出售給客戶。
  • 因此,當項目開始時,超級快速地對最嚴重的錯誤進行分類,或者添加失敗的測試用例,或者至少記錄下該錯誤。錯誤跟踪系統中的場景。在時間允許的情況下,或者相對於所開發功能的bug的明顯存在或嚴重性,斷斷續續地重新進行檢查。對應該固定的東西進行分類非常困難,但是時間不允許。但是,以一些未知的白天時間和預算可能會神奇到達的態度來編寫錯誤報告並擴大範圍。
  • 然後,當您增加範圍的功能時,所有相關的重構和錯誤修復都會成為該功能的依賴,包括在工作中,時間估算,測試方案。您將如何定義和報告工作情況。只有您知道如何克服它們。只要執行摘要中說“實施功能X”,他們就不會在意。
  • 通過在幾週前進行內部演練來演示演示,以向他們展示“我們為X實現了代碼,但是具有必須修復的錯誤A,B,C”。實際上,安排時間表向您的管理層進行內部演示,無論客戶是否要求。逐漸使他們習慣於將x%的時間用於估算中的錯誤修復和測試,或者相反,在期望工作代碼之前進行第一個演示週。
  • “在他們的世界中工作,而不是你的世界”
好的答案,我喜歡最後一點。OP在評論中說,它們只是“小齒輪”。但這只有在您除了編碼之外不試圖更多地影響項目的情況下才是正確的。與您的管理層合作,為他們提供想法和新的解決方案,以解決來自POV的挑戰。他們會做出決定,但是您在提供解決方案方面會產生影響。首先,如答案所示,要求他們進行彩排。嘗試協商時間,至少在客戶演示之前一周。然後嘗試使其成為所有演示的通用做法,然後您可以遵循@TheWanderingDevManager的建議...
並嘗試使與客戶的演示更加頻繁。等等。您會聽到許多不實施解決方案的原因-很好。優秀的管理人員會提供有關可用資源的更多信息,有時甚至無法在項目工作流中使用出色的解決方案。但是不要停下來!一些解決方案將是適當的並且將被實施。這就是沒有經理職位的專業人士如何影響項目和公司的方式。這就是您可以停止成為小齒輪並成為專業人士的方式。
@CodingFeles是的,這取決於無能者在mgmt鏈上的地位。最終,由OP決定這一切的局限性,他們可以實現多少文化變化以及在想離開更好的地方之前想嘗試多長時間。可能不是很大。
這是一個絕妙的答案!您實際上不只是希望OP不被指責,還描述瞭如何確保它不會發生。
@JørgenFogh:地獄!糟糕的管理鏈總是會怪你。我只提供了一些有關如何防止或最小化它的提示。沒有什麼可以阻止他們加載更多的功能請求,跳過演示,拒絕承認嚴重的錯誤等。我只是在建議如何利用他們的無能為力,以期開拓出一小段時間來解決急需解決的問題。
-1
當內部管理的實踐演示遇到一個或多個錯誤時,這些錯誤可能突然成為首要任務。
在添加新功能時,與創建大型變通方法相比,可能需要花費更少的時間來修復錯誤。考慮添加新功能的這一部分,並且該錯誤也得到修復是有益的。
The Wandering Dev Manager
2016-11-02 00:29:54 UTC
view on stackexchange narkive permalink

分配了一個沒有註釋,沒有文檔,沒有培訓或指導者的混亂項目。我是唯一從事此項目的人,沒人知道或根本沒有看過代碼。

第1步:您碰到的所有東西都要首先編寫單元測試,以驗證它已經做了它應該做的事情(或表明它沒有做),並且表明您並沒有使它變得更糟。您將此因素考慮在內。這也構成了代碼的文檔,使人們可以從測試中理解它。

現在已經過去了幾個月了,現在是時候顯示程序了

Step 2:確保您定期與客戶進行演示/預覽,以設定期望並確保您做正確的事/優先事項。

由於時間的限制,重構從來都不是一種選擇約束和經理的意願

第3步:在進行此類討論時,請將其記錄在電子郵件中以進行確認。這樣,您就可以確保臟棍在開始髮指責時指向正確的方向。

因為我不得不做一些奇怪的事情來繞過錯誤

從不隱藏錯誤,提出錯誤,將它們添加到錯誤跟踪器並做出判斷呼籲對其進行修復(見上文)

當我被告知要開發更多功能而不是進行錯誤修復時,如何避免因為繼承的已經存在錯誤的項目而受到懲罰? p>

請在進行項目時進行盡職調查,而不是在每個人都將發現項目已經南移時進行。

“ *永遠不要隱藏錯誤,將它們提出來,將它們添加到錯誤跟踪器中,並獲得有關修復它的判斷電話(見上文)。*”這是黃金。如果您報告了一個錯誤並且沒有針對其進行修復(或針對其不進行修復),那麼仍然會有一個錯誤。(如果您對使用錯誤跟踪程序有所抵觸,請指出,沒有其他方法可以跟踪錯誤。您不想忘記它們。)應該有很多來回電子郵件,說明如何優先考慮錯誤修復功能。
我認為其中一些建議對新開發者或我的情況並不太適用。#1)當我問經理關於測試/錯誤修復的問題時,他告訴我不要,但是您的第一個答案是編寫單元測試。我同意這是應該做的,但是我認為違反我經理的意願是不允許的。#2)我無法確保客戶得到定期演示,我是系統中的一小塊齒輪,在這種情況下,功耗為零。我不認為任何放學後的新開發人員都不能計劃演示
#5)它從一開始就已經向南走了!我告訴我的經理,我想從重構/錯誤修復開始,但他告訴我不要。不知道在我的情況下我還能做些什麼。
通常,這是一個很好的建議,但是*“您碰到的任何東西都首先要為它編寫單元測試” *:堅持使用完整的TDD通常不會與不良的mgmt一起使用或獲得其支持。您必須對最壞的情況進行分類,並優先處理這些情況-請參閱我的答案以獲取更完整的信息。令人沮喪。
@Prodnegel“我告訴我的經理,我想從重構/錯誤修復開始,但他告訴我不要。”-如果您剛從大學畢業,並且您的經理相當稱職,那是正確的指示。否則,經過5年的工作,您將擁有一個結構精美的代碼庫,尚不能滿足用戶的任何新要求-當您開始實施它們時,您可能必須重新構建所有內容!現實世界中的軟件開發不像做大學項目!
@Prodnegel“我不認為任何放學的新開發人員都不能計劃演示”-所有好的軟件演示的共同特徵是“您只演示有用的東西”。現實世界中的每個人都知道軟件存在錯誤,但是他們不想浪費時間向他們展示根本不關心的錯誤。
@smci-誰說過tdd?您編寫測試,以證明更改後它仍然有效。
計劃不允許@TheWanderingDevManager經常編寫完整的單元測試,無論是在編碼之前,之中還是之後。(實際上,根據開發人員的技能以及功能是通過集成測試還是半手動測試來行使,通常進行完整的單元測試是過大的。)這取決於很多事情。)
@Prodnegel我會和您的經理說同樣的話。您來到一個新項目,不知道它有多可怕,您想開始“重寫”它嗎?搞亂了這類工作,卻不了解它們的工作方式和原因?您所做的更改很有可能*降低*產品的質量,變成一系列的“哦,我不希望這部分代碼依賴於此...”浪費工作,對客戶沒有價值,並且您看起來像一個無能的人,都知道一個學位。報告錯誤。但是修復它們是經理的決定,而不是您的決定。
@smci-“通常不按計劃編寫完整的單元測試,無論是在編碼之前,之中還是之後,都是按計劃進行的”,但通常花費5倍的時間進行返工/錯誤修復。我在一個共享的代碼庫中運行團隊,一次可能有150-200個開發人員在其中工作,總是有測試的時間,您可以將其合併到任何估計中。擁有自己的時間(而不是撲救)是值得的,我不會僱用任何願意為此做出讓步的開發者。
這些事情都是@TheWanderingDevManager:的一個判斷電話。150個開發人員與1-2個開發人員團隊完全不同。
@smci-不,不是(我在一家5號員工的公司中也這樣做過)。如果我給你一些代碼,我說X,並且我只想添加功能Y,那麼如何驗證a)實際上是我所說的,以及b)你沒有通過添加Y來破壞它?您需要測試才能做到這一點(仍然不談論TDD)。無論如何,您都將編寫測試作為編碼的一部分(就像賈斯汀·特魯多(Justin Trudeau)所說的“因為是2016年”而沒有聯繫),因此花額外的幾個小時來通過編寫一些測試來驗證您的理解是它的工作原理。如果您不這樣做,我可以推荐一些好書。
JMK
2016-11-02 16:22:45 UTC
view on stackexchange narkive permalink

每個開發人員都認為他們繼承的每個項目都是一個爛攤子,這是很自然的反應,而且我理解想要重構所有內容的本能,就像您想像的那樣。 p>

但是,如果代碼已經在起作用並且可以滿足其目的,並且企業需要添加新功能,那麼您應該專注於添加新功能。

這並不意味著您不能隨便重構。

添加新功能時,您可能會使用已經存在的代碼,這樣做時,請整理並添加測試,並確保

Brownfield開發(即使用和改進現有的 crappy 代碼庫)本身就是一項技能,您不能僅僅重寫您遇到的該類別中的每個代碼庫。

如果您真正地努力與and合作,而不僅僅是找到新工作,那麼您作為開發人員的價值就更高了。改善您的代碼庫

_“工作並達到目的” _-聽起來很像這個問題項目沒有這樣做。
Mark Miller
2016-11-02 21:03:30 UTC
view on stackexchange narkive permalink

冒著浮躁的風險,世界對程序員來說是飢餓的。有些組織可能會破產,那麼,尋找新工作

其他張貼者正確地指出,繼承的混亂是很普遍的,甚至是不可避免的。對於大型,長期運行的項目。公司有責任將精力用於修復或改進它,而不是您(除非您擁有股權)。如果是時候進行重寫了,那麼就由他們來決定(您只能建議)。

在這種情況下請當心。

我已經進行了30多年的編程,一段時間之後,您真的注意到周圍的基礎架構對您做好工作至關重要。 您有權嘗試做得很好。

如果操作不好,請盡可能在工作時開始尋找。請注意您如何向準新雇主表述,抱怨上一份工作的糟糕程度為您贏得很少的布朗尼積分。

mcottle
2016-11-02 14:07:34 UTC
view on stackexchange narkive permalink

恐怕您為時已晚,無法對即將發生的問題真正做好很多事情。您不能責怪您的前任,因為他已經走了-您可以在第一個月左右擁有(通過電子郵件發送),但現在不可以。

如果將來發生這種情況您要做的是:-

  • 快速評估您繼承的內容。
  • 通過電子郵件通知您的經理,並建議採取適當的補救措施,而不是針對一些錯誤進行修復在繼續之前的幾週內。
  • 將所有拒絕/堅持使用新功能的內容拒之門外(打印出來並保存在工作中和在家中的文件中,以備後用。)
  • 輕推任何對新功能的請求,說您受到驚嚇可能會破壞脆弱的代碼庫。像上面那樣,向經理提出最終決定。
  • 為添加的所有內容編寫單元測試。
  • 將為新功能給出的每個估算值填充除了之外,還添加了單元測試(有人怎麼會與您的估計相抵觸,他們不知道代碼?)。
    然後,使用您的“額外”時間:
  • 添加
  • 修復損壞的測試。
  • 重構舊代碼。

您的Bug。每個新功能都會改善這種情況。

Paul Becotte
2016-11-03 04:03:50 UTC
view on stackexchange narkive permalink

您所處的專業背景是0,並且被要求對一個錯誤的代碼庫進行工作,並告知您無法修復錯誤或重構。

但是-1.您不知道代碼庫是好/壞/典型。您沒有現有技術可以將其與2。沒有人在審查您所做的工作,這意味著即使您在進行重構,也無法知道您是否正在使代碼基礎變得更好……您再也沒有經驗。3。沒有人關注代碼庫,因此您實際上可以根據需要執行盡可能多的錯誤修復和重構,因為您的經理無法分辨出差異。

我知道每個人都有不同的情況,但是找到一個擁有一對知道自己在做什麼並且健康的代碼審查過程的環境,對您的職業而言,比在這家公司工作10年所賺的錢更有價值。所以-我不會擔心即將到來的演示(不會因為您的過錯而失敗,而是您的經理完全在這裡過錯)...我將專注於讓自己處於更好的狀況,這是否意味著

(另一些經驗豐富的人可能會適應這些情況,如其他答案所述。但是,剛從大學畢業您的頭等大事必須是學習做您的工作,而現在您還沒有做。)

Richter65
2016-11-08 04:32:17 UTC
view on stackexchange narkive permalink

很多人都同意我的觀點,但是我認為還有一點需要提及:這對您來說是一個巨大的機會。

考慮一下。您是剛從大學畢業的初級程序員,並且完全沒有經驗,是唯一被分配從事軟件應用程序工作的人員。這告訴我,該軟件的管理優先級很低。他們已經有效地註銷了;在他們看來,該軟件已經失敗了(從您所說的來看,不難看出他們為什麼得出了這一結論)。

這意味著您不會失敗;您只能成功。

我的建議是信任您的管理層,添加功能並按照Pete在其答案中列出的方式進行演示。如果您的管理層很聰明,他們會嘗試通過應用程序提供的功能來銷售客戶端,這與銷售應用程序本身是不一樣的。我猜想,如果客戶叮咬,他們會商定一個價格,其中包括修復(甚至重寫)代碼的錯誤部分。碰巧的是,您將在那部分工作中處於領先地位。如果不是這樣,那麼您的管理人員就不會損失什麼,除了一個非常初級的(即便宜的)程序員要花幾個月的時間。

這種思維方式有兩個含義。主要的問題是,除了已經在做的事情之外,您還應該開始考慮修復代碼需要花費的時間和精力。開始考慮計劃和時間表,以便為管理人員提供一些選擇。如果他們沒有買家,他們將不會有興趣。但是,如果有潛在的買家,那麼當他們開始就價格進行談判時,這類信息對他們來說至關重要。

colmde
2016-11-04 14:45:54 UTC
view on stackexchange narkive permalink

希望您不僅告訴了他,還以書面形式告訴他有關混亂的情況。這樣,他便從一開始就了解情況,不會對您負責。

根據我的經驗,在這種情況下,經理常常像開發人員一樣樂於責怪開發人員。離開公司!

這可能對您跟踪發現的每個錯誤並將其保存在經理可以輕鬆看到的地方很有幫助(請注意,不要以被動攻擊的方式-告訴他您的意思)在做)。即使您的公司沒有錯誤跟踪軟件,即使它位於共享的“已知問題”電子表格中也是如此。如果政治和後勤許可,則可能鼓勵用戶執行相同的操作(在同一文檔中)。您甚至可以讓您的經理來評估嚴重性並為每個嚴重性分配一個優先級(關於要求您添加的新功能)

我猜您沒有擁有一個功能完善的質量檢查部門,或者沒有那麼遠的地方,但是如果您這樣做,他們在這裡的投入將非常有益。

這不僅表明您正在積極地清理混亂,而且如果出現問題,他可能會怪你,也可以掩蓋自己。

likejudo
2016-11-02 21:45:50 UTC
view on stackexchange narkive permalink

讓老闆支持你。確保您的老闆確信存在嚴重問題,以便他可以從高級管理層那裡獲得時間和同意。然後,請公司中最好的架構師來幫助您重新設計,重構或重寫項目。與您的經理和架構師一起創建明顯更好的程序。在過去的六個月中,這發生在我身上。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...