วิศวกรรมซอฟต์แวร์

ถาม - ตอบสำหรับมืออาชีพนักวิชาการและนักเรียนที่ทำงานในวงจรการพัฒนาระบบ

1
คณิตศาสตร์จำเป็นต้องเข้าใจทฤษฎีเบื้องหลังระบบการพิมพ์ของ Haskell หรือไม่?
เมื่อเร็ว ๆ นี้ฉันสนใจ Haskell เป็นอย่างมาก ในขณะที่พยายามที่จะเรียนรู้แนวคิดใหม่ (เช่นคำหลัก forallและST monad ) และระบบการพิมพ์ของ Haskell โดยทั่วไปผมทำงานอย่างต่อเนื่องเข้าสู่แนวคิดจากทฤษฎีหมวดหมู่และแลมบ์ดาแคลคูลัส ดังนั้นฉันสงสัยว่า: สาขาคณิตศาสตร์อื่น ๆ มีความสำคัญต่อความเข้าใจที่แข็งแกร่งของระบบประเภทของ Haskell ฉันสามารถสละการศึกษาคณิตศาสตร์เหล่านี้อย่างจริงจังและให้ความสนใจกับแนวคิดที่เกี่ยวข้องได้หรือไม่? (เช่นปริมาณในแคลคูลัสแลมบ์ดา) ถ้าเป็นเช่นนั้นแนวคิดใดที่จำเป็น? ฉันหวังว่าจะได้รับประเภทและภาษาการเขียนโปรแกรมในเร็ว ๆ นี้โปรดแนะนำแหล่งข้อมูลการอ่านอื่น ๆ ที่คุณรู้สึกว่าเหมาะสม

3
วิธีที่ดีที่สุดในการเชื่อมโยงบริบทฐานข้อมูล Entity Framework (รุ่น) กับ ViewModel ใน MVVM WPF คืออะไร
ดังในคำถามข้างต้น: อะไรคือวิธีที่ดีที่สุดในการเชื่อมโยงโมเดลฐานข้อมูล Entity Framework (บริบท) กับ viewModel ใน MVVM (WPF) ฉันกำลังเรียนรู้รูปแบบ MVVM ใน WPF ตัวอย่างจำนวนมากแสดงวิธีการนำโมเดลไปใช้กับ viewModel แต่โมเดลในตัวอย่างนั้นเป็นคลาสที่เรียบง่ายฉันต้องการใช้ MVVM พร้อมกับโมเดลเฟรมเวิร์กเอนทิตี (base first approach) Whats วิธีที่ดีที่สุดในการวางสายเพื่อดู model ขอบคุณสำหรับคำตอบ //ctor of ViewModel public ViewModel() { db = new PackageShipmentDBEntities(); // Entity Framework generated class ListaZBazy = new ObservableCollection<Pack>(db.Packs.Where(w => w.IsSent == false)); } …

2
Ruby on Rails เป็นวิธีการบันทึกภาพอย่างไร
ฉันพัฒนาบนiOSและฉันเปลี่ยนจากแบ็กเอนด์PHPเป็น Ruby on Rails รูปแบบการแลกเปลี่ยนเป็นJSON การค้นหาอย่างรวดเร็วของ Google สำหรับ 'บันทึกภาพในราง' มีเกือบทุกผลลัพธ์ที่พูดคุยเกี่ยวกับการบันทึกข้อมูลภาพเป็น blobs ไปยังฐานข้อมูล ฉันอาจเข้าใจผิด แต่ฉันรู้สึกว่าการบันทึกข้อมูลภาพในฐานข้อมูลเป็นการสูญเสียเวลาและพื้นที่อย่างมาก (ซึ่งต่างจากการบันทึกลิงก์ไปยังตำแหน่งไฟล์ ('/img/subcat/4656.png') . ใน PHP เป็นมาตรฐานที่ค่อนข้างดีในการรับข้อมูลสร้างชื่อไฟล์บันทึกไฟล์นั้นลงดิสก์และอัปเดตฐานข้อมูลด้วยตำแหน่งของรูปภาพบนดิสก์ นี่เป็นสิ่งเดียวกันสำหรับ Ruby on Rails หรือว่ามีฟังก์ชั่นภาพ ActiveRecord ในตัวที่ฉันไม่ทราบ?

6
อาร์กิวเมนต์ของฟิลด์เทียบกับวิธีการ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเพิ่งเริ่มเขียนคลาสใหม่และมันเกิดขึ้นกับฉันว่าฉันได้เพิ่มการโต้แย้งวิธีที่ไม่จำเป็นอย่างเคร่งครัด สิ่งนี้กำลังติดตามพฤติกรรมเพื่อหลีกเลี่ยงการมีสถานะในคลาสที่เฉพาะเจาะจงกับการเรียกใช้เมธอดบางตัวแทนที่จะเป็นการกำหนดค่าทั่วไปหรือการพึ่งพาของคลาส การทำเช่นนั้นหมายความว่าวิธีการมากมายที่อาจไม่มีข้อโต้แย้งจบลงด้วยหนึ่งสองหรือสาม ฉันต้องการฟังความคิดเห็นของคุณเกี่ยวกับสิ่งที่คุณคิดเกี่ยวกับการแลกเปลี่ยนนี้และวิธีการตัดสินใจเกี่ยวกับวิธีการที่จะใช้ในสถานการณ์ใด เนื่องจากรหัสมักจะเข้าใจง่ายกว่าภาษาอังกฤษเมื่ออธิบายรหัสฉันจึงสร้างส่วนเล็กน้อยที่มีทั้งสองรูปแบบ: https://gist.github.com/JeroenDeDauw/6525656

2
การแสดงละคร Git: เมื่อไหร่ถึงเวที? จะทำอย่างไรถ้ามีการดัดแปลงเกิดขึ้นในภายหลัง
ฉันค่อนข้างใหม่สำหรับโลกกว้างของ Git ฉันอ่านคู่มือและฝึกฝนมาแล้ว แต่ฉันก็สับสนเล็กน้อยเกี่ยวกับมันซึ่งฉันคิดไม่ออกหลังจากค้นหา ฉันสงสัย: ในโครงการ (โพสต์การคอมมิทครั้งแรก) ช่วงเวลาที่เหมาะสมในการจัดทำไฟล์ต้นฉบับคืออะไร ก่อนที่จะตัดสินใจ? ทันทีหลังจากเพิ่ม / ลบหรือแก้ไข? หากไฟล์ถูกจัดฉากกลางคันระหว่างสองคอมมิตและจากนั้นไฟล์จะถูกแก้ไขจะเกิดอะไรขึ้นกับ Git มันต้องการการดูแลเกี่ยวกับการเปลี่ยนแปลงเนื้อหาเมื่อมันถูกระบุและสิ่งที่มันจะกลายเป็นตั้งแต่? ถ้าฉันสร้างไฟล์ใหม่ให้จัดวางและต้องการลบไฟล์ทำไม Git ขอให้ฉันใช้แฟล็ก "-f" และ "git -rm file.ext" ธรรมดาจะไม่ทำงาน ฉันได้อ่าน "What stage หมายถึงอะไร" และวิชาอื่น ๆ ของคู่มือและแบบฝึกหัดอื่น ๆ ใน Git แต่อย่างที่ฉันพูดฉันยังไม่เข้าใจเรื่องข้างต้น ดังนั้นถ้าคุณทำได้โปรดตอบคำถามด้วยคำพูดและตัวอย่างของคุณเองเพื่อที่ฉันจะได้มีโอกาสเข้าใจมันมากขึ้น ขอบคุณ.

6
ทีมของฉันควรใช้มาตรฐานการเข้ารหัสที่ได้รับการยอมรับเป็นพื้นฐานของตัวเองหรือไม่?
ทีมวิจัยและพัฒนาที่ฉันอยู่ได้ตัดสินใจใช้มาตรฐานการเข้ารหัส เราเพิ่งก่อตั้งเมื่อไม่นานมานี้และมีรหัสน้อยเกินไปและเวลาการเข้ารหัสทั่วไปของเราเองที่จะยึดมาตรฐาน / เอกสารการประชุมว่าสิ่งใดที่มีการพัฒนาโดยทั่วไปในทีมของเราและจากตัวอย่างที่ดีจากรหัสของเราเองเป็นต้น ตอนนี้พวกเราทุกคนมีประสบการณ์จากสถานที่ทำงานที่ผ่านมา - แม้ว่าเราจะไม่มีใครพูดว่า "เราขอรับรองเอกสารฉบับนี้ที่นี่ฉันพบว่าเหมาะสำหรับงานที่เราทำที่นี่" (*) นอกจากนี้พวกเราบางคน (รวมถึงตัวฉันเอง) มีประสบการณ์จากสถานที่ที่ไม่มีมาตรฐานการเข้ารหัสอย่างเป็นทางการเท่านั้นหรือการเขียนในภาษาต่าง ๆ ในสภาพแวดล้อมที่แตกต่างกัน (สภาพแวดล้อมการผลิตที่มีแรงกดดันสูงทุกสัปดาห์ หนึ่งในตัวเลือกที่ฉันคิดอยู่ก็คือการนำเอกสารที่เป็นที่รู้จักและได้รับการยอมรับมาอย่างดีคัดลอกสิ่งที่เราไม่สนใจ / สนใจและทำการแก้ไขตามความต้องการของเรา นี่เป็นเรื่องธรรมดาไหม คุณเชื่อว่านี่เป็นความคิดที่ดีหรือไม่? ถ้าเป็นเช่นนั้นสิ่งที่จะเป็นมาตรฐานการเข้ารหัส 'พื้นฐาน' ที่เหมาะสม (อย่าบอกฉันว่าอะไรดีที่สุดฉันไม่ต้องการเริ่มต้นความขัดแย้งทางศาสนาที่นี่เพียงแค่ชี้ให้เห็นว่าอะไรจะครอบคลุมหรือ 'เป็นกลาง' พอที่จะสร้าง .) หมายเหตุ: เราคาดว่าจะทำงานกับ C, C ++, OpenCL, CUDA, Python เราเป็นทีมงานของ 4 คน + ผู้จัดการคาดว่าจะเติบโตประมาณ 5-6 ภายในหนึ่งปี ใน บริษัท ของเราทีมเกือบทั้งหมดเป็นอิสระและมักจะไม่โต้ตอบเลย (ไม่ใช่แม้กระทั่งโดยใช้รหัสของกันและกัน - งานอยู่ในโครงการที่แตกต่างกันโดยสิ้นเชิง); ดังนั้น - …

4
เหตุใดอุปกรณ์การพัฒนาจึงให้ทรัพยากรมากกว่าอุปกรณ์ทั่วไป
ฉันได้สร้างแอพที่ทำงานบน iPod Touch รุ่นที่ 4 และ iPod touch รุ่นที่ 5 ของ บริษัท ของฉัน เรากำลังจะเปิดตัวเมื่อเราพบว่ามีข้อผิดพลาดเกิดขึ้นหลังจากอุปกรณ์ที่ไม่ใช่นักพัฒนาซอฟต์แวร์ใดทำงานแอพ * แนวคิดนี้เกิดขึ้นว่าอุปกรณ์ที่ลงทะเบียนเป็น 'อุปกรณ์สำหรับนักพัฒนา' ให้แอปของคุณมีแหล่งข้อมูลเพิ่มเติมให้ใช้ สิ่งนี้ดูไม่ถูกต้องสำหรับฉันเนื่องจากฉันไม่สามารถนึกถึงเหตุผลที่จะมีอยู่ - ฉันรู้สึกว่ามันน่าจะมีปัญหากับการสร้างโปรไฟล์หรือการจัดเตรียม อย่างไรก็ตามนั่นเป็นการกระตุ้นการสนทนา ทำไมอุปกรณ์เช่นชุดพัฒนาเกมคอนโซลอุปกรณ์ที่มีความสามารถมากกว่าแพลตฟอร์มเป้าหมายจึงมีอยู่ตั้งแต่แรก? แน่นอนว่าเป็นเรื่องดีที่จะทดสอบโปรแกรม แต่จะเป็นการแสดงที่แม่นยำกว่าของแพลตฟอร์มเป้าหมายหรือไม่ TL; DR - ทำไมชุดการพัฒนาจึงมีทรัพยากรมากกว่าแพลตฟอร์มเป้าหมาย? * ด้วยอุปกรณ์ที่ไม่ใช่นักพัฒนาที่เป็นแบบ> รุ่นที่ 3 อุปกรณ์ iOS ที่ดาวน์โหลดแอปจากเซิร์ฟเวอร์ของเราไม่ใช่โดยตรงจากคอมพิวเตอร์ที่ติดตั้งแอป & xcode โปรดทราบว่ามีคำถามอื่นที่อ่านคล้ายกัน แต่จริง ๆ แล้วแตกต่างกันเนื่องจากคำถามอื่นถามเกี่ยวกับเครื่องจำลองและฉันเข้าใจว่ามีความแตกต่างอย่างมากระหว่างการใช้เครื่องจำลองและอุปกรณ์จริง

2
การเรียนรู้ภาษาการเขียนโปรแกรมโดยไม่ได้เขียนโปรแกรม?
นักวิทยาศาสตร์คอมพิวเตอร์ Peter Norvig โต้เถียงในเรียงความของเขาสอนตัวเองให้โปรแกรมใน 10 ปีที่คุณต้องการฝึกประมาณ 10,000 ชั่วโมง แต่ Jeff Atwood โต้เถียงในโพสต์ของเขาวิธีการเป็นโปรแกรมเมอร์ที่ดีขึ้นโดยไม่เขียนโปรแกรมว่าเขาเชื่อว่าวิธีเดียวที่จะเป็นโปรแกรมเมอร์ที่ดีขึ้นคือไม่ได้เขียนโปรแกรม บทความเหล่านี้มีการต่อต้าน มีหลักฐานทางวิทยาศาสตร์ที่พิสูจน์วิธีการของ Jeff Atwood หรือไม่?

3
ฉันควรใส่วิธีที่ทำให้การร้องขอ Http รับข้อมูลจากบริการเว็บในการพัฒนา iOS ที่ไหน
ฉันมี Model Car ในแอปพลิเคชัน iOS ของฉันซึ่งเป็นพารามิเตอร์เช่นชื่อ, ปี, ค่าและอื่น ๆ ถูกดึงมาจากบริการเว็บเพื่อเติมรายการด้วยข้อมูลรถยนต์ ฉันควรจะวางวิธีการแบบอะซิงโครนัสไปที่เซิร์ฟเวอร์และส่งกลับอาร์เรย์รถยนต์ (วิธีนี้แปลง JSON ไปเป็นอาร์เรย์รถยนต์แล้วหรือไม่) วิธีการปัจจุบันของฉันเป็นวิธีการคงที่ในชั้นเรียนรถยนต์ของฉันที่ได้รับ HttpClient (ดังนั้นฉันจึงสามารถทดสอบหน่วยมันเยาะเย้ยลูกค้า) และส่งคืน NSArray ของรถยนต์เป็นสิ่งที่ดีหรือไม่? พวกคุณทำอะไรในสถานการณ์นี้ ฉันกังวลเพราะเมื่อเร็ว ๆ นี้ฉันเริ่มอ่านโค้ดที่สะอาดซึ่งบอกว่า Class ควรทำสิ่งเดียวเท่านั้นและวิธีที่ฉันมีตอนนี้ดูเหมือนจะทำ 2 สิ่ง (เก็บข้อมูลเกี่ยวกับรถยนต์และรับรายการรถยนต์)


2
หลักปฏิบัติมาตรฐานสำหรับการควบคุมการเข้าถึง (รูปแบบการออกแบบ)
ฉันกำลังดูที่การออกแบบส่วนต่อประสานของฉันและฉันพยายามที่จะตัดสินใจว่าวิธีใดที่ "ถูกต้อง" ที่สุดในการใช้การควบคุมการเข้าถึงตามบทบาทซึ่งกำหนดไว้userและสิ่งsubjectที่userต้องการเข้าถึง เท่าที่ฉันเห็นฉันมีสามตัวเลือกหลัก (ที่สี่เป็นลูกครึ่งของสามสามและห้าเป็นบิดของสี่): ค้นหาsubjectด้วยรายการสิทธิ์ที่userมี -subject.allowAccess(user.getPermissionSet) ค้นหาuserด้วยรายการสิทธิ์ที่subjectต้องการ -user.hasPermissionTo(subject.getRequiredPermissions()) สอบถามบุคคลที่สามเพื่อค้นหาจุดตัดสิทธิ์ - accessController.doPermissionSetsIntersect(subject.permissionSet, user.getPermissionSet()) ค้นหาทั้งsubject/ userในขณะที่มอบหมาย "การตัดสินใจ" ให้กับบุคคลที่สามชั้น มีuserความพยายามในการเข้าถึงsubjectและโยนข้อผิดพลาดหากไม่ได้รับอนุญาต ฉันกำลังเอนเอียงไปทางตัวเลือกที่สี่ - มีsubjectประกอบด้วยaccessControllerข้อมูลที่โทรไปยังsubject.userMayAccess(User user)มอบหมายการดำเนินการแบบ a la: class Subject { public function display(user) { if(!accessController.doPermissionSetsIntersect(this.permissionSet, user.getPermissionSet())) { display403(); //Or other.. eg, throw an error.. } } } .. แต่เมื่อถามคำถามเพิ่มเติม: accessControllerฟิลด์ควรเป็นคลาสคงที่ .. ควรsubject รู้ว่าต้องใช้การอนุญาตใดเพื่อให้สามารถดูได้ …

1
มีคำที่ชัดเจนสำหรับคลาสที่ไม่ใช่นามธรรมหรือไม่?
ฉันได้เรียนวิชานามธรรมเป็นส่วนใหญ่ในโครงการของฉันและมีอีกสองสามชั้นที่ใช้ / สืบทอดพวกเขา เมื่อฉันเขียนเอกสารฉันต้องการระบุว่าส่วนหนึ่งเป็นเพียงเกี่ยวกับพฤติกรรมของชั้นเรียนที่ไม่เป็นนามธรรมเหล่านี้ แต่ฉันพบว่าใช้คำนี้โง่ ฉันสามารถพูดได้ว่าเป็นคลาส แต่คลาสนามธรรมเป็นคลาสเช่นกัน ดังนั้นฉันสงสัยว่ามีคำ / คำพ้องความหมายที่ชัดเจนสำหรับชั้นเรียนที่ไม่ใช่นามธรรมหรือไม่? อัปเดต SEO: ชื่อทั่วไปของคลาสที่ไม่เป็นนามธรรมคืออะไร?

3
ส่วนประกอบสองอย่างที่เสนอฟังก์ชันการทำงานเดียวกันซึ่งเป็นไปตามความต้องการที่แตกต่างกัน
ฉันกำลังสร้างแอปพลิเคชันใน PHP โดยใช้ Zend Framework 1 และ Doctrine2 เป็นเลเยอร์ ORM ทุกอย่างเป็นไปด้วยดี ตอนนี้ฉันสังเกตเห็นว่าทั้ง ZF1 และ Doctrine2 มาพร้อมกับและใช้งานแคชของพวกเขาเอง ฉันได้ประเมินทั้งสองอย่างและในขณะที่แต่ละคนมีข้อดีและข้อเสียของตัวเองทั้งคู่ต่างก็โดดเด่นกว่าคนอื่นสำหรับความต้องการที่เรียบง่ายของฉัน ดูเหมือนว่าไลบรารีทั้งสองนั้นจะถูกเขียนลงบนอินเตอร์เฟสที่เกี่ยวข้องไม่ใช่การประยุกต์ใช้ เหตุผลที่ฉันรู้สึกว่านี่เป็นปัญหาคือในระหว่างการบูตแอปพลิเคชันของฉันฉันต้องกำหนดค่าแคชไดรเวอร์สองตัว - แต่ละอันมีไวยากรณ์ของตัวเอง ไม่ตรงกันถูกสร้างขึ้นอย่างง่ายดายด้วยวิธีนี้และรู้สึกไม่มีประสิทธิภาพในการตั้งค่าสองการเชื่อมต่อกับแบ็กเอนด์แคชเพราะสิ่งนี้ ฉันกำลังพยายามกำหนดว่าอะไรคือวิธีที่ดีที่สุดในการส่งต่อและยินดีรับข้อมูลเชิงลึกที่คุณสามารถเสนอได้ สิ่งที่ฉันคิดตอนนี้มีสี่ตัวเลือก: ไม่ทำอะไรเลยยอมรับว่ามีสองคลาสที่เสนอฟังก์ชันการแคช สร้างคลาส Facade เพื่อติดอินเทอร์เฟซของ Zend เข้ากับการใช้แคชของ Doctrine ตัวเลือก 2 วิธีอื่น ๆ - สร้าง Facade เพื่อแมปอินเทอร์เฟซของ Doctrine บนแบ็กเอนด์ Zend Framework ใช้หลายอินเทอร์เฟซการสืบทอดเพื่อสร้างอินเทอร์เฟซเดียวเพื่อปกครองทั้งหมดและอธิษฐานว่าไม่มีการซ้อนทับกัน (เช่น: หากทั้งคู่มีวิธี "บันทึก" พวกเขาจะต้องยอมรับพารามิเตอร์ในลำดับเดียวกันเนื่องจาก PHP ขาดความหลากหลายที่เหมาะสม) …

3
เหตุผลที่อยู่เบื้องหลังฟังก์ชันไลบรารี C ไม่เคยตั้งค่า errno เป็นศูนย์
เอกสารมาตรฐาน C ที่ไม่มีฟังก์ชันไลบรารีมาตรฐาน C ตั้งerrnoเป็นศูนย์ ทำไมถึงเป็นอย่างนี้ ฉันเข้าใจว่ามันมีประโยชน์สำหรับการเรียกฟังก์ชั่นหลาย ๆ อย่างและตรวจสอบเฉพาะerrnoหลังจากที่ผ่านมา - ตัวอย่างเช่น: errno = 0; double x = strtod(str1, NULL); long y = strtol(str2, NULL); if (errno) // either "strtod" or "strtol" failed else // both succeeded อย่างไรก็ตามนี่ไม่ถือว่าเป็น "การปฏิบัติที่ไม่ดี" หรือไม่? เนื่องจากคุณกำลังตรวจสอบerrnoเมื่อสิ้นสุดเท่านั้นคุณจะรู้ว่าหนึ่งในฟังก์ชันนั้นล้มเหลว แต่ไม่ใช่ฟังก์ชั่นใดที่ล้มเหลว เพียงแค่รู้ว่ามีบางสิ่งที่ไม่ดีพอสำหรับโปรแกรมที่ใช้งานได้จริง ผมพยายามมองหาเอกสารต่างๆ C เหตุผล <errno.h>แต่ส่วนมากของพวกเขาไม่ได้มีรายละเอียดมากสำหรับ
9 c  standards 

5
การแบ่งเรื่องราวที่ซับซ้อนตั้งแต่เริ่มโครงการ
ฉันกำลังพยายามที่จะจับกับการจัดการโครงการเปรียว (กับ Pivotal Tracker) แต่พบว่าตัวเองวิ่งเข้าไปในกำแพงเมื่อพยายามที่จะกำหนดเรื่องราวสองสามเรื่องแรกของโครงการ ยกตัวอย่างเรื่องง่าย ๆ นี้: "ผู้ใช้ควรแท็กผลิตภัณฑ์" สมมติว่าฉันได้กำหนด "ผลิตภัณฑ์" ไว้ที่อื่นแล้วเรื่องราวนี้อาจเกี่ยวข้องกับการเขียนระบบการติดแท็กแบบ polymorphic ภายใต้ประทุนเมื่อการเสร็จสมบูรณ์ของรหัสระบบนั้นจะสามารถเพิ่มความสามารถในการติดแท็กผลิตภัณฑ์ในที่สุด ปัญหาของฉันคือปริมาณงานที่ซ่อนอยู่ในเรื่องนี้ ฉันสามารถกำหนดภารกิจเพื่อให้เรื่องราวสำเร็จ แต่เรื่องราวโดยรวมควรจะใช้งานได้ 1-2 วันหรือไม่ ฉันรู้สึกไม่ถูกต้องเกี่ยวกับเรื่องราวที่เพิ่งเปิดเผยปลายภูเขาน้ำแข็ง แต่นั่นเป็นเพียงส่วนเดียวที่เกี่ยวข้องกับผู้ใช้ คุณจะเอาชนะสิ่งนี้ได้อย่างไร อะไรคือการปฏิบัติที่ดีที่สุด? อัปเดต 25/08ขอบคุณทุกคนสำหรับคำแนะนำของคุณฉันได้รับคำแนะนำทั้งหมดเกี่ยวกับวิธีการกำหนดเรื่องราว ตอนนี้ฉันกำลังเปลี่ยนไปใช้ Jira Grasshopper ซึ่งได้รับการสนับสนุนที่ดีกว่าสำหรับงานในเรื่อง (การมอบหมายประมาณการและอื่น ๆ ) และการติดตามงานพัฒนาเมื่อเริ่มการวิ่ง
9 scrum 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.