سؤال

لم أكتب أبدًا مواصفات وظيفية، أفضل القفز إلى التعليمات البرمجية وتصميم الأشياء أثناء تقدمي.لقد كان الأمر جيدًا حتى الآن، ولكن بالنسبة لمشروع شخصي حديث، أكتب بعض المواصفات التي تصف جميع ميزات المنتج، وكيف يجب أن "يعمل" دون الخوض في تفاصيل حول كيفية تنفيذه، وأنا العثور عليها قيمة للغاية.

ما هي أفكارك، هل تكتب المواصفات أم أنك تبدأ للتو في البرمجة والتخطيط أثناء تقدمك، وما هي الممارسة الأفضل؟

هل كانت مفيدة؟

المحلول

إذا كنت في القيادة من منزلك إلى أقرب محل للبقالة، وربما كنت لا تحتاج إلى خريطة. ولكن ...

إذا كنت تقود إلى مكان كنت قط من قبل في دولة أخرى، وربما كنت تفعل.

إذا كنت تتنقل عشوائيا للمتعة القيادة، وربما كنت لا تحتاج إلى خريطة. ولكن ...

إذا كنت تحاول الحصول على مكان ما في الأزياء الأكثر فعالية (تقليل المسافة، وتقليل الوقت، وجعل ثلاث محطات محددة على طول الطريق، وما إلى ذلك) ربما كنت تفعل.

إذا كنت في القيادة من نفسك، ويمكن أن تستغرق وقتا طويلا كما تريد، ووقف أي وقت ترى شيئا للاهتمام أو إعادة النظر في وجهتك أو الطريق، قد لا تحتاج الخريطة. ولكن ...

إذا كنت تقود كجزء من القافلة، وجميعا بحاجة لجعل المواد الغذائية والسكن بين عشية وضحاها يتوقف معا، وتحتاج للوصول معا، وربما كنت تفعل.

إذا كنت تعتقد أنا لا أتحدث عن البرمجة، وربما كنت لا تحتاج إلى المواصفات الفنية، وبطاقات القصة، الرواية، مراكز التأهيل المجتمعي، وما إلى ذلك ولكن ...

إذا كنت تعتقد أنني، قد ترغب في النظر في واحدة على الأقل من أعلاه.

و؛ -)

نصائح أخرى

بالنسبة لشخص "يقفز إلى الكود" و"التصميم [التصاميم] أثناء التنفيذ"، أود أن أقول إن كتابة أي شيء بما في ذلك المواصفات الوظيفية أفضل من أساليبك الحالية.يمكن توفير قدر كبير من الوقت والجهد إذا أخذت الوقت الكافي للتفكير في الأمر وتصميمه قبل أن تبدأ.

  • تساعد المتطلبات في تحديد ما تحتاج إلى تحقيقه.
  • يساعد التصميم في تحديد ما تخطط لتصنيعه.
  • تحدد وثائق المستخدم ما قمت به.

ستجد أن معظم الأماكن لديها بعض الاختلافات في هذه المستندات الثلاثة.يمكن تجميع المواصفات الوظيفية في وثيقة التصميم.

أنصح بالقراءة التطور السريع إذا لم تكن مقتنعا.يمكنك حقًا إنجاز العمل بشكل أسرع إذا أخذت المزيد من الوقت للتخطيط والتصميم.

والقفز "مباشرة إلى رمز" لمشاريع البرمجيات كبيرة سيؤدي بالتأكيد تقريبا إلى فشل (كما immediatley بدءا الطوب يطرح لبناء جسر من شأنه).

والرجال في rel="nofollow 37 إشارات أن أقول إن من الأفضل لكتابة وثيقة قصيرة على الورق من كتابة المواصفات المعقدة. أود أن أقول أن هذا يمكن أن يكون صحيحا لساخرا يصل مواقع جديدة بسرعة (حيث التصميم والفكرة يمكن أن يؤدي أفضل من مخطط جامدة)، ولكن ليس من المقبول دائما في مواقف الحياة الحقيقية أخرى.

ومجرد التفكير في أهمية (القانونية، حتى) وثيقة المواصفات التي وقعها العميل الخاص بك يمكن أن يكون.

ومعنويات ربما هو: أن يكون على المرونة ، أو وخطة مع المواصفات الفنية أو التقنية على بقدر ما تحتاج إليه ، أو وفقا لسيناريو المشروع الخاص بك

.

لالخارقة لمرة واحدة والمرافق الصغيرة، لا تهتم.

ولكن إذا كنت تكتب تطبيق خطيرة، واسع، ولقد طلب الزبائن وليس له الترشح لفترة طويلة، وأنها يجب أن. قراءة عظيم المواد حول هذا الموضوع - انهم بداية جيدة

وأفعل ذلك في كلا الاتجاهين، ولكني تعلمت شيئا من تجارب التنمية المدفوعة باعتبارات ...

وإذا ذهبت إلى الترميز مع خارطة الطريق سوف نصل الى نهاية الرحلة الكثير ملحوظة بشكل أسرع مما كنت سوف إذا كنت مجرد بداية يسير في الطريق دون وجود أي فكرة كيف يتم الانتقال إلى مفترق في الوسط.

وليس لديك لكتابة كل تفاصيل ما كل وظيفة وتنوي القيام به، ولكن تحديد لك الأساسيات بحيث الطريقة أنت تعرف ما يجب أن تحصل على القيام به لجعل كل شيء يعمل بشكل جيد معا.

وكل ما يقال، وكنت بحاجة لكتابة سلسلة من معالجات استثناء أمس وأنا فقط حمامة الحق في دون محاولة المعماري بها على الإطلاق. ربما ينبغي أن نعيد قراءة بلدي المشورة؛)

وماذا الكثير من الناس لا يريدون أن يعترفوا أو يدركون أن تطوير البرمجيات هو الانضباط الهندسية. وهناك الكثير يمكن استخلاصها فيما يتعلق بكيفية التعامل مع الأشياء. رسم ما ذهابك للقيام في تطبيق ليس بالضرورة حيوي على مشاريع صغيرة كما هو الحال عادة أسهل للذهاب بسرعة ذهابا وإصلاح الاخطاء الخاصة بك. كنت لا ترى كم من الوقت يضيع مقارنة مع تدوين ما كان النظام تنوي القيام به أولا.

في الواقع في المشاريع الكبيرة اللازمة لها تقريبا لخريطة الطريق لكيفية عمل النظام وماذا يفعل. يطلق عليه المواصفات الوظيفية اذا صح التعبير، ولكن عادة يكون لديك شيء يمكن أن تظهر لك لماذا الخطوة ب يتبع الخطوة. أعتقد أننا جميعا يمكن أن نفكر أنه حتى على الطاير (أنا بالتأكيد مذنب من هذا أيضا)، ولكن في واقع الأمر يسبب لنا المشاكل. فكر في العودة واسأل نفسك كم مرة واجهت شيئا وقال لنفسك "أنا رجل أتمنى لو كان يظن ذلك في وقت سابق؟" أو أي شخص آخر يرى في ما قمت به، وأظهر لك أنك يمكن أن يكون يستغرق 3 خطوات لإنجاز مهمة حيث كنت أخذت 10.

وضعه على الورق يجبر حقا لكم أن نفكر في ما ذهابك للقيام به. بمجرد أن يكون على الورق انها ليست فكرة غامضة بعد الآن، وبعد ذلك يمكنك أن ننظر إليها وتقييم إذا ما كنت أفكر يجعل حقا معنى. تغيير وثيقة من صفحة واحدة أسهل من تغيير خطوط 5000 من التعليمات البرمجية.

إذا كنت تعمل في XP (أو ما شابه) بيئة، عليك استخدام <م> قصص لتوجيه التنمية جنبا إلى جنب مع الكثير من التجارب وحدة والمدخل useability (لقد شربت في كوول الاسعاف ، أعتقد).

ومع ذلك، هناك منطقة واحدة حيث مطلوب على الاطلاق المواصفات: عندما التنسيق مع فريق خارجي. كان لي مشروع مع شركة تأمين كبرى حيث كنا في حاجة أن يكون هناك اتفاق على السلوكيات برنامج معينة، وبعض جوانب تصميم قاعدة البيانات وعدد من تخطيطات الملف. دون المواصفات، وكنت اسعة مفتوحة للتفسير الإبداعي لما كنا قد وعدت. كان هؤلاء الناس الطيبين - لقد وثقت بهم وأحب العمل معهم. ولكن لا يزال، من دون أن المواصفات كان من مسيرة الموت. مع المواصفات، ويمكنني أن أشير دائما حيث كانت قد انحرفت عن افقت لتخطيط أو حيث انهم كانوا يسألون عن عمل إضافية مخصصة ($$!). إذا كان يعمل مع وجود علاقة شبه عدائية، يمكن المواصفات يخلصك من أسوأ: دعوى قضائية

وأوه نعم، وأنا أتفق مع Kieveli: "القفز الحق في كود" هو تقريبا أبدا فكرة جيدة

وأود أن أقول ذلك تماما "يعتمد" على نوع المشكلة. أنا أميل إلى أسأل نفسي أنا أكتب ذلك لأجل ذلك أو لطبقات أعلى منك. كما أنني قد ناقشت هذا وتقول تجربتي الشخصية، يجب عليك انه يبقى المشروع على الطريق الصحيح مع توقعات (بدلا من الخروج طبعا).

أحب تحليل أي مشكلات غير تافهة بشكل فضفاض على الورق أولاً، بدلاً من القفز إلى البرمجة، لعدد من الأسباب؛

  • الأشياء التي أكتبها على الورق ليس من الضروري أن يتم تجميعها أو أن يكون لها أي معنى على جهاز الكمبيوتر
  • يمكنني العمل على مستويات تعسفية من التجريد على الورق
  • يمكنني إضافة الصور والرسوم البيانية بسهولة حقا
  • يمكنني التفكير في المفهوم وتصحيحه بسرعة كبيرة

إذا كانت المشكلة التي أتعامل معها من المحتمل أن تتطلب قدرًا كبيرًا من الوقت، أو عددًا من الأشخاص الآخرين، فسأكتبها كملخص وظيفي للمواصفات.إذا كنت أتقاضى أجرًا من شخص آخر مقابل تطوير البرنامج، وكان هناك أي احتمال للغموض، فسأضيف تفاصيل إضافية كافية لإزالة هذا الغموض.أود أيضًا استخدام هذه الوثائق كنقطة بداية لتطوير حالات الاختبار الآلي، بمجرد كتابة البرنامج.

وبعبارة أخرى، أكتب ما يكفي من المواصفات الوظيفية لفهم البرنامج الذي أكتبه بنفسي بشكل صحيح، ولحل أي غموض محتمل لأي شخص آخر معني.

وأنا نادرا ما يشعرون بالحاجة لالمواصفات الوظيفية. OTOH أنا دائما المستخدم مسؤولا عن ميزة مكالمة هاتفية، لذلك يمكن الاستعلام دائما لهم لتلبية الاحتياجات الوظيفية كما ذهبت.

للي المواصفات الوظيفية أكثر من أداة سياسية من التقنية. أعتقد بمجرد الانتهاء من المواصفات التي يمكن إلقاء اللوم دائما على المواصفات إذا كنت في وقت لاحق اكتشاف المشاكل مع التنفيذ. ولكن من إلقاء اللوم في الحقيقة لا مصلحة لي، ستظل هناك مشكلة حتى اذا وجدت كبش فداء، ثم أفضل لإعادة النظر في تنفيذ وتحاول أن تفعل ذلك الحق.

وانه من المستحيل تقريبا لكتابة المواصفات جيدة، لأنك حقا لا أعرف ما يكفي من أي مشكلة أو الأدوات أو التغيرات المستقبلية في البيئة لتفعل ذلك الحق.

وهكذا أعتقد أنه أكثر أهمية بكثير للتكيف مع هذا النهج مرونة في التنمية وتخصيص الموارد والوقت ما يكفي لإعادة النظر وريفاكتور كما تذهب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top