一千萬個為什麽

搜索

幫幫我!公司沒有開發基礎設施!我的任務是實施它!



Background: I've recently started at a company and I've bee tasked to essentially modernize the development team/dept. Currently the problems are:

  • 開發人員目前正在現場開發。
  • 網站已備份,但沒有源代碼管理。
  • 沒有暫存過程(dev,QA,UAT,live)。
  • 沒有自動構建過程。
  • 沒有SDLC。
  • 最小(如果有)文檔。
  • 網站使用不同的技術。
  • 由於巨大的發展延遲,時間表是瘋狂的。
  • 開發團隊不了解可以幫助調試/開發的常用工具。

The plan My thoughts so far are (in no specific order):

  • 讓所有項目都使用相同的技術。

  • 將所有活動項目拋出到源代碼管理中。

  • 實施分段,以便我們擁有Dev,QA,UAT和Live。

  • 實施CI/CD

  • 為開發團隊介紹工具和設置培訓。

  • 實施編碼標準。

  • 介紹一種更適合團隊當前運營方式的方法,最有可能是敏捷或Scrum以及隨之而來的工具和文檔模板。

問題

  • 您之前是否曾參與過這種情況?你是如何解決和克服這些障礙的?實施需要多長時間? (作為一個粗略的想法)

  • 您如何確定上述任務的優先順序?

  • 我建議您研究/研究什麽? (我對CI/CD以及如何協商這麽大的任務特別感興趣)

我覺得我需要一種馬斯洛的需求層次來更多地了解在哪裏/如何開始以及要建立什麽。

Closing notes Any resources, links, just a pooling of materials, etc. would be greatly appreciated.

對不起 - 我知道這可能被認為是一個含糊不清的問題,會給出一個自以為是的回答,但這會給我帶來最大的好處,因為如果我確切地知道正確的問題,我就不需要幫助,因為我可以使用搜索引擎。

轉載註明原文: 幫幫我!公司沒有開發基礎設施!我的任務是實施它!

一共有 2 個回答:

你之前曾經遇到過這種情況嗎?

是。在我的經驗中非常標準的場景。

你是如何解決和克服這些障礙的?

在很小的步驟。

實施需要多長時間? (作為一個粗略的想法)

很長;在一個相當大的極端情況下:超過10年,仍然在進行中。

您如何確定上述任務的優先順序?

我的優先事項,還有其他意見:

  • Throw all active projects into source control.
    • This should really be a no-brainer and low-hanging fruit.
  • Implement coding standards.
    • Sensibly.
  • Introduce a methodology more suited to how the team currently operates, most likely Agile or Scrum and the tools and documentation templates that go with it.
    • If there is no methodology at all right now, then I'd start with a very lenient Kanban first - which basically just means throw up a ticket system and keep track of everything relentlessly. I would hold off with full-fledged Scrum until everything is on track and you're established as a Good Guy.
  • Implement staging so that we have Dev, QA, UAT and Live.
    • With this goes more separation; i.e. devs need to be weaned off of the production systems.
  • Introduce tooling and setup training for development team.
    • Try to have the teams develop their own tools if at all possible.
  • Implement CI/CD
  • Bring all projects up to using the same technologies.
    • Might just not be feasible, if by technologies you mean languages and libraries. If you mean Docker or OpenShift or whatever, then sure.

根據我的經驗,最重要的提示是:不惜一切代價避免自己做所有事情。給團隊“沖動”,但他們必須自己做(無論“是”)。如果您完成所有工作(無論是個人工作,還是與您的獨立“DevOps團隊”),那麽在一天結束時,您將不會獲得那麽多,因為每個人都會不斷依賴您。

我會優先考慮這樣的事情:

  1. 將所有項目置於版本控制

  2. 自動化構建並立即/同時為這些構建啟用CI - 這對於防止尚未使用版本控制的團隊陷入分支噩夢陷阱非常重要 - 他們將開始欣賞CI快速反饋,即使只是為了構建部分,他們也會開始對所有即將發生的變化充滿信心,這對他們來說可能非常可怕

  3. 創建至少一個臨時環境,自動部署它,開始構建/發展自動化測試並將它們全部連接到CI系統 - 現在他們將獲得快速反饋,包括測試

我認為,在考慮其他工具/技術變更,構建CI/CD管道的其余部分,進行重新工作,將敏捷帶入其中之前,仍然能夠保持當前項目而不消耗其中的所有資源是絕對必要的。圖片等