有時候我看過一些代碼或項目的一部分,我可以改進但與當前的團隊項目無關。如何在每個人都很忙的時候盡力而爲?
那些時候我有衝突,因爲儘管想要幫助,許多團隊缺乏足夠的人,做額外的工作似乎是背叛。很顯然,如果你將精力集中在他們的工作上,任何管理者都會更加欣賞
在這些情況下你會做什麼?
有時候我看過一些代碼或項目的一部分,我可以改進但與當前的團隊項目無關。如何在每個人都很忙的時候盡力而爲?
那些時候我有衝突,因爲儘管想要幫助,許多團隊缺乏足夠的人,做額外的工作似乎是背叛。很顯然,如果你將精力集中在他們的工作上,任何管理者都會更加欣賞
在這些情況下你會做什麼?
我覺得你的話的關鍵部分是這樣的:
which I could improve but is not related with my current team project
這聽起來很刺耳,但根據經驗,應該以開放的心態來讀 - 保持了它。你在學習過程中獲得更多開發體驗時學到的一件事就是你保持在範圍之內,不要爲了解決未安排的事情而潛水。以下是幾個原因:
當某人計劃項目時,他們正在處理一組已知問題。如果你隨機決定「修復」你正在改變已知設置的東西,那就像是當你使用地圖進行導航並且有人正在改變你的地圖時
你可能認爲你的修復對產品有好處,但它會引入額外的複雜性,比如誰將測試您的修復程序?
不管你有多好,覺得你是,你跑引入其他錯誤或意想不到的副作用到應用程序的風險
你怎麼傳達你的變化誰可能是工作的其他團隊成員那個地區?
你怎麼知道你的改變的範圍,你怎麼知道你沒有突然改變其他地方的一段代碼的上下文?
你有良好的意願,但如果你開始做這樣的事情,你可能會被看作是一個牛仔,和其他人將不喜歡你很快。
這是一個你必須學習的技巧 - 知道什麼時候不要碰東西。你會看到醜陋的代碼 - 不要碰!不要簡單地因爲你認爲可以做得更好而重新編碼。
我希望這會有所幫助:)
我以前在一家小公司工作過,如果我看到一些我知道會影響到我或者其他人的事情,我通常會在不久的將來在沒有時間的情況下修復它,打破任何事情
你知道我談論的問題的種類。如果我現在不花費10分鐘來解決問題,那麼以後會花費我30分鐘(一遍又一遍)。
否則,它會與其他事情一起進行白板(總是滿的),最終有人得到它。
我有這樣的情況下,兩個指導原則:
我在這裏做我的老闆想要的東西。如果它掃地,我可以做它或找到另一份工作,但只要我在這裏,那就是我要做的。
如果老闆做出了不好的決定,我知道的更好,並告訴他,他決定,無論如何,這是老闆的特權。如果我不告訴他,那是我的錯。
除非有壓倒一切的情況下,這決定了在代碼是我的任務外的情況下,我告訴我的老闆,該代碼可以變得更好,並給他一個想法是什麼,這意味着他在現實世界中的術語,並詢問他是否要我做或不做。
是的,當我不這樣做時,它確實回來咬我,但他支付我做X,如果我正在修補Y,那麼我沒有做我付給我的東西做。當它回來咬我(我們)時,他只需要付錢給我解決它!
當你在別人的房子裏時,你可以清理它,或者你在他們的混亂中四處走動。這兩種選擇都會造成麻煩。選擇哪一個完全取決於你和你的情況。
但「最終有人得到它」是關鍵部分。通常,白板/任務列表是Projects Go To Die的地方。但是如果是這樣的話,那麼公司就會遇到比一個特定的bug更大的問題。 – 2010-05-19 21:54:33