7 تقنيات Soft Skills يجب على كل مطور إكتسابها

7 تقنيات Soft Skills يجب على كل مطور إكتسابها

الكل يخبرك انه لتصبح مطور محترف و ناجح عليك تعلم لغة البرمجة هذه و ذاك، عليك ان تتعلم تقنيات قواعد البيانات و إحتراف مسار الـ Front End و الـ Back End و الـ Full Stack و لما لاتعلم طريقة صناعة البيتزا و صيانة محرك السيارة، لكن لا أحد يخبرك انه يجب عليك تعلم تقنيات الـ Soft Skills، و قد يكون هذا أول مقال يدعوك لتعلم تقنيات الـ Soft Skills بدعوى ان تصير مطور جيد و أفضل. 

ان بعضاً من هذه الدعوات حقا مفيدة و ستفيدك كمطور في تعزيز قدراتك البرمجية، المشكلة هنا تبقى مشكلة أولوية، فأيٌ من هذه التقنيات يجب ان تتعلم أولا؟ و أيها ثانيا؟ و يمكننا إضافة تعلم تقنيات الـ Soft Skills في المركز الثاني بالنسبة للمطور، فهو لا يحتاجها دائما بالضرورة، لكنها ستقوي عوده في البرمجة و التطوير إن كان يجيدها، فهلا غصنا أكثر في هذا الأمر ؟ 

- ما هي الـ Soft Skills ( المهاراة اللينة ) : 

الـ Soft Skills او المهارات اللينة، و هي مهارات لا تمث للمهارات التقنية بصلة، فأنت - كمطور و سنبقي الحال كذلك طيلة هذا المقال - لديك مجموعة من المهارات التقنية مثل التعامل مع قواعد البيانات مثلا، او تجيد إستخدام الـ HTML/CSS بشكل إحترافي و تعتبر مهارات عملية (Practical Skills) مفيدة لك في مجال عملك، بينما الـ Soft Skills هي مهاراة نفسية (Moral skills) تقوم بتعزيز ذاتك في مجال محدد. 
في هذا المقال سنوفر لك مجموعة من هذه القدرات المهمة التي يجب ان يكتسبها أي مطور مع الوقت. 

7 تقنيات Soft Skills يجب على كل مطور إكتسابها

- العمل الجماعي (Teamwork) : 

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

مهارة العمل الجماعي ليست عشوائية، لا يمكنك ان تشتغل ضمن فريق و تلقب نفسك بالشخص الذي يستطيع العمل ضمن فريق بكفاءة، أول الأشياء أولا يجب عليك ان تمتلك إمكانية تحقيق الأهداف في الوقت المطلوب، ان تضم مهارة تحقيق ذلك الهدف بشرح كامل لطريقة تحقيقه من أجل الشخص الآخر الذي سيقوم بدمج المشروع في الأخير، و ان تكون متحملاً للمسؤولية ضمن الفريق بشكل عام و المسؤولية الخاصة بمهمتك (Task) بشكل خاص، ان تتجنب الأعذار و الأسباب و إدعاء ان أشخاص آخرين وسط الفريق أفضل منك سيقومون بالعمل بدلك، او ان تعتقد انك أفضل من الجميع و ستقوم بالعمل بمفردك وسط الفريق. 
منصة Github / Bitbucket مثلا مخصصة بشكل كبير لأولائك الأشخاص الذين يحسنون التعامل وسط الفريق، و مشروع برمجي لن يكتمل إلا بإضافة الكود و المهمات التي تم تقديمها لكل فرد في مشروع واحد ليخرج للعالم. 

- التواصل (Communication) : 

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

- إدارة الوقت (Time Management) : 

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

-  النقطة الأولى تحديد الوقت اللازم بدقة، إن اخبرتك اني اريد منك صناعة صفحة ويب ستخبرني : نعم يمكنني فعل ذلك في يومين، و نعم قد تستطيع فعل ذلك في يومين إن افترضنا ان كل شيئ سيمر بسلام، فهل سيمر كل شيئ بسلام ؟ لا، لذلك عليك ان تحدد الوقت بدقة بالغة، أولا انت لا تشتغل اليوم بأكمله بل ستشتغل فقط 6 ساعات في اليوم مثلا على تلك الصفحة، و ما تحتاج اليه في الحقيقة هو 48 ساعة ( يومين كما قلت سابقا ) من أجل إنهائها، بإفتراض انه في الـ 6 ساعات السابقة ستأخذ إستراحة قد تصل الى 60 دقيقة متفرقة بين كل الساعات الست، أي ان فترة عملك اليومي هي 5 ساعات فقط، و إن قسمنا 48 ساعة على 5 ساعات في اليوم فسنحصل على 10 أيام لإنهاء العمل، بإضافة يوم ( تحسبا لأي شيئ ) فإن المدة اللازمة لصناعة صفحة ويب ليس يومين و إنما 10 أيام، بذلك تعطي لنفسك الوقت الجيد لإنهائها و تخبرك العميل بالوقت المثالي لتسليمه المشروع. 
- اما النقطة الثانية فهي تحديد أوقات إستراحتك بشكل جيد، العمل المستمر قد يرهقك و يؤدي الى تأجيل العمل شيئا فشيئا في كل مرة تجلس أمام الحاسوب، لذلك حاول تقسيم وقت فراغك + وقت الإستراحة + وقت العمل على المشروع بأكمله. 

- الطاقات الإبداعية (Creativity) : 

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

- تقبُل الإنتقادات و محاولة تحسينها : 

ستتعرض للكثير من الهجمات حول برمجيتك، سيقوم الـ Testers بإظهار الكثير من العيوب فيها، فهذه لا تشتغل، و هذا يؤثر على هذا، و هذه إضافية لا يوجد أي هدف منها، و ستحصل على قائمة بكل هذه المشاكل و الإنتقادات في برمجيتك التي صنعتها من الصفر و التي تعتقد أنت انه لا يوجد مثيل لها إطلاقا و لا يوجد مطور يمكنه صناعتها بكل كفاءة، كل هذا قد يفقدك جنونك، و قد تبحث عن ذلك الـ Tester الذي إنتقد برمجيتك و تحاول التلصص به لضربه ضربا مبرحا أيضا !
لحسن الحظ انك تملك المهارة اللينة الخاصة بتقبل الإنتقادات و تحسينها أليس كذلك ؟ لأنك إن لم تفعل فلن يصل أي مشروع تقوم بتطويره الى النهاية إطلاقا، و كل مشاريعك ستكون سليمة من وجهة نظرك، و ركام من الأخطاء من وجهة نظر الآخرين.

- ان تكون صبورا : 

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

- القابلية للتجديد : 

لن نختلف ان التقنيات التي تعلمتها في المدرسة او اكتسبتها في فترة محددة ستدوم للأبد خصوصا في مجال التطوير و البرمجة، فربما أثناء تحرير أسطر هذا المقال قد بزغت مجموعة من مكتبات الجافاسكربت التي أصبحت مطالبا بتعلمها ( مثلا )، لذلك من الـ Soft Skills التي يجب عليك ان تتمتع بها هو عدم التشبث بأي تقنية محددة و ان تكون لديك القابلية لإدراج تقنيات جديدة في كل مرة تبدأ مشروعاً محددا.
لكل مشروع تقنياته الخاصة، فلن تستطيع صناعة  أي شيئ يطلبه العميل بلغة برمجة محددة او تقنية محددة بشكل دائما، قد يسعفك الأمر لبعض الوقت لكنه ليس دائم، بدل ذلك يجب ان تكون لديك القابلية لتعلم أي شيئ جديد بسرعة و كفاءة.

لا يخفى عليك انه يوجد الكثير من المهارات اللينة التي يجب عليك إكتسابها كمطور، لكن أساسها هذه السبعة، فحاول تعلمها و إكتسابها ببطئ أثناء مسيرتك. 

شاركه على :