คำถามติดแท็ก distributed-development

5
ออกแบบในหนึ่งทีมเข้ารหัสในอีกอันหนึ่ง
ฉันจะมีส่วนร่วมในโครงการที่การออกแบบซอฟต์แวร์ทั้งหมดทำโดยทีมงานในพื้นที่และการออกแบบเหล่านี้จะถูกส่งไปยังทีมต่างประเทศเพื่อเข้ารหัส นี่เป็นครั้งแรกที่ฉันเผชิญโปรเจ็กต์ที่มีคุณลักษณะนี้และสำหรับฉันมันรู้สึกแปลก ๆ : ผู้จัดการคาดหวังให้เราทำเอกสารการออกแบบที่ละเอียดมากดังนั้นจึงไม่มีที่ว่างสำหรับข้อผิดพลาดสำหรับทีมนอกชายฝั่ง จากมุมมองของฉันพวกเขากำลังทำให้เราเข้ารหัสในกระดาษในขณะที่เราสามารถทำได้ใน IDE ดังนั้นคำถามของฉันคือวิธีนี้ดีหรือพิสูจน์แล้วใช่ไหม อะไรคือสิ่งที่ต้องพิจารณาหลัก ๆ ที่กระบวนการซอฟต์แวร์ของเราต้องประสบความสำเร็จในโครงการของเรา?

6
วิธีที่ดีที่สุดในการอนุญาตให้ลูกค้ามีส่วนร่วมในโครงการคืออะไร?
เราได้สร้าง CRM สำหรับลูกค้า ตอนนี้ขั้นตอนแรกที่สำคัญได้รับการเสร็จแล้วและคนที่สองตามที่ตกลงกันลูกค้าต้องการที่จะรับบางส่วนของงานที่ทำให้การแก้ไขเล็กน้อยคีมาฐานข้อมูลและกระบวนการทางธุรกิจในระยะแรกขณะที่เราสร้างสอง ฉันยังไม่แน่ใจว่ามันใช้งานได้จริงหรือเปล่า แต่ถ้าเป็นเช่นนั้นฉันอยากจะชี้ให้เห็นว่าจะใช้มาตรการใดเพื่อทำให้สิ่งนี้ใช้งานได้ นี่คือสิ่งที่ฉันได้รับ: จนถึงขณะนี้ลูกค้าได้เห็นโครงการเป็นส่วนใหญ่จากมุมมองของผู้ใช้ เห็นได้ชัดว่าการสัมมนาสองส่วนควรจะเกิดขึ้นที่เราแนะนำให้เขารู้จักกับการทำงานภายใน: ก่อนแสดง schema ฐานข้อมูลที่มีอยู่และโดยวิธีการขยายมัน จากนั้นให้แสดงโค้ดตัวอย่างและเขียนกระบวนการทางธุรกิจใหม่สำหรับการปรับปรุงสคีมา รหัสปัจจุบันอยู่ในที่เก็บในการโค่นล้มภายใน ในขณะที่เราสามารถตั้งค่าสาธารณะหนึ่งหรือหนึ่งในเครือข่ายของเขา (ซึ่งเราสามารถ VPN เพื่อ) ฉันรู้สึกว่าระบบกระจายจะทำงานได้ดีขึ้น ฉันดูเหมือนจะเป็นคนเดียวที่รู้สึกอย่างนั้นดังนั้นฉันจึงสามารถใช้ข้อโต้แย้งที่น่าเชื่อถือบางอย่าง ฉันไม่แน่ใจว่าจะมอบอำนาจหรือให้รหัสที่ใช้ในการผลิตนั้นถูกต้องหรือไม่ ดูเหมือนว่า "x ทำการเปลี่ยนแปลงที่สำคัญและไม่มีเอกสารก่อนที่จะไปพักผ่อนตอนนี้ y กำลังพยายามหาจุดบกพร่องที่เกิดขึ้นนับตั้งแต่" ภัยพิบัติเป็นสิ่งที่หลีกเลี่ยงไม่ได้ ถ้าเป็นการดีการเปลี่ยนแปลงทั้งหมดก่อนการปรับใช้จะ: จัดทำเป็นเอกสารในระบบติดตามปัญหา เกิดขึ้นในสภาพแวดล้อมการทดสอบที่แยกต่างหากก่อนและ ต้องผ่านการทดสอบอัตโนมัติ อนิจจาฉันสงสัยระเบียบวินัยสำหรับผู้ใดจะชนะ สมมติว่าสถาปัตยกรรมปลั๊กอินหรือโปรเจ็กต์แยกต่างหากไม่ใช่ตัวเลือกที่ทำงานได้เพราะ 1) ไม่มีอยู่และ 2) อันหลังจะห้ามไม่ให้ลูกค้าดูและอาจแก้ไขโค้ดที่มีอยู่ความสามารถที่ฉันเชื่อว่าเขาจะ ยืนยัน.

4
การต่อสู้เพื่อแยกทีมระหว่างสองภาษาที่พูด
ฉันมีทีมที่ไม่มีภาษากลางเดียวในหมู่สมาชิกในทีมทั้งหมด ทีมถูกแบ่งออกเป็นสองที่ (แม้ว่าภูมิศาสตร์ไม่ใช่ปัญหาหลัก) สมาชิกทีมทั้งหมดในแต่ละสถานที่พูดภาษาเดียวกันและมีสมาชิกในสถานที่ทั้งสองที่สามารถพูดได้ทั้งสอง ฉันต้องการที่จะแนะนำการต่อสู้ แต่กำลังดิ้นรนกับการขนส่งของการจัดการกับปัญหาภาษา นี่ไม่ใช่ทีมนอกชายฝั่ง สมาชิกในทีมทุกคนเป็นพนักงานของ บริษัท แต่ตั้งอยู่ในสำนักงานสองแห่งในต่างประเทศ โชคดีที่เราไม่มีปัญหากับเขตเวลา ภาษาเป็นอุปสรรคหลัก ในขณะที่ทีมสามารถแบ่งออกเป็นสองทีมเนื่องจากขนาดและชุดทักษะของผู้คนในแต่ละสถานที่รวมถึงปัจจัยภายนอกอื่น ๆ เป็นที่พึงปรารถนาที่จะรวมเป็นทีมเดียว ฉันคิดว่ามันจะดีกว่าถ้าใช้การประชุมทางวิดีโอเพื่อให้มีการสื่อสารที่สมบูรณ์ยิ่งขึ้นและช่วยให้ทีมรวมตัวกันเพื่อให้สามารถมองเห็นซึ่งกันและกันและใช้วิธีการสแตนด์อะโลนที่แท้จริง อย่างไรก็ตามฉันกลัวว่านี่จะเป็นการยากที่จะสื่อสารระหว่างภาษา สมาชิกสองภาษาของทีมควรแปลด้วยวาจาหรือไม่ อีกวิธีหนึ่งเราสามารถใช้ข้อความโต้ตอบแบบทันทีตามที่แนะนำโดยการอ้างอิงเดียวที่ฉันสามารถพบกับปัญหาภาษาในการต่อสู้แบบกระจาย ฉันกังวลเกี่ยวกับการสื่อสาร "ยากจน" และบางทีอาจเป็นการแนะนำที่ไม่ดีเกี่ยวกับแนวคิดการต่อสู้ จากคนที่มีประสบการณ์ในการจัดการกับความแตกต่างของภาษาในทีมคุณจัดการกับปัญหาได้อย่างไรและทำงานได้ดีเพียงใดสำหรับคุณ

3
กำลังมองหารูปแบบการล็อคแบบกระจาย
ฉันจำเป็นต้องมีกลไกการล็อคออบเจ็กต์ซ้ำแบบกำหนดเอง \ pattern สำหรับระบบแบบกระจายใน C # โดยพื้นฐานแล้วฉันมีระบบหลายโหนด แต่ละโหนดมีสิทธิ์การเขียนพิเศษเหนือชิ้นส่วนของn -number สถานะเดียวกันนี้ยังมีอยู่ในรูปแบบอ่านอย่างเดียวบนโหนดอื่นอย่างน้อยหนึ่งโหนด การเขียน / อัปเดตบางรายการจะต้องเป็นแบบปรมาณูในทุกโหนดในขณะที่การอัปเดตอื่น ๆ ในที่สุดจะกลายเป็นกระบวนการจำลองแบบพื้นหลังที่สอดคล้องกันคิว ฯลฯ ... สำหรับการอัปเดตอะตอมมิกฉันกำลังมองหารูปแบบหรือตัวอย่างที่อนุญาตให้ฉันทำเครื่องหมายวัตถุอย่างถูกล็อกสำหรับการเขียนซึ่งฉันสามารถกระจายกระทำย้อนกลับ ฯลฯ ... เนื่องจากระบบมีการทำงานพร้อมกันในระดับสูงฉัน ฉันคิดว่าฉันจะต้องสามารถล็อคสแต็กอัพซึ่งจะหมดเวลาหรือไม่ได้เปิดเมื่อล็อคถูกปล่อยออกมา ส่วนการทำธุรกรรมหรือการส่งข้อความนั้นไม่ได้เป็นจุดสนใจของคำถามนี้ แต่ฉันได้จัดเตรียมไว้สำหรับบริบทเพิ่มเติมบางอย่าง จากที่กล่าวมาคุณสามารถพูดได้อย่างชัดเจนว่าคุณต้องการข้อความใดหากคุณต้องการ นี่คือตัวอย่างที่คลุมเครือของสิ่งที่ฉันคาดคิดแม้ว่าฉันจะเปิดรับความคิดใหม่ ๆ นอกเหนือจากการใช้ผลิตภัณฑ์ใหม่ทั้งหมด thing.AquireLock(LockLevel.Write); //Do work thing.ReleaseLock(); ฉันคิดว่าจะใช้วิธีการขยายซึ่งอาจมีลักษณะเช่นนี้ public static void AquireLock(this IThing instance, TupleLockLevel lockLevel) { //TODO: Add aquisition wait, retry, recursion count, timeout …

1
DVCS มีความสุขการทำซ้ำ repo ในหมู่ทีมกระจายทางภูมิศาสตร์
บริษัท ของฉันกำลังสำรวจการย้ายจาก Perforce ไปยัง DVCS และขณะนี้เราใช้พร็อกซี่ Perforce จำนวนมากเนื่องจากทีมพัฒนาซอฟต์แวร์แพร่กระจายไปทั่วเยอรมนีจีนสหรัฐอเมริกาและเม็กซิโกและบางครั้งแบนด์วิดท์จากที่หนึ่งไปอีกที่ไม่ดีนัก พูดกับมันเราเริ่มมองหาวิธีที่จะให้สิ่งที่ทำงานได้อย่างราบรื่นจากมุมมองของการกระจายทางภูมิศาสตร์เพื่อให้ทุกคนที่ได้รับล่าสุดและยิ่งใหญ่โดยไม่ต้องกำหนดสิ่งที่ repo เซิร์ฟเวอร์เป็นแหล่งที่มาของความจริง (เช่นการจำลองโปร่งใส ) ผมคิดว่าบางทีเราอาจจะเลียนแบบกลไก DNS ผ่านก่อนผลักดันและตะขอดึงล่วงหน้า ตัวอย่างเช่นให้พิจารณาประเทศ A, B และ C เมื่อดึงออกมาจากการได้รับพร A จะดึงการเปลี่ยนแปลงจาก B ซึ่งจะดึงการเปลี่ยนแปลงใน C หาก B และ C มีการเปลี่ยนแปลงใหม่พวกเขาจะตกไปที่ A ในทางกลับกันเมื่อมีการผลักดันก็สามารถแพร่กระจายไปยังที่เก็บข้อมูลที่มีความสุขทั้งหมด ฉันทราบว่าโดยทั่วไปคุณมี repo ที่ได้รับพรเพียงแห่งเดียวอย่างไรก็ตามนี่อาจไม่ได้เพิ่มขึ้นทั่วโลกและที่เก็บที่มีความสุขแต่ละแห่งนั้นจะสามารถใช้ได้กับทีมจากประเทศเดียว คำถามของฉันคือ : ความคิดของการทำซ้ำ DVCS repo สิ่งที่ใช้ในทางปฏิบัติหรือไม่มีใครทำมันสำเร็จหรือไม่ถ้าเป็นเช่นนั้นวิธีที่ถูกต้องที่จะทำคืออะไร?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.