The best of adaptive and predictive methodologies:Open source software translation - The best of adaptive and predictive methodologies:Open source software Thai how to say

The best of adaptive and predictive

The best of adaptive and predictive methodologies:
Open source software development,
a balance between agility and discipline
Chitu Okoli and Kevin Carillo
(c) 2010 Chitu Okoli
Abstract
Open source software development (OSSD) is a promising alternative for synthesizing agile
and plan-driven (e.g. waterfall) software development methodologies that retains most
benefits of the two approaches. We contrast the traditional systems development life cycle
approach, more recent agile software development methods, and OSSD. We compare the first
two approaches with OSSD, highlighting its synthesis of benefits from both, with unique
benefits of its own, offering solutions to areas where the other methodologies continue to face
difficulties. OSSD is highly responsive to user needs, and draws talent from a global team of
developers. OSSD is a low-risk methodology with potentially high return on investment.
While not appropriate for all applications, especially those where the needed applications are
extremely idiosyncratic to one company, it is nonetheless a valuable asset in an
organization’s portfolio of software development solutions.2
Keywords: Software development methodologies, open source software development, agile
software development, systems development life cycle, waterfall model, extreme
programming.3
As technology constantly reshapes work environments at a dramatically pace, software
development is increasingly subject to conflicting forces due to ever-increasing uncertainty.
On one side, such turmoil in the business environment constrains users to iteratively redefine
their needs whereas on the other side, software development companies search for stable
planning to allocate their resources and to efficiently control software production processes in
order to meet customers’ expectations. To answer both needs, the software development field
has been prolific in introducing innovative methodologies for the last 25 years that can be
arranged in an “adaptive-to-predictive” continuum (Barry W Boehm & Turner, 2004, pp.
165-194). However, only a small minority survived to be used today. Barry Boehm, a major
contributor in the field of software engineering, places the widely-accepted plan-driven and
agile methods on the two extremes of the planning emphasis spectrum. Many real-world
examples argue for and against both methodologies leading to an ideological battle between
fervent proponents of both sides. However, the resolution may not reside in one of the
extremes but rather in a combined approach, as Barry Boehm (2002)suggested:
Although many of their advocates consider the agile and plan-driven software
development methods polar opposites, synthesizing the two can provide developers
with a comprehensive spectrum of tools and options.
Open source software development (OSSD) appears to be a particularly attractive candidate
for a solution, as it combines and integrates the main strengths of agile and plan-driven
methods. Based on Boehm’s analysis, Warstaand Abrahamsson suggested placing the OSS
paradigm between the agile and plan-driven approaches (Abrahamsson, Salo, Ronkainen, & 4
Warsta, 2002). They build on Boehm’s (2002) frameworkthat compares the methodologies at
the organizational level by focusing on developers, customers, requirements, architecture,
refactoring, size, and primary objective.
Rather than the focusing on the stated purpose of each of the three methodological
approaches, we believe it is valuable to contrast agile, open source and plan-driven
methodologies from the pragmatic perspective of their differences in the various stages of a
software development project. We believe that practitioners could benefit from such an
analysis by identifying the key sensitive factors during project development. To present this
analysis, we first review the traditional systems development life cycle (SDLC) approach in
section I. In section II, we then review more recent agile software development methods
(which we will refer to as “agile methods”) that try to resolve some of the ongoing problems,
and then introduce open source software development in section III. The major part of this
article, section IV, follows with a comparison of the first two approaches with OSSD,
highlighting its synthesis of benefits from both, with unique benefits of its own, offering
solutions to areas where the other methodologies continue to face difficulties. We conclude in
section V with a summary of the benefits of OSSD.
I. Plan-driven approach: the SDLC methodology
Among the plan-driven methodologies, the traditional systems development life cycle
(SDLC) is the most widely used conceptual model in project management to describe the
stages involved in an information system development project (Blanchard & Fabrycky, 2006; 5
Jessup, Valacich, & Wade, 2008). The “waterfall” model is the most popular version of the
SDLC, but not the only form (Royce, 1970; Barry W Boehm, 1988; McConnell, 1996). The
SDLC approach involves a number of systematic stages (usually four or five, depending on
how the stages might be categorized) whose goal is to thoroughly understand users’ needs,
craft a solid design to meet these needs, and implement a functional system that satisfactorily
fulfils the needs. The stages are: identification and planning, where the project is justified;
analysis, where user and project needs are understood in detail; design, where a thorough,
detailed specification of the solution is created; and implementation, where the
programming, testing, and installation are executed. Some add maintenance as a fifth stage
that continues for the life of the system (Jessup et al., 2008).
The traditional strengths of this approach have been its ability to manage very large projects,
its attention to quality assurance, and its long-term scalability (assuming a properly executed
design stage). However, it has several well-known shortcomings. First, the SDLC depends on
the assumption that the users’ requirements are understood from the outset, and that they will
not change significantly during the process of development, nor soon afterwards. When these
assumptions do not hold (and they often do not), this approach can result in working systems
that do not correspond to users’ present and actual needs.
Another fundamental problem is simply that the process takes too long from commencement
to when the end-users can begin using the system. While the length of the project depends on
its size and the available resources, SDLC projects are designed such that they developed
systems are not available to users until the process is completed, which could take from 6
several months to a couple of years. This implicitly means that SDLC projects have a
relatively high risk of finishing over budget and behind schedule, or not finishing at all. The
longer the project lasts, the more likely that user needs will change—often quite
dramatically—before the completed system is delivered, thus not satisfying their needs when
eventually delivered. The cost of large software projects is notoriously difficult to accurately
estimate, and extended time frames aggravate this effect (Jones, 2007; Lederer & Prasad,
1992).
II. Agile software development
A number of development methodologies have been formulated to resolve many of these
shortcomings of the plan-driven approach, including prototyping, rapid application
development, and object-oriented analysis and design, among others. One particularly notable
class of solutions that emerged in the mid 1990s has come to be called agile software
development, which we will refer to here as “agile methods” (Wikipedia, 2008a;
Abrahamsson et al., 2002; B. Boehm, 2002; Cunningham, 2001). While Extreme
Programming (XP) (Beck, 1999) is the best known of these methods, others such as Scrum
(Ambler, 2008) and the Dynamic Systems Development Method (DSDM) (Stapleton, 1999)
hold to a similar philosophy. Agile software development methods are characterized by four
key characteristics, outlined in the Agile Alliance’s “Manifesto for Agile Software
Development” (Manifesto for Agile Software Development, http://agilemanifesto.org).7
1. Individuals and interactions over processes and tools: Generally, programmers do
not work individually in their cubicles, alone with their computers. Rather, they work
closely together (in XP they program in pairs), and review each other’s work in a
high-interaction environment.
2. Working software over comprehensive documentation: Traditional development
might not produce any software for several months or even a year or two. It uses
careful documentation as its primary evidence of productivity and basis of
accountability. In sharp contrast, agile methods release working software (though
perhaps very rudimentary at first) in regular periods of two to six weeks, and work is
centred on this “live documentation”.
3. Customer collaboration over contract negotiation: Agile methods heavily
emphasize customer (end user) collaboration throughout the life of the project. XP
even insists that a non-technical customer representative should be a permanent, fulltime member of the project for its entire lifespan.
4. Responding to change over following a plan: Agile methods de-emphasise lengthy
periods of analysis and design, which usually take half the time of an SDLC project.
Rather, they get right to work, churning incrementally functional releases (not just
prototypes) every three or four weeks. They expect customer needs (or desires) to
change often, and rapidly change direction to accommodate the customer.
As their name implies, agile methods emphasize rapid development and high flexibility
through proven practices such as test-driven development and refactoring. Instead of
carefully laid-out designs, agile methods use short “timeboxes” of focused work to produce 8
working, thoroughly tested rele
0/5000
From: -
To: -
Results (Thai) 1: [Copy]
Copied!
ส่วนของวิธีการปรับให้เหมาะสม และคาดการณ์:
เปิดแหล่งพัฒนาซอฟแวร์,
ดุลระหว่างความว่องไวและวินัย
Chitu Okoli และ Kevin Carillo
(c) 2010 Chitu Okoli
นามธรรม
พัฒนาซอฟต์แวร์โอเพนซอร์ซ (OSSD) เป็นทางเลือกสัญญาสำหรับสังเคราะห์คล่องตัว
และขับ เคลื่อนแผน (เช่นน้ำตก) วิธีการพัฒนาซอฟต์แวร์ที่รักษาส่วนใหญ่
ประโยชน์ของสองวิธีการ เราความคมชัดวงจรชีวิตการพัฒนาระบบแบบดั้งเดิม
วิธีการ วิธีการพัฒนาซอฟต์แวร์คล่องตัวล่าสุด และ OSSD เราเปรียบเทียบแรก
สองวิธี ด้วย OSSD เน้นการสังเคราะห์จากทั้ง โดยเฉพาะ
ประโยชน์ของตนเอง โซลูชั่นจึงไปยังพื้นที่ที่ยังหน้าวิธีอื่น ๆ
ความยากลำบาก OSSD เป็นคำตอบสนองต่อความต้องการผู้ใช้ และดึงความสามารถจากทีมสากล
นักพัฒนา OSSD เป็นวิธีการความเสี่ยงต่ำ ด้วยอาจสูงผลตอบแทนจากการลงทุน
ไม่เหมาะสมสำหรับโปรแกรมประยุกต์ทั้งหมด เฉพาะในขณะที่โปรแกรมประยุกต์ต้องมี
มาก idiosyncratic บริษัทแห่งหนึ่ง มันเป็นกระนั้นคุณค่าในการ
ผลงานขององค์กรของ solutions.2
Keywords การพัฒนาซอฟต์แวร์: วิธีการพัฒนาซอฟต์แวร์ เปิดแหล่งพัฒนาซอฟแวร์ คล่องตัว
พัฒนาซอฟต์แวร์ วงจรชีวิตการพัฒนาระบบ น้ำตก จำลอง
programming.3
As มากเทคโนโลยีตลอดเวลาสภาพแวดล้อมที่ทำงาน reshapes ก้าวอย่างมาก ซอฟต์แวร์
พัฒนาเป็นกองกำลังขัดแย้งกันเนื่องจากมีมากขึ้นความไม่แน่นอน
ด้านหนึ่ง ความวุ่นวายดังกล่าวในสภาพแวดล้อมทางธุรกิจที่จำกัดผู้ใช้สามารถกำหนดซ้ำ ๆ
ความในขณะที่อีกด้านหนึ่ง บริษัทพัฒนาซอฟต์แวร์ค้นหาคอก
วางแผนจัดสรรทรัพยากรของพวกเขา และประสิทธิภาพควบคุมกระบวนการผลิตซอฟต์แวร์ใน
สั่งเพื่อตอบสนองความคาดหวังของลูกค้า ตอบทั้งความต้องการ ฟิลด์พัฒนาซอฟต์แวร์
มีลูกในการแนะนำวิธีการใหม่ ๆ ในช่วง 25 ปีที่สามารถ
จัดความต่อเนื่อง "เหมาะสมการงาน" (Barry W Boehm & Turner, 2004 นำ
165-194) อย่างไรก็ตาม ส่วนน้อยขนาดเล็กเท่านั้นรอดชีวิตได้ใช้วันนี้ Barry Boehm หลักการ
สนับสนุนด้านวิศวกรรมซอฟต์แวร์ ทำการยอมรับอย่างกว้างขวางแผนขับเคลื่อน และ
วิธีการคล่องตัวบนสุดสองของสเปกตรัมเน้นวางแผน โลกจริงมาก
ตัวอย่างโต้เถียงใน และ กับทั้งวิธีการนำไปสู่การต่อสู้อุดมการณ์ระหว่าง
proponents ร้องของทั้งสองฝ่าย อย่างไรก็ตาม การแก้ปัญหาอาจมีอยู่ในตัว
ที่สุดแต่ค่อนข้างในการรวมวิธี เป็น Barry Boehm (2002) แนะนำ:
แม้ว่าหลายสนับสนุนการพิจารณาซอฟต์แวร์คล่องตัว และขับ เคลื่อนแผน
พัฒนาวิธีขั้วตรงกันข้าม สังเคราะห์ทั้งสองสามารถให้นักพัฒนา
มีสเปกตรัมความครอบคลุมของเครื่องมือและตัวเลือก
พัฒนาซอฟต์แวร์โอเพนซอร์ซ (OSSD) ปรากฏเป็นผู้สมัครที่น่าสนใจโดยเฉพาะอย่างยิ่ง
สำหรับโซลูชั่น เป็นมันรวม และรวมจุดแข็งหลักของเปรียว และขับ เคลื่อนแผน
วิธี ตามการวิเคราะห์ของ Boehm, Warstaand Abrahamsson แนะนำทำ OSS
กระบวนทัศน์ระหว่างวิธี และแผนขับเคลื่อนคล่องตัว (Abrahamsson, Salo, Ronkainen & 4
Warsta, 2002) พวกเขาสร้างของ Boehm (2002) frameworkthat เปรียบเทียบลักษณะที่
ระดับองค์กร โดยมุ่งเน้นพัฒนา ลูกค้า ความต้องการ สถาปัตยกรรม,
refactoring ขนาด และวัตถุประสงค์หลักการ
Rather มากกว่าการเน้นวัตถุประสงค์ที่ระบุไว้ของแต่ละสาม methodological
วิธี เราเชื่อว่า มีความคล่องตัว เปิดแหล่ง และขับ เคลื่อนแผน
วิธีจากมุมมองของความแตกต่างของพวกเขาในขั้นตอนต่าง ๆ ของการปฏิบัติการ
โครงการพัฒนาซอฟต์แวร์ เราเชื่อว่า ผู้ได้ประโยชน์จากเช่นการ
วิเคราะห์ระบุปัจจัยสำคัญสำคัญในระหว่างการพัฒนาโครงการ ปัจจุบันนี้
วิเคราะห์ เราต้องทบทวนวิธีวงจรชีวิต (SDLC) การพัฒนาระบบแบบดั้งเดิมใน
ส่วนฉัน ในส่วนที่ II จากนั้นทบทวนวิธีการพัฒนาซอฟต์แวร์โรงล่าสุด
(ซึ่งเราจะอ้างอิงถึงเป็น "วิธีการคล่องตัว") ที่พยายามแก้ไขปัญหาอย่างต่อเนื่อง บาง
และพัฒนาซอฟต์แวร์โอเพนซอร์ซในส่วน III ที่แนะนำแล้ว ส่วนใหญ่นี้
บทความ ส่วน IV ตาม ด้วยการเปรียบเทียบวิธีสองด้วย OSSD,
เน้นการสังเคราะห์จากทั้ง มีประโยชน์เฉพาะของตัวเอง เสนอ
แก้ไขพื้นที่ที่ยังเผชิญปัญหาวิธีอื่น ๆ เราสรุปใน
ส่วน V พร้อมสรุปประโยชน์ของ OSSD
I. แผนขับเคลื่อนวิธี: วิธี SDLC
ระหว่างวิธีการขับเคลื่อนแผน ระบบแบบดั้งเดิม cycle
(SDLC) ชีวิตพัฒนาอย่างกว้างขวางมากที่สุดคือใช้แบบจำลองความคิดในการบริหารโครงการเพื่ออธิบายการ
ขั้นตอนเกี่ยวข้องในโครงการพัฒนาระบบข้อมูล (Blanchard & Fabrycky, 2006; 5
Jessup, Valacich &ลุย 2008) แบบ "น้ำตก" เป็นรุ่นนิยมมากที่สุดของการ
SDLC แต่ไม่เท่าแบบ (รอยซ์ 1970 Barry Boehm W, 1988 McConnell, 1996) ใน
จำนวนขั้นของระบบที่เกี่ยวข้องกับวิธีการ SDLC (สี่ หรือ ห้า มักจะขึ้นอยู่กับ
วิธีอาจแบ่งขั้นตอน) เป้าหมายจะต้องเข้าใจความต้องการของผู้ใช้,
หัตถกรรมแบบแข็งเพื่อตอบสนองความต้องการเหล่านี้ และใช้ระบบการทำงานที่ผ่าน
ครบถ้วนความต้องการ มีขั้นตอนการ: การระบุและการวางแผน ที่โครงการเป็นธรรม
การวิเคราะห์ การที่ผู้ใช้และโครงการมีความเข้าใจในรายละเอียด ออกแบบ ละเอียด,
สร้างข้อมูลจำเพาะโดยละเอียดของการแก้ปัญหา และการใช้ งาน ที่
เขียน ทดสอบ และติดตั้งดำเนินการ บางเพิ่มการบำรุงรักษาเป็นขั้นตอนที่ห้า
ที่ยังคงชีวิตของระบบ (Jessup et al., 2008) .
จุดแข็งดั้งเดิมของวิธีการนี้มีความสามารถในการจัดการโครงการขนาดใหญ่,
สนใจความคุณภาพ และเป็นภาระระยะยาว (สมมติว่าดำเนินการถูกต้อง
ออกแบบขั้น) อย่างไรก็ตาม มีหลายรู้จักแสดง SDLC ขึ้นอยู่กับครั้งแรก
สมมติฐานที่ ว่าความต้องการของผู้ใช้มีความเข้าใจจากมือ และพวกเขาจะ
ไม่เปลี่ยนแปลงอย่างมีนัยสำคัญในระหว่างกระบวนการของการพัฒนา และเร็ว ๆ นี้ภายหลัง เมื่อเหล่านี้
อย่าเอาสมมติฐาน (และมักจะไม่), วิธีการนี้อาจทำให้ระบบทำงาน
ที่ไม่สอดคล้องกับความต้องการจริง และมีผู้ได้
ปัญหาพื้นฐานอื่นนั้นว่า กระบวนการที่ใช้เวลานานเกินไปตั้งแต่เริ่ม
เมื่อที่ผู้ใช้สามารถเริ่มต้นใช้ระบบ ในขณะที่ความยาวของโครงการขึ้นอยู่กับ
ขนาดและทรัพยากรที่พร้อมใช้งาน SDLC โครงการถูกออกแบบมาให้พวกเขาพัฒนา
ระบบไม่พร้อมใช้งานสำหรับผู้ใช้จนกระทั่งกระบวนการเสร็จสมบูรณ์ ซึ่งสามารถใช้เวลาจาก 6
หลายเดือนถึงสองปี นัยหมายความ ว่า มีโครงการ SDLC เป็น
ความเสี่ยงค่อนข้างสูงสิ้นสุดงบประมาณ และคั่งค้าง หรือไม่เสร็จเลย
ต่อระยะเวลาโครงการ มีแนวโน้มมากขึ้นต้องจะเปลี่ยน — มักจะค่อนข้าง
อย่างมาก — ก่อนส่งระบบเสร็จสมบูรณ์แล้ว จึงไม่พอใจความเมื่อ
ในที่สุดก็ส่ง ต้นทุนของโครงการซอฟต์แวร์ขนาดใหญ่จะฉาวยากถูกต้อง
ประเมิน และขยายเวลาเฟรมซ้ำเติมลักษณะพิเศษนี้ (Jones, 2007 ผู้& Lederer
1992) .
II เอจายล์
จำนวนวิธีการพัฒนาได้รับสูตรการแก้ไขมาก
ของการขับเคลื่อนแผนวิธี ต้นแบบ แอพลิเคชันอย่างรวดเร็วรวมถึง
พัฒนา และแบบเชิงวัตถุการวิเคราะห์และออกแบบ หมู่คนอื่น ๆ หนึ่งที่โดดเด่นโดยเฉพาะอย่างยิ่ง
คลาโซลูชั่นที่ปรากฏขึ้นในกลางปี 1990 มาเรียกซอฟต์แวร์คล่องตัว
พัฒนา ที่เราจะอ้างอิงถึงที่นี่เป็น "วิธีการคล่องตัว" (วิกิพีเดีย 2008a;
Abrahamsson et al., 2002 B. Boehm, 2002 คันนิงแฮม 2001) ขณะที่สุด
เขียน (XP) (เบ็ค 1999) เป็นรู้จักกันดีของวิธีการเหล่านี้ อื่น ๆ เช่น scrum ได้
(Ambler, 2008) และแบบไดนามิกระบบพัฒนาวิธี (DSDM) (Stapleton, 1999)
ค้างเพื่อปรัชญาคล้ายกัน วิธีการพัฒนาซอฟต์แวร์ที่คล่องตัวพร้อมกันคือสี่
คีย์ลักษณะ เค้าร่างในพันธมิตรคล่องตัว "ประกาศซอฟต์แวร์คล่องตัว
พัฒนา" (แถลงการณ์การคล่องตัวพัฒนาซอฟแวร์ http://agilemanifesto.org) . 7
1 บุคคลและการโต้ตอบมากกว่ากระบวนการและเครื่องมือ: ทั่วไป โปรแกรมเมอร์ทำ
ไม่ทำงานแต่ละรายการในของ cubicles อยู่คนเดียวกับคอมพิวเตอร์ ค่อนข้าง งาน
กันอย่างใกล้ชิด (ใน XP จะโปรแกรมเป็นคู่), และตรวจทานงานของผู้อื่นในการ
สูงโต้ตอบสิ่งแวดล้อม
2 ซอฟต์แวร์ทำงานผ่านเอกสารที่ครอบคลุม: การพัฒนาแบบดั้งเดิม
ไม่อาจผลิตซอฟต์แวร์สำหรับหลายเดือน หรือถึงปี หรือสองปี ใช้
ระวังเอกสารเป็นหลักฐานการผลิตหลักและพื้นฐานของ
ความรับผิดชอบ ในความคมชัดความเปรียบต่าง วิธีการคล่องตัวปล่อยซอฟต์แวร์ทำงาน (ว่า
rudimentary มากทีแรก) ในเวลาสองถึงหกสัปดาห์ และการทำงานปกติ
ศูนย์กลางบนนี้ "เอกสารสด"
3 ความร่วมมือลูกค้าผ่านการเจรจาสัญญา: วิธีการคล่องตัวมาก
เน้นลูกค้า (ผู้ใช้) ทำงานร่วมกันตลอดชีวิตของโครงการ XP
แม้รมย์ตัวแทนลูกค้าทางเทคนิคควรจะเป็น งานประจำสมาชิกโครงการสำหรับตัวทั้งอายุ
4 ตอบสนองต่อการเปลี่ยนแปลงตามแผน: คล่องตัววิธียกเลิกย้ำยาว
รอบระยะเวลาของการวิเคราะห์และออกแบบ ซึ่งมักจะใช้เวลาครึ่งหนึ่งของโครงการ SDLC
แทน พวกเขาได้รับเหมาะสมกับการทำงาน ปั่นออกแบบเพิ่มหน่วยงาน (ไม่ใช่แค่เพียง
ต้นแบบ) ทุกสาม หรือสี่สัปดาห์ พวกเขาคาดหวังที่ลูกค้าต้องการ (หรือปรารถนา) จะ
เปลี่ยนความถี่ และอย่างรวดเร็วเปลี่ยนทิศทางเพื่อรองรับลูกค้า
ตามความหมายของชื่อ วิธีการคล่องตัวเน้นการพัฒนาอย่างรวดเร็วและมีความยืดหยุ่นสูง
ผ่านปฏิบัติพิสูจน์ทดสอบขับเคลื่อนการพัฒนาและการ refactoring นั้น แทน
รอบคอบวางออกการออกแบบ คล่องตัววิธีใช้โดยย่อ "timeboxes" ของงานที่เน้นการผลิต 8
ทำงาน ทำทดสอบ rele
Being translated, please wait..
Results (Thai) 2:[Copy]
Copied!
The best of adaptive and predictive methodologies:
Open source software development,
a balance between agility and discipline
Chitu Okoli and Kevin Carillo
(c) 2010 Chitu Okoli
Abstract
Open source software development (OSSD) is a promising alternative for synthesizing agile
and plan-driven (e.g. waterfall) software development methodologies that retains most
benefits of the two approaches. We contrast the traditional systems development life cycle
approach, more recent agile software development methods, and OSSD. We compare the first
two approaches with OSSD, highlighting its synthesis of benefits from both, with unique
benefits of its own, offering solutions to areas where the other methodologies continue to face
difficulties. OSSD is highly responsive to user needs, and draws talent from a global team of
developers. OSSD is a low-risk methodology with potentially high return on investment.
While not appropriate for all applications, especially those where the needed applications are
extremely idiosyncratic to one company, it is nonetheless a valuable asset in an
organization’s portfolio of software development solutions.2
Keywords: Software development methodologies, open source software development, agile
software development, systems development life cycle, waterfall model, extreme
programming.3
As technology constantly reshapes work environments at a dramatically pace, software
development is increasingly subject to conflicting forces due to ever-increasing uncertainty.
On one side, such turmoil in the business environment constrains users to iteratively redefine
their needs whereas on the other side, software development companies search for stable
planning to allocate their resources and to efficiently control software production processes in
order to meet customers’ expectations. To answer both needs, the software development field
has been prolific in introducing innovative methodologies for the last 25 years that can be
arranged in an “adaptive-to-predictive” continuum (Barry W Boehm & Turner, 2004, pp.
165-194). However, only a small minority survived to be used today. Barry Boehm, a major
contributor in the field of software engineering, places the widely-accepted plan-driven and
agile methods on the two extremes of the planning emphasis spectrum. Many real-world
examples argue for and against both methodologies leading to an ideological battle between
fervent proponents of both sides. However, the resolution may not reside in one of the
extremes but rather in a combined approach, as Barry Boehm (2002)suggested:
Although many of their advocates consider the agile and plan-driven software
development methods polar opposites, synthesizing the two can provide developers
with a comprehensive spectrum of tools and options.
Open source software development (OSSD) appears to be a particularly attractive candidate
for a solution, as it combines and integrates the main strengths of agile and plan-driven
methods. Based on Boehm’s analysis, Warstaand Abrahamsson suggested placing the OSS
paradigm between the agile and plan-driven approaches (Abrahamsson, Salo, Ronkainen, & 4
Warsta, 2002). They build on Boehm’s (2002) frameworkthat compares the methodologies at
the organizational level by focusing on developers, customers, requirements, architecture,
refactoring, size, and primary objective.
Rather than the focusing on the stated purpose of each of the three methodological
approaches, we believe it is valuable to contrast agile, open source and plan-driven
methodologies from the pragmatic perspective of their differences in the various stages of a
software development project. We believe that practitioners could benefit from such an
analysis by identifying the key sensitive factors during project development. To present this
analysis, we first review the traditional systems development life cycle (SDLC) approach in
section I. In section II, we then review more recent agile software development methods
(which we will refer to as “agile methods”) that try to resolve some of the ongoing problems,
and then introduce open source software development in section III. The major part of this
article, section IV, follows with a comparison of the first two approaches with OSSD,
highlighting its synthesis of benefits from both, with unique benefits of its own, offering
solutions to areas where the other methodologies continue to face difficulties. We conclude in
section V with a summary of the benefits of OSSD.
I. Plan-driven approach: the SDLC methodology
Among the plan-driven methodologies, the traditional systems development life cycle
(SDLC) is the most widely used conceptual model in project management to describe the
stages involved in an information system development project (Blanchard & Fabrycky, 2006; 5
Jessup, Valacich, & Wade, 2008). The “waterfall” model is the most popular version of the
SDLC, but not the only form (Royce, 1970; Barry W Boehm, 1988; McConnell, 1996). The
SDLC approach involves a number of systematic stages (usually four or five, depending on
how the stages might be categorized) whose goal is to thoroughly understand users’ needs,
craft a solid design to meet these needs, and implement a functional system that satisfactorily
fulfils the needs. The stages are: identification and planning, where the project is justified;
analysis, where user and project needs are understood in detail; design, where a thorough,
detailed specification of the solution is created; and implementation, where the
programming, testing, and installation are executed. Some add maintenance as a fifth stage
that continues for the life of the system (Jessup et al., 2008).
The traditional strengths of this approach have been its ability to manage very large projects,
its attention to quality assurance, and its long-term scalability (assuming a properly executed
design stage). However, it has several well-known shortcomings. First, the SDLC depends on
the assumption that the users’ requirements are understood from the outset, and that they will
not change significantly during the process of development, nor soon afterwards. When these
assumptions do not hold (and they often do not), this approach can result in working systems
that do not correspond to users’ present and actual needs.
Another fundamental problem is simply that the process takes too long from commencement
to when the end-users can begin using the system. While the length of the project depends on
its size and the available resources, SDLC projects are designed such that they developed
systems are not available to users until the process is completed, which could take from 6
several months to a couple of years. This implicitly means that SDLC projects have a
relatively high risk of finishing over budget and behind schedule, or not finishing at all. The
longer the project lasts, the more likely that user needs will change—often quite
dramatically—before the completed system is delivered, thus not satisfying their needs when
eventually delivered. The cost of large software projects is notoriously difficult to accurately
estimate, and extended time frames aggravate this effect (Jones, 2007; Lederer & Prasad,
1992).
II. Agile software development
A number of development methodologies have been formulated to resolve many of these
shortcomings of the plan-driven approach, including prototyping, rapid application
development, and object-oriented analysis and design, among others. One particularly notable
class of solutions that emerged in the mid 1990s has come to be called agile software
development, which we will refer to here as “agile methods” (Wikipedia, 2008a;
Abrahamsson et al., 2002; B. Boehm, 2002; Cunningham, 2001). While Extreme
Programming (XP) (Beck, 1999) is the best known of these methods, others such as Scrum
(Ambler, 2008) and the Dynamic Systems Development Method (DSDM) (Stapleton, 1999)
hold to a similar philosophy. Agile software development methods are characterized by four
key characteristics, outlined in the Agile Alliance’s “Manifesto for Agile Software
Development” (Manifesto for Agile Software Development, http://agilemanifesto.org).7
1. Individuals and interactions over processes and tools: Generally, programmers do
not work individually in their cubicles, alone with their computers. Rather, they work
closely together (in XP they program in pairs), and review each other’s work in a
high-interaction environment.
2. Working software over comprehensive documentation: Traditional development
might not produce any software for several months or even a year or two. It uses
careful documentation as its primary evidence of productivity and basis of
accountability. In sharp contrast, agile methods release working software (though
perhaps very rudimentary at first) in regular periods of two to six weeks, and work is
centred on this “live documentation”.
3. Customer collaboration over contract negotiation: Agile methods heavily
emphasize customer (end user) collaboration throughout the life of the project. XP
even insists that a non-technical customer representative should be a permanent, fulltime member of the project for its entire lifespan.
4. Responding to change over following a plan: Agile methods de-emphasise lengthy
periods of analysis and design, which usually take half the time of an SDLC project.
Rather, they get right to work, churning incrementally functional releases (not just
prototypes) every three or four weeks. They expect customer needs (or desires) to
change often, and rapidly change direction to accommodate the customer.
As their name implies, agile methods emphasize rapid development and high flexibility
through proven practices such as test-driven development and refactoring. Instead of
carefully laid-out designs, agile methods use short “timeboxes” of focused work to produce 8
working, thoroughly tested rele
Being translated, please wait..
Results (Thai) 3:[Copy]
Copied!
ดีที่สุดของความสามารถในการปรับตัวและวิธีการพยากรณ์ : การพัฒนาซอฟต์แวร์เปิดแหล่งที่มา
สมดุลระหว่างความคล่องตัวและวินัย
okoli chitu และเควิน Carillo
( C )

okoli 2010 chitu บทคัดย่อการพัฒนาแหล่งเปิดซอฟต์แวร์ ( OSSD ) เป็นทางเลือกที่สดใสสำหรับการสังเคราะห์ว่องไว
และวางแผนขับเคลื่อน ( เช่นน้ำตก ) วิธีการที่ยังคงพัฒนาซอฟต์แวร์ ประโยชน์ที่สุด
ของทั้งสองวิธีตรงกันข้ามเราใช้วงจร
วงจรการพัฒนาระบบแบบดั้งเดิมมากขึ้นล่าสุดวิธีการพัฒนาซอฟต์แวร์เปรียวและ OSSD . เราเปรียบเทียบก่อน
2 วิธีกับ OSSD เน้นการสังเคราะห์ของประโยชน์จากทั้งสองที่มีประโยชน์เฉพาะ
ของตัวเอง เสนอโซลูชั่นเพื่อพื้นที่ที่วิธีการอื่น ๆยังคงใบหน้า
ความยากลําบาก เพื่อตอบสนองความต้องการของผู้ใช้ OSSD สูง ,และดึงความสามารถจากทีมงานระดับโลกของ
นักพัฒนา เป็นวิธีที่มีความเสี่ยงน้อย ผลตอบแทน OSSD ศักยภาพสูงในการลงทุน
ในขณะที่ไม่เหมาะสมสำหรับการใช้งานทั้งหมด โดยเฉพาะผู้ที่ใช้งานต้องมี
มากมีหนึ่งบริษัทก็ยังเป็นสินทรัพย์ที่มีค่าในองค์กรของพอร์ตโฟลิโอของโซลูชั่น
2
คำสำคัญ : การพัฒนาซอฟต์แวร์วิธีการพัฒนาซอฟต์แวร์ การพัฒนาซอฟต์แวร์เปิดแหล่งที่มาการพัฒนาซอฟต์แวร์เปรียว
, การพัฒนาระบบวงจรชีวิตแบบน้ำตก จัดโปรแกรม
3
เป็นเทคโนโลยีอย่างต่อเนื่อง reshapes สภาพแวดล้อมในการทำงานที่ก้าวอย่างรวดเร็ว , การพัฒนาซอฟต์แวร์
ยิ่งขึ้นภายใต้บังคับของความขัดแย้งเพิ่มมากขึ้น เนื่องจากความไม่แน่นอน
บนด้านหนึ่งเรื่องความวุ่นวายในสภาพแวดล้อมทางธุรกิจที่จำกัดผู้ใช้ซ้ำ redefine
ความต้องการของพวกเขาในขณะที่ด้านอื่น ๆการพัฒนาซอฟต์แวร์ค้นหา บริษัท มั่นคง
การวางแผนจัดสรรทรัพยากรของพวกเขาและมีประสิทธิภาพการควบคุมกระบวนการผลิตซอฟต์แวร์ใน
เพื่อตอบสนองความคาดหวังของลูกค้า เพื่อตอบความต้องการด้านการพัฒนาซอฟต์แวร์
,ได้แนะนำวิธีการใหม่ที่อุดมสมบูรณ์ในช่วง 25 ปีสามารถ
จัดเรียงอยู่ใน " การปรับการคาดการณ์ " ต่อเนื่อง ( Barry W โบม&เทอร์เนอร์ , 2004 , pp .
165-194 ) อย่างไรก็ตามมีเพียงชนกลุ่มน้อยเล็ก ๆรอดที่จะใช้วันนี้ แบรี บีม เป็นผู้สนับสนุนหลัก
ในสาขาวิศวกรรมซอฟต์แวร์ สถานที่ที่ได้รับการยอมรับอย่างกว้างขวางและ
แผนขับเคลื่อนวิธีการเปรียวบนสองขั้วของการวางแผนเน้นสเปกตรัม ตัวอย่างโลกแห่งความจริง
หลายโต้แย้งและต่อต้าน ทั้งวิธีการที่นำไปสู่การต่อสู้ทางอุดมการณ์ระหว่าง
แรงกล้าผู้เสนอของทั้งสองฝ่าย แต่ความละเอียดอาจจะไม่อาศัยอยู่ในหนึ่งของ
สุดขั้ว แต่ในวิธีการรวมเป็น แบรี่ โบม ( 2002 ) :
แนะนำแม้ว่าหลายของพวกเขาพิจารณาเปรียวและสนับสนุนแผนผลักดันซอฟต์แวร์
วิธีการพัฒนาขั้วตรงกันข้าม สังเคราะห์สองสามารถให้นักพัฒนา
กับสเปกตรัมเครื่องมือที่ครอบคลุมและตัวเลือก .
การพัฒนาซอฟต์แวร์โอเพนซอร์ส ( OSSD ) ดูเหมือนจะเป็นผู้สมัครที่น่าสนใจโดยเฉพาะอย่างยิ่ง
สำหรับโซลูชั่นที่ผสมผสานและบูรณาการจุดแข็งหลักของเปรียว และวางแผนขับเคลื่อน
วิธีการ ขึ้นอยู่กับการวิเคราะห์โบม , warstaand abrahamsson แนะนำวาง OSS
กระบวนทัศน์ระหว่างเปรียวและวางแผนขับเคลื่อนแนวทาง ( abrahamsson ซาโล ronkainen & 4 , , ,
warsta , 2002 ) พวกเขาสร้างโบม ( 2002 ) frameworkthat เปรียบเทียบวิธีการที่
องค์การระดับ โดยเน้นพัฒนา ลูกค้า ความต้องการสถาปัตยกรรม
วาริท , ขนาด และวัตถุประสงค์หลัก
มากกว่าเน้นการระบุวัตถุประสงค์ของแต่ละสามวิธีการ
วิธี เราเชื่อว่ามันมีค่าความคมชัดแบบเปิดแหล่งที่มาและวางแผนขับเคลื่อน
วิธีการจากมุมมองในทางปฏิบัติของความแตกต่างของพวกเขาในขั้นตอนต่างๆของ
การพัฒนาซอฟต์แวร์โครงการ เราเชื่อว่าผู้ประกอบการจะได้รับประโยชน์จากเช่น
การวิเคราะห์โดยการระบุคีย์สำคัญปัจจัยในการพัฒนาโครงการ นำเสนอการวิเคราะห์
เรารีวิวแรกแบบวงจรชีวิตของการพัฒนาระบบวิธีการ
ส่วน . ส่วนที่ ii เราแล้วทบทวนล่าสุดว่องไวการพัฒนาซอฟต์แวร์วิธี
( ซึ่งเราจะเรียกว่า " วิธีการ " เปรียว ) ที่พยายามที่จะแก้ไขบางส่วนของปัญหาอย่างต่อเนื่อง
แล้วแนะนำให้เปิดแหล่งซอฟต์แวร์พัฒนาในส่วน III สําคัญส่วนหนึ่งของเรื่องนี้
บทความ มาตรา IV , ตามด้วยการเปรียบเทียบสองวิธีแรกกับ OSSD
เน้นการสังเคราะห์ของ , ประโยชน์จากทั้ง กับประโยชน์ที่เป็นเอกลักษณ์ของตนเอง การเสนอ
โซลูชั่นไปยังพื้นที่ที่วิธีการอื่น ๆยังคงเผชิญความยากลำบาก เราสรุปใน
ส่วน V กับสรุปประโยชน์ของ OSSD วางแผนวิธีการขับเคลื่อน
.
: วิธีการแผนขับเคลื่อนงานของ วิธีการ วงจรชีวิตการพัฒนาระบบแบบดั้งเดิม
( SDLC ) เป็นแนวคิดที่ใช้กันอย่างกว้างขวางมากที่สุดรูปแบบในการบริหารจัดการโครงการอธิบาย
ขั้นตอนที่เกี่ยวข้องในการพัฒนาระบบสารสนเทศโครงการ ( ชาร์ด fabrycky & , 2006 ; 5
Jessup , valacich &เวด , 2551 )" น้ำตก " รุ่นเป็นรุ่นที่นิยมที่สุดของ
งาน แต่ไม่ได้เป็นเพียงแบบฟอร์ม ( Royce , 1970 ; แบร์รี่ W โบม , 1988 ; McConnell , 1996 )
ของวิธีการที่เกี่ยวข้องกับหมายเลขของขั้นตอนอย่างเป็นระบบ ( มักจะสี่หรือห้า ขึ้นอยู่กับว่าขั้นตอนอาจจะแบ่ง
) ที่มีเป้าหมายเพื่อให้เข้าใจความต้องการของผู้ใช้
งานฝีมือการออกแบบที่มั่นคงเพื่อตอบสนองความต้องการเหล่านี้และใช้ระบบการทำงานที่น่าพอใจ
ตอบสนองความต้องการ ขั้นตอน : การระบุและวางแผนที่โครงการเป็นธรรม ;
การวิเคราะห์ที่ผู้ใช้และโครงการต้องมีเข้าใจในรายละเอียด การออกแบบที่รอบคอบ
ข้อมูลรายละเอียดของการแก้ปัญหาคือการสร้าง และการดำเนินงานที่
การเขียนโปรแกรม การทดสอบ และการติดตั้งจะดำเนินการบางเพิ่มการบำรุงรักษาเป็นห้าขั้นตอน
ต่อไปสำหรับชีวิตของระบบ ( Jessup et al . , 2008 ) .
จุดแข็งดั้งเดิมของวิธีการนี้มีความสามารถในการจัดการโครงการขนาดใหญ่มาก
ความสนใจเพื่อประกันคุณภาพ และลดค่าใช้จ่ายในระยะยาว ( สมมติว่าดำเนินการอย่างถูกต้อง
ออกแบบเวที ) อย่างไรก็ตาม , มีหลาย ที่รู้จักกันดี ข้อบกพร่อง แรก , งานขึ้นอยู่กับ
ตามความต้องการของผู้ใช้ได้เข้าใจตั้งแต่เริ่มต้น และพวกเขาจะ
ไม่ได้เปลี่ยนแปลงในระหว่างกระบวนการของการพัฒนา หรือหลังจากนั้น เมื่อสมมติฐานเหล่านี้
ไม่ถือ ( และพวกเขามักจะไม่ ) วิธีการนี้จะส่งผลให้ระบบการทำงาน
ที่ไม่สอดคล้องกับความต้องการที่แท้จริงของผู้ใช้ปัจจุบันและ
.อีกปัญหาพื้นฐานเป็นเพียงกระบวนการที่ใช้เวลานานจากการ
เมื่อผู้ใช้สามารถเริ่มใช้ระบบ ในขณะที่ความยาวของโครงการขึ้นอยู่กับ
ขนาดและทรัพยากรที่มีอยู่ โครงการงานออกแบบเช่นที่พวกเขาพัฒนา
ระบบไม่สามารถใช้ได้กับผู้ใช้จนกว่ากระบวนการจะแล้วเสร็จ ซึ่งอาจใช้เวลาตั้งแต่ 6
หลายเดือนถึงสองปี โดยปริยายหมายความว่าโครงการนี้งานมีความเสี่ยงสูงของการตกแต่ง
ค่อนข้างมากกว่างบประมาณและหลังกำหนด หรือ ไม่ จบ เลย
โครงการกินเวลานาน ยิ่งเป็นโอกาสที่ความต้องการของผู้ใช้จะเปลี่ยนแปลงบ่อยมาก
อย่างรวดเร็วก่อนที่ระบบเสร็จสมบูรณ์แล้วส่งจึงไม่พอใจความต้องการของพวกเขาเมื่อ
ในที่สุดก็คลอดต้นทุนของโครงการซอฟต์แวร์ขนาดใหญ่เป็นอย่างฉาวโฉ่ยากที่จะถูกต้อง
ประมาณการ , และกรอบเวลาขยายาผลนี้ ( Jones , 2007 ; มกราคม 2535 & Prasad ,
)
2 ว่องไวพัฒนาซอฟต์แวร์
หมายเลขของการพัฒนาวิธีการได้รับสูตรเพื่อแก้ปัญหาเหล่านี้มากมาย
ข้อบกพร่องของแผนวิธีการขับเคลื่อน รวมถึงการสร้างต้นแบบการพัฒนาโปรแกรมประยุกต์
อย่างรวดเร็วและ การวิเคราะห์และการออกแบบเชิงวัตถุ , หมู่คนอื่น ๆ . หนึ่งชั้นเรียนโดยเฉพาะอย่างยิ่งเด่น
ของโซลูชั่นที่ออกมาในช่วงกลางทศวรรษที่ 1990 จึงถูกเรียกว่าการพัฒนาซอฟต์แวร์
ว่องไว ซึ่งเราจะเรียกที่นี่ว่า " วิธีการเปรียว " ( วิกิพีเดีย 2008a ;
abrahamsson et al . , 2002 ; B . โบม , 2002 ; คันนิงแฮม , 2001 ) ในขณะที่โปรแกรม extreme
( XP ) ( Beck , 1999 ) เป็นที่รู้จักกันดีที่สุดของวิธีการเหล่านี้คนอื่น ๆเช่น Scrum
( แห่งสวีเดน , 2008 ) และระบบพลวัตการพัฒนาวิธีการ ( dsdm ) ( สเตเปิล , 1999 )
ยึดมั่นปรัชญาที่คล้ายกัน วิธีการพัฒนาซอฟต์แวร์เปรียว มีลักษณะ 4
ลักษณะสําคัญ อธิบายในเปรียวพันธมิตร " แถลงการณ์เพื่อการพัฒนาซอฟต์แวร์เปรียว
" ( แถลงการณ์เพื่อการพัฒนาซอฟต์แวร์เปรียว , http : / / agilemanifesto . org ) 7
1บุคคลและปฏิสัมพันธ์ผ่านกระบวนการและเครื่องมือ : ทั่วไป , โปรแกรมเมอร์ทำ
ไม่ทำงานเป็นรายบุคคลใน cubicles ของพวกเขาไว้กับคอมพิวเตอร์ แต่พวกเขาทำงานอย่างใกล้ชิดร่วมกัน ( ใน XP พวกเขา
( คู่ ) , และตรวจสอบผลงานของกันและกันในสภาพแวดล้อมการโต้ตอบสูง
.
2 ซอฟต์แวร์ที่ทำงานผ่านเอกสารที่ครบวงจร : การพัฒนาแบบดั้งเดิมอาจจะไม่ผลิตใด ๆ ซอฟต์แวร์เป็นเวลาหลายเดือนหรือเป็นปี หรือ สอง ใช้เอกสารเป็นพยานหลักฐานด้วย

และการผลิตพื้นฐานของความรับผิดชอบ ในคมชัดวิธีการ Agile ปล่อยทำงานซอฟต์แวร์ ( แม้ว่า
บางทีมากพื้นฐานที่แรก ) ในช่วงเวลาปกติสองถึงหกสัปดาห์ และงานนี้ " เอกสารที่มีอยู่
.
3การร่วมมือกันกับลูกค้ามากกว่าการต่อรองสัญญา : วิธีเปรียวมาก
เน้นลูกค้า ( ผู้ใช้ ) ความร่วมมือตลอดอายุของโครงการ XP
ยังยืนยันว่าท่านลูกค้าควรตรวจถาวร , fulltime สมาชิกของโครงการของทั้งอายุการใช้งาน .
4 การตอบสนองต่อการเปลี่ยนแปลงไป ตามแผน : เปรียววิธีการเน้นยาว
เดอระยะเวลาของการวิเคราะห์และการออกแบบ ซึ่งมักจะใช้เวลาครึ่งเวลาของงานโครงการ
แต่พวกเขาได้รับสิทธิทำงาน ปั่นแบบเพิ่มหน่วยการทำงานออก ( ไม่ใช่แค่
ต้นแบบ ) ทุกสามหรือสี่สัปดาห์ พวกเขาคาดหวังความต้องการของลูกค้า ( หรือชอบ )

เปลี่ยนบ่อย ๆอย่างรวดเร็วและเปลี่ยนทิศทางเพื่อรองรับลูกค้า .
เป็นชื่อของบางวิธีการ Agile เน้นการพัฒนาอย่างรวดเร็วและความยืดหยุ่นสูง ผ่านการปฏิบัติเช่นการพิสูจน์
ทดสอบขับเคลื่อนการพัฒนาและวาริท . แทน
อย่างระมัดระวัง วางแบบ วิธีการ Agile ใช้สั้น " timeboxes " เน้นงานผลิต 8
ทำงานการทดสอบอย่างละเอียด rele
Being translated, please wait..
 
Other languages
The translation tool support: Afrikaans, Albanian, Amharic, Arabic, Armenian, Azerbaijani, Basque, Belarusian, Bengali, Bosnian, Bulgarian, Catalan, Cebuano, Chichewa, Chinese, Chinese Traditional, Corsican, Croatian, Czech, Danish, Detect language, Dutch, English, Esperanto, Estonian, Filipino, Finnish, French, Frisian, Galician, Georgian, German, Greek, Gujarati, Haitian Creole, Hausa, Hawaiian, Hebrew, Hindi, Hmong, Hungarian, Icelandic, Igbo, Indonesian, Irish, Italian, Japanese, Javanese, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Korean, Kurdish (Kurmanji), Kyrgyz, Lao, Latin, Latvian, Lithuanian, Luxembourgish, Macedonian, Malagasy, Malay, Malayalam, Maltese, Maori, Marathi, Mongolian, Myanmar (Burmese), Nepali, Norwegian, Odia (Oriya), Pashto, Persian, Polish, Portuguese, Punjabi, Romanian, Russian, Samoan, Scots Gaelic, Serbian, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenian, Somali, Spanish, Sundanese, Swahili, Swedish, Tajik, Tamil, Tatar, Telugu, Thai, Turkish, Turkmen, Ukrainian, Urdu, Uyghur, Uzbek, Vietnamese, Welsh, Xhosa, Yiddish, Yoruba, Zulu, Language translation.

Copyright ©2025 I Love Translation. All reserved.

E-mail: