2009-02-04 49 views
4

我有一個可怕的習慣,實際上我正在與這個時刻搏鬥,當我想到一個更好的方式去做某件事 - 無論是重構還是其他更酷的視覺效果,或者是更好的UX ,我只需要這樣做。即使這會花費我的時間,我也處於時間緊縮之中。我永遠不知道該什麼時候說,「不,沒有時間做這件事,我以後可以做。」你如何確定以正確的方式做事會阻礙你?

是否有你畫的線?

就像現在我需要一種方式來顯示數據庫中的雜誌文章。簡單的方法是創建一個新的.aspx頁面,並傳遞文章ID。真棒的方式將是一個jQuery的淡入淡出模式,將顯示文章。至少這是我的想法。如果不是古茹,那需要我花更長時間才能寫出來。下週我們將推出沒有時間的額外廢話。但是,我不能讓自己輕易地做到這一點。

是否有其他人遇到這個問題?想知道更有經驗的程序員是否有一些智慧可以分享。

回答

7

你在說「鍍金」。這對於軟件開發人員來說是一個非常普遍和衆所周知的問題。

從StackOverflow上自己的glorious founder

30:開發鍍金。開發者通過新 技術所吸引,有時急 嘗試自己 語言或環境的新功能或創建 自己的實現他們在另一個 產品看到一個漂亮的 功能 - 無論它是不是需要 在他們的產品。需要 努力設計,實施,測試,文檔, 和支持功能不是 需要延長時間表。

解決此問題的正確方法是自願承擔如此多的工作以至於沒有時間做正確的事情,更不用說添加額外的花裏胡哨了。 :)

編輯:其他「經典錯誤」鏈接here

+0

+我幾乎每個真正的開發者都知道這個問題。即使是那些爲了謀生而生,但也不在乎這種理想的人。很好的報價,我注意到30:有更多這些嗎?如果(真){後鏈接; } – 2009-02-04 19:30:36

+0

是的,鏈接加了... – mwigdahl 2009-02-04 19:32:16

1

我認爲這只是一個設定優先級的問題。另外,如果你的客戶或老闆不希望你以華而不實的方式做事,而且你沒有時間去做那種華麗的方式,那就用簡單的方法做,然後回來升級成華而不實的你有時間以後。在完成他們給予你的工作之前,客戶和老闆通常會更高興,然後再改進工作。

9

我會先走快速路線。

編寫一個ASPX頁面,顯示基於ID的文章,甚至更酷和更友好的搜索引擎優化,一個slu。。你將能夠達到你的最後期限。然後,我會以令人敬畏的jQuery方式開始。

這樣做的好處是,如果用戶禁用了JavaScript,您將有一個後備選項。

0

聽起來像典型的特徵蠕變。相信現在制定一個功能構想以符合截止日期與完全放棄該功能完全不同。你可以在發佈後的幾個月回來,並添加新的功能。

1

我看着我離開了多少時間,如果我覺得自己受到壓力,我不會冒險超出我的專業領域。我完全正確和優雅地做到這一點,但現實情況是,大多數時間是截止日期優先,而且我知道如果我按下時保持在我的舒適區內,我很可能會減少錯誤,這意味着我可以節省質量保證人們有時間測試東西。

說了這麼一句話,我不止一次知道,我可以推動可以做多少的極限。如果你已經沒有加班,那麼你總是可以額外花費更多的時間去完成更難的路線。是的,這樣做可以爲額外的人帶來更多的工作,但有時候這就是擁有最好的應用程序或擁有第一個失敗者的區別。

我的其他建議是不要嘗試做兩種選擇。如果你創建一個基本的版本棒,並繼續前進。如果你嘗試兩種方法,最後你真的浪費時間。

0

我認爲你已經在那裏回答了你自己的問題。你說加入這個功能會花費太多時間,而且你正處於時間緊迫狀態,並將在下週推出。我認爲這很明顯,你需要走「簡單」的路線。

你基本上描述了特徵蠕變。 http://en.wikipedia.org/wiki/Featuritis

你需要自我約束,我會在你的位置上做什麼是記錄我想添加的新功能,並在你有時間處理它時,在退出關閉模式後執行它。您顯然意識到,添加此功能會耗費您的時間,並且可能會很好地阻止此產品的推出,您只需要具有優先級並堅持使用它的規則。

0

我認爲每個開發者都有這個問題,如果他對編程感興趣,而不是編碼只是爲了在9到5個辦公室工作中賺錢。

這裏是我的建議: 列出你在編寫代碼時所想到的每一件很酷的事情。在您有工作基本版本後,將其提交到源存儲庫。

現在,如果你有時間離開,回去做很多很酷的事情,你有時間。如果您要認真重做代碼,請使用分支標籤。

一旦你用完了時間,如果你在做敏捷,把剩下的東西寫成故事,並把它們交給你的項目經理或客戶。

0

我認爲當你說你正在做的事情意味着品質的你可以把它寫在速度的平衡「正確的方式」。

如果你想讓它高品質越好,但從來沒有釋放它不是「正確的方式」。另一方面,如果你寫垃圾但速度超快,那也不是「正確的方式」。要做到「正確的方式」,你必須平衡這兩者。

一個想到的經濟短語是「質量,價格或生產速度,選擇兩個」。

1

正確的方法是使其運行,以便用戶可以獲取他們所尋找的信息。設計師的方式是讓它有一種工作,但也有JavaScript的東西了,四處走動。

最好的方法是讓它正常工作,然後修改它。如果你知道在哪裏放置東西,那麼不應該涉及太多的重構。顯然,檢索文章將是商業/應用程序邏輯,實際的花哨設計(如淡入淡出/動畫)將成爲設置的設計/視圖方面的一部分。這些部分應該能夠坐下來,對其他人正在做的事情有點無知 - 他們不應該緊密結合。

0

這樣的事情絕對會殺死我!

我的建議是:

  • 做它最簡單的方式(與 ID參數ASPX)
  • 寫的 概念的小證據證明客戶

秀客戶端的工作頁面和概念驗證以及估計需要多長時間。設計原型的經驗將使您更好地瞭解涉及到的內容,如何去做,以及需要多長時間。概念驗證還可以告知維護開發人員什麼是什麼(淡化vs邏輯),並且如果衰落機制或邏輯被破壞,則允許他們分離。

就我個人而言,我會遠離褪色的事情。根據我的經驗,客戶端在淡入淡出功能中看不到任何附加價值,恕我直言,將它分離到另一個頁面將更容易維護。我相信稍後會更容易出現錯誤,因爲這兩頁的代碼不會混雜在一個頁面上(如果我正確地理解了你的話)。

0

test driven development的方法,當你寫它的測試,並實現它的最簡單的方式實現一個功能,你就可以回去做「正確」的,只有當你發現真正需要這樣做。知道這可以讓你避免過度設計。通常,你會發現你畢竟不需要。