02 سبتمبر 2017

برامج إدارة التحكم بالنسخ البرمجية

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

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

ومن اشهر هذه البرامج (لاحظ أني اتكلم عن التحكم بالكود وليس المشروع ككل)
  1. Git
  2. Subversion
  3. TFVC
وتصنف برامج التحكم بالنسخ عن طريق آلية التخزين إلى قسمين رئيسيين
  • برامج الحفظ المركزي :والمقصود به أن تحفظ الأكواد ويتحكم بإدارتها من سيرفر رئيسي وهي مناسبة للتحكم بعمل المبرمجين ضمن المنظمة وهي غالبا مكلفة وتحتوي على مميزات أكثر تتيح ادارة المشروع البرمجي بأكمله مثل TFVC.
  • برامج الحفظ الغير مركزية: وهي غالبا مفتوحة المصدر وتعطي للمبرمج حرية اكبر في التعديل على كود دون الرجوع لأحد مثل Git.
 تحياتي

13 سبتمبر 2016

مخطط السبب والأثر

           

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

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

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

طريقة استخدامها:
تجتمع المجموعة المعنية لبحث المشكلة ويقوم مدير المجموع بعمل رسمه على شكل عظم السمكة (كما في الشكل) ويضع المشكلة في رأس شكل السمكة ويحدد تصنيفات عامة لهذه المشكلة ومن كل تصنيف تحدد المجموعة عن طريق العصف الذهني مسببات رئيسية لظهور هذه المشكلة بناء على كل صنف.
ومن المسببات الرئيسية تبحث المجموعة عن مسببات فرعية لكل سبب رئيسي ويمكن ان تتعمق المجموعة اكثر في المسبب الفرعي وهكذاحتى يصلون إلى عدة مسببات اساسية تشكل اصل المشكلة عن طريق تقييم كل مشكلة ومناقشتها في الجلسة.
لاحظ أن هناك عدة تصنيفات شهيرة تستخدم عادة في هذا الأسلوب لعل اشهرها  (The 5 Ms) وهي تستخدم في مشاكل التصنيع واتت من الحروف الأولى للتصنيفات التالية (Machine,Method,Material,Man Power,Measurement)
 و  (The 8 Ps) وتستخدم لبحث مشاكل التسويق واتت من الحروف الأولى للتصنيفات التالية
(Product,Price,Place,Promotion,People,Process,Physical Evidence)
  و (The 4 Ss) وستخدم للبحث في مشاكل الخدمات واتت للتصنيفات التالية:(Surroundings,Suppliers,Systems,Skills)

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


تحياتي

الادوات السبعة لضبط الجودة


اي عملية داخل المنظمة مهما كانت تحتاج إلى متابعة لمراقبة اداءها وتحسين مخرجاتها والعملية التي لا يمكن قياسها لا يمكن تقويمها وتطويرها.من هذا المنطلق تنبع اهمية معرفة طرق وادوات ادارة الجودة.
ولعل من اشهر هذه الادوات ما تعرف بالادوات السبعة لضبط الجودة وهي:
  1. مخطط السبب والأثر: طريقة تستخدم لمعرفة الاسباب الحقيقية للمشكلة.
  2. مخطط باريتو: تمثيل بياني لتحديد المشكلة الأكثر تأثير على العملية.  
  3. خرائط التدفق: عبارة عن عرض لتسلسل العملية للبحث عن الخلل وتحسين الاداء. 
  4. قوائم الاختبار: عبارة عن قائمة بالمشكلات لمراقبتها وتحديد تأثيرها وهي عادة ترتبط بالادوات الأخرى.
  5. المدرج التكراري: هي تمثيل بياني يعرض البيانات العددية (ارقام) منظمة في فئات متساوية
  6. خرائط المراقبة:  اداة تستخدم لدراسة تغير الاجراء مع الزمن (تمثيل احصائي)              
  7. مخطط الانتشار:  وهي ثميل بياني يبين العلاقة بين المشاكل.

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

تحياتي 

07 سبتمبر 2016

محلل الاعمال ... نعم الصديق

لم اكتب هنا منذ فترة طويلة ربما لانشغالنا في امور اخرى وربما لأن الكتابة في المدونات لا تناسبنا.
لكن اشعر في الرغبة للكتابة حول وظيفة محلل الأعمال (Business Analyst) لأنني رأيتها عامل مهم في نجاح الكثير من المشاريع التي عملت فيها وفشل البعض الأخر.

فانطلاقاّ من مبدأ أن تقنية المعلومات مجرد وسيلة لتسهيل اعمال المنظمة وليست موجها لها نبع دور محلل الأعمال. حيث عادة ما تواجه المنظمة مشكلة وتعلم أن حل تقنيا سيساعدها لكنها تفشل في الحصول على الحل الملائم لها لعدم وجود الشخص القادر على ترجمة هذه المشكلة تقنيا. ولا يخفى عليكم أن كثير من الأنظمة المستخدمة في الكثير من المنظمات عبارة عن انظمة جاهزة للاستخدام (Off-the-shelf System) مثل انظمة ERP و CRM وغيرها التي لاتحتاج سوى التأكد من هل انها ملائمة لعمل المنظمة ام لا. ومن الأمور التي كانت تغيظني في السابق هي انتاج انظمة لا يستخدمها أحد أو يستخدمها من لم تصمم له بالأصل ويحكم عليها بالفشل ومع وجود محلل الأعمال اصبحت متأكد انها ستصل للمستخدم المناسب.
  فمحلل الأعمال هو الشخص الذي يمثل حلقة الوصل بين  اعمال المنظمة وتقنية المعلومات. وهو الشخص الذي يملك اهم مهارات التفكير وحل المشاكل التي تواجه المنظمة فوظيفته تطلب اتقان هذه المهارات لينجح.فهو من يتقصى اهداف المشروع، ويجمع المعلومات اللازمة ، ويصنف المشاكل ، ويبحث عن الحلول لها ويقترح الحل المناسب. ومن المناسب هنا ذكر أنه لا يتطلب أن يكون محلل الأعمال ذو خلفية تقنية لينجح في مهامه.
 وهذا مدخل لموضوع آخر وهو الفرق بين مهام محلل الأعمال ومهام محلل الأنظمة (Systems Analyst) ويمكننا تلخيص الفرق أن محلل الأعمال يظهر في بداية اي مشروع او مبادرة ويقوم بتقديم الحل المناسب وتحديد المتطلبات (Requirements) لهذا الحل. اما محلل النظام فيظهر بعد ذلك ويبدأ عمله من المتطلبات التقنية فقط والتي يحتاجها لتوجيه فريق التقنية لانتاج الحل التقني فقط لذلك يجب أن يكون محلل الأنظمة ذو خلفية تقنية.

 
ومن الجدير بالذكر أن هناك شهادات تقدم للعاملين في هذا المجال ولعل اشهرها PMI-PBA و CBAP .

تحياتي

12 مايو 2011

ماذا يعني شراء مايكروسوفت لسكايب

صفقة استحواذ مايكروسوفت على سكايب تجعل مستقبل إجراء الاتصالات الصوتية والمرئية عن طريق الانترنت بيد عملاق البرمجيات مايكروسوفت.
لم تقدم مايكروسوفت على هذه الخطوه الا بدراستها للامور التي ستستفيد منها بشكل كبير ومؤثر لمنتجاتها الموجوده الآن حيث من المرجح أن تتعزز مكانة مايكروسوفت في المجالات التاليه:
1-أنظمة المؤتمرات المرئية والصوتيه والتكامل مع برامج مايكروسوفت المختلفه وتقديم حلول للمطورين بتضمين هذه الخاصيه في انظمتهم المختلفه.
2-تطوير بريد الهوتميل وتضمين مميزات الاتصال فيه التي ستتفوق على ما هو موجود في بريد الجيميل.
3-المساهمه في تطوير ويندزفون الذي لم يصل إلى الأن لمرحلة منافسة الاندرويد والايفون.

ومن المعلوم ان مستخدمي السكايب يتجاوز 663 مليون مستخدم مما يشكل شبكه اجتماعيه ضخمه قد تستفيد منها مايكروسوفت في تحسين وضعها في هذا المجال.

تحياتي...

24 فبراير 2011

تسرب المعلومات

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

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

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

3- الثقه المفرطه بالناس:
هناك من يعطي ثقه عمياء بالعاملين معه لنقل بيانات ومعلومات سريه يفترض أن يقوم بتسليمها بنفسه وبأشرافه.
وهناك من يشرك بعض الناس خاصة بالايميلات عندما يضعهم ضمن قائمة المراسله ويعرض لهم بعض البيانات المفترض أن تكون خاصه.

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

وتذكر دائما أن الآله ليست دائما هي السبب بالأخفاق بل سببها هو الأنسان الذي صممها أو صنعها أو استخدمها.
تحياتي :)






14 فبراير 2011

قواعد البيانات والبرمجه

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

وهذه بعض النصائح من الخبراء التي ارجو الاهتمام بها اثناء تصميم قواعد البيانات:

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

2- اهتم بمفاتيح الجداول وعلاقاتها:
مفتاح الاساس (Primary key) من اهم عناصر قاعدة البيانات اهتم باختيارها وتنظيمها وضبط العلاقات بها.
لا تكن عشوائي وتضع حقول كمفاتيح وتضطر لتغييرها لانك ادركت لاحقا انها لا تفي بالغرض وتضطر لتغيير تصميم قاعدة البيانات ككل.

3- اهتم بتسوية قاعدة البيانات بعقلانيه:
المصطلح بالانجليزي (Database normalization) وهي بساطه عملية تنظيم البيانات في قاعدة البيانات للحد من تكرارها في اكثر من مكان مما يقلل حجمها وينظم عمليات الاضافه والحذف والتعديل.
وتساهم هذه العمليه ايضا بتسريع استخراج النتائج من قاعدة البيانات لكن لا تبالغ كثيرا وتقوم بانتاج الكثير من الجداول التي قد تبطي الاداء وتصعب من فهم قاعدة البيانات.

4-اهتم بالفهرسه للجداول:
الفهرسه (indexing) من الامور البسيطه التي تسرع اداء قاعدة البيانات احرص على القيام بها وتصميم الجداول بطريقه تجعل فهرستها ذو فائده عظيمه.


5-كن تقليدي وواضح وقلل الفلسفه عند البرمجه:
هناك بعض المبرمجين من المهاره أنه يستطيع أن يختصر الكثير من العمليات التي تتطلب تعامل واضح مع قاعدة البيانات في بعض السطور ويقوم بالغاء دور قاعدة البيانات والعلاقه بين الجداول فيها.
اياك أن تفعل ذلك وتتجاوز العلاقات بين الجداول فهناك من سيأتي بعدك اقل مهاره منك فلا تصعب حياته لترضي غرورك كن واضح واتبع طريقه معينه وواضحه للكل.

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

تحياتي،،