العودة إلى المجتمع

لا تكن منتجًا أكثر من اللازم!

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

شاهد على YouTube
المدة 50دقيقة

Jonathan: مرحبًا وأهلًا بكم في بودكاست Exercism. اسمي Jonathan، ويسعدني أن أكون مضيفكم اليوم. يرافقني Franziska، وهي إحدى المشرفين على مساري Go وJavaScript. نحن محظوظون جدًا بوجود Franziska ضمن Exercism، وهي مشاركة فيه منذ عدة سنوات. لذا إن كنت من روّاد المنصة، فربما صادفت Franziska، سواء في المجموعات التعليمية أو في مساري Go وJavaScript. إذن Franziska، أهلًا وسهلًا بك اليوم. شكرًا جزيلًا على انضمامك إلينا. سأدخل في الموضوع مباشرة وأسألك: كيف وصلتِ إلى ما أنت عليه الآن؟

Franziska: أجل. حسنًا. أنا Franziska. أنا June، أو June Dev كما يعرفونني على الإنترنت. أعيش حاليًا قرب فرانكفورت في ألمانيا، خلف حدود المدينة مباشرة، في ضاحية صغيرة. وقد بدأت حديثًا عملًا جديدًا في Atlassian. Atlassian هي الشركة التي تقف وراء كثير من الأدوات المحبوبة أو المكروهة مثل Trello وJira وConfluence. أجل، وما أفعله هناك هو تطوير أداة جديدة تساعد مديري المنتجات في عملهم. لأن Jira تركّز على المطوّرين، لكنها ليست مناسبة لما يحتاج مديرو المنتجات إلى فعله، مثل ترتيب الأولويات وما شابه. لذلك نبني شيئًا مخصصًا لهم. أنا معجبة بلغة Go، أحبها فعلًا. والـbackend مبني بلغة Go. لذا حين رأيت إعلان الوظيفة قلت: هذا رائع أنهم يفعلون ذلك. تقدمت بطلب للوظيفة وحصلت عليها. حتى الآن مضى 30 يومًا فقط، لا أعرف بالضبط، لكنها كانت تجربة جيدة. وحين كنت طفلة، كنت مهتمة دائمًا بأمور التقنية وبالعلوم الطبيعية والخيال العلمي، وكنت من عشّاق Star Trek الكبار، وكل هذه الأشياء. واكتشفت أنني كنت جيدة في الرياضيات والفيزياء في المدرسة. في ذلك الوقت كان كثيرون يدرسون علوم الحاسوب، وكانوا يقولون لنا دائمًا ألّا ندرس ما يدرسه الآخرون، لأنه سيكون هناك عدد كبير جدًا من هؤلاء لاحقًا، فقلت في نفسي: حسنًا، ربما لا ينبغي أن أدرس علوم الحاسوب لأنه سيكون هناك الكثير منهم. على أي حال، فكرت: حسنًا، لنفعل شيئًا مشابهًا. فانتهى بي الأمر بدراسة الفيزياء، وقد أحببتها كثيرًا في المدرسة. ودرست علوم الحاسوب كمادة ثانوية إلى حد ما، فحضرت بعض المقررات، لكن ليس بقدر الآخرين. واكتشفت أنك تصل إلى نقطة تحتاج فيها إلى التفكير: حسنًا، ماذا سأفعل لبقية حياتي؟ كيف سأكسب رزقي من شيء أحب فعله؟ وأدركت أن جزء البرمجة هذا كان في الواقع الجزء الذي أحببته أكثر من كل ما درسته، وأنني كنت جيدة فيه. وأردت أن أفعل المزيد منه. وهو أيضًا مجال يدفع الفواتير. لذا فكرت: كيف يمكنني الحصول على وظيفة في هذا المجال دون أن أملك شهادة تقليدية في علوم الحاسوب في تلك المرحلة؟ والأمر الآخر أنه في ذلك الوقت لم أكن أريد أن أصبح مطوّرة C أو مطوّرة Java، من ذلك النوع القديم الطراز، تكتب الكود في مكان ما خلف أنظمة بنكية. فكرت: كيف أتعلم الأشياء الحديثة، الإنترنت والويب؟ أريد أن أبني شيئًا لذلك. ثم أخبرني صديق أن هناك ما يسمى بمعسكرات تدريبية لتطوير الويب، حيث يمكنك الذهاب إلى مكان ما لمدة ثلاثة أشهر وسيعلّمونك الأشياء الجديدة الرائعة.

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

Jonathan: هو ما يدير كل شيء.

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

Jonathan: وهي ثيمة شائعة إلى حد كبير: يسجّل الناس لتعلّم البرمجة، ثم تكون الجوانب المحيطة، جوانب الفريق، هي ما لا يتوقعه الناس أن يكون المشكلة أو التحدي. فيبدو أنه أمر شائع إلى حد ما. آسف.

Franziska: أجل، أجل، بالتأكيد. وفي البداية تبالغ في تقدير الجانب التقني. تفكر: هذه الوظيفة فيها بالضبط التقنية التي أريد العمل بها، إذن سيكون كل شيء على ما يرام. لكن في الواقع، جانب الفريق يكاد يكون أهم من التقنية الدقيقة التي تعمل بها. أجل. ثم بعد سنتين، كان صديق لي يشغل منصب CTO في شركة أخرى هنا في فرانكفورت. قال إنهم يريدون أيضًا تحويل منظومتهم التقنية وبناء شيء جديد، لكنهم لا يريدون استخدام Node.js، بل يريدون الانتقال إلى Go، وقد قرّروا ذلك لأسباب ما. وقال إن بإمكاني الانضمام إليهم. لكن سيكون عليّ تعلّم Go بالطبع. فقلت إن لم يكن لديك مانع في أن آخذ بعض الوقت في البداية لتعلّمها، فأنا مستعدة. نظرت في اللغة قليلًا وبدت رائعة. فغيّرت الشركة. وفي المكان الجديد كان الفريق رائعًا حقًا. كان الأمر فعلًا هكذا: إذا كنت تناقش المدير التنفيذي وكانت حجتك أقوى، كان ذلك يُلاحظ ويتفاعل الناس معه. وكان العمل معهم لطيفًا حقًا، وكان الناس مثيرين للاهتمام وما شابه. فبقيت هناك خمس سنوات. بنيت كثيرًا من خدمات النمو، وكتبت أيضًا كثيرًا من الوثائق والمفاهيم، وساعدت في تعريف مطوّرين آخرين بلغة Go، وقمت أيضًا ببعض أعمال الـfrontend وما شابه. لكن بعد خمس سنوات تبدأ في البحث عن تحدٍّ جديد، وما دفعني أيضًا للبحث عن وظيفة جديدة كان وضع كوفيد. لاحظت أنني كنت أعمل من المنزل على أي حال، وربما أذهب إلى المكتب مرة واحدة في الأسبوع. ففكرت: هناك كثير من الوظائف عن بُعد بالكامل. ربما يمكنني الحصول على شيء رائع جدًا في شركة أكبر. فحين أعمل من المنزل على أي حال، يمكنني أن أعمل لتلك الشركة الأكبر والأروع. وهكذا، بينما كنت أعمل، وجدت هذه الوظيفة في Atlassian.

Jonathan: إذن أظن أن سؤالي كان: هل فتحت الجائحة كلها أمامك فكرة أن هناك ربما أكثر من فرانكفورت ومشهد الشركات الناشئة فيها؟ لأنني كنت سأسأل: كيف كان مشهد الشركات الناشئة في فرانكفورت كمكان؟

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

Jonathan: لا، بالتأكيد. وهل هناك لغات معينة تقولين إن فرانكفورت تركّز عليها؟ من الواضح أن التقنية المالية وما شابه، واللغات التي تقوم عليها هذه الأمور هي على الأرجح أكثر تركيزًا، أليس كذلك؟ فهل تشعرين أنك نوع نادر إلى حد ما كمطوّرة Go في فرانكفورت؟ أم أن العدد يتزايد؟ كيف يبدو ذلك في نظرك؟

Franziska: أجل، يصعب الآن تحديد ما إذا كان العدد يتزايد أم لا، لأنه لم تكن هناك لقاءات كثيرة وما شابه بسبب كوفيد، أليس كذلك؟ فيصعب حاليًا معرفة ما إذا كان عدد الحاضرين إلى اللقاءات يتزايد بمرور الوقت. أظن أن هناك نشاطًا أكبر بكثير في مجال Java مثلًا. لذا يصعب قليلًا تحديد الوضع بدقة، لكن مثلًا JavaScript لا تشكّل عادة مشكلة كبيرة في تجميع مجتمع، لأن الجميع لديهم نوع من أعمال الـfrontend في مكان ما. فكان النشاط في عالم الـfrontend أكبر عادة من النشاط في الـbackend.

Jonathan: وهل، كما أفترض، حين بدأتِ البرمجة وذهبت إلى المعسكر التدريبي، كان لا بد أن يكون لديكِ جانب من الـfrontend، اطّلعتِ عليه قليلًا، والآن أصبح تركيزك أكبر على الـbackend؟ لماذا تفضلين الـbackend على الـfrontend؟ أم أن هذا مجرد افتراض مني؟

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

Jonathan: ربما أنتظر حتى تقرّري أنتِ متى يظهر ذلك الإطار ثم أنضم إليكِ، لأنني حين أنظر إلى أطر العمل المبنية على JavaScript، فأنا جديد في كل معنى الكلمة. أحاول الآن تعلّم Go وأستمتع بذلك. لكن حتى المفاهيم والنموذج الذهني الذي عليك امتلاكه يمثّل عالمًا جديدًا بأسره. وأردت أن أسأل كيف قطعتِ المسافة من تعلّم JavaScript حين بدأتِ البرمجة إلى تعلّم Go لاحقًا؟ لأنك تجعلين الأمر يبدو عملية مباشرة إلى حد كبير: حسنًا، من JavaScript إلى Go. لكن كيف كان ذلك؟ ماذا فعلتِ للانتقال؟

Franziska: أجل، سؤال جيد. هناك أمر مهم هنا: JavaScript لم تكن لغتي الوحيدة، أليس كذلك؟ ففي الجامعة لم أتعمّق في لغات كثيرة، لكنني تعلمت C، وتعلمت Java، وتعلمت C++، وتعلمت لغات مثل Scala وبعض هذه اللغات الغريبة. فبالنسبة لي كانت Java بالفعل لغتي الخامسة أو نحو ذلك، ثم كانت Go لغتي السادسة. فمثلًا، كانت Go تحمل كل تلك الأمور التي سمعتِ عنها مثل المؤشرات وما شابه، ولو كنت قادمًا من JavaScript وحدها لكان ذلك شيئًا جديدًا تمامًا وكان عليّ أن أتعلم ما هذه الأمور. لكن بوجود كل هذه اللغات الأخرى في خلفيتي، كنت أعرف ذلك مسبقًا من C وC++ وما شابه. فاستندت إلى كثير مما تعلمته سابقًا في الجامعة، وهذا جعل الدخول إليها سهلًا حقًا. والأمر الآخر الذي يساعد في Go أنها لغة بسيطة إلى حد كبير. فليس فيها كثير من الكلمات المفتاحية، ولا كثير من التراكيب التي يمكنك بناؤها. ويمكنك إنجازها بسرعة نسبيًا. فأنا عادة أقول: اذهب إلى الجولة الرسمية، على الموقع أو أيًا كان، ويمكنك إنهاؤها في أسبوعين أو ثلاثة. وتحصل على فهم متين. أما مع JavaScript فسيكون ذلك مستحيلًا، فأنت تحتاج وقتًا أطول بكثير لمجرد الحصول على فهم متين للأساسيات، ثم يبقى هناك الكثير لتتعلمه. فلغة الوصول تلك ساعدتني كثيرًا أيضًا في جعل الانتقال سهلًا.

Jonathan: حسنًا. الآن أنتِ تعملين في Atlassian، وقد ذكرتِ قليلًا التداخل بين المنتجات والتقنية وكل ذلك. وقلتِ إن التقنية المالية لا تمنحك الكثير فعلًا، ولم تكن مثيرة بشكل خاص بالنسبة لك. فهل تقولين إن مجال المنتجات والتفاعل بين التقنية والمنتج مجال تستمتعين به حقًا؟ أو ما هو شغفك تحديدًا في المجال التقني، إن أردتِ اختصاره؟ أعلم أن هذا سؤال كبير جدًا، لكن هل تخبرينا قليلًا عن ذلك؟

Franziska: أجل، هناك أنواع مختلفة من المجالات أو المواضيع التي تهمّني. الأمر لا يقتصر على مكان عملي الآن، فمثلًا يعجبني كثير من الأمور في منتجات المستهلك. فهناك شركات مثل Hello Fresh تفعل أشياء رائعة كثيرة. وتفعل أيضًا أمورًا رائعة متعلقة بالتقنية، أو هناك الكثير في مجال التعليم مثل Exercism وما شابه. ثم هناك مجال آخر يتعلق بأدوات المطوّرين أو أدوات الفرق عمومًا. فهناك عدة مجالات، وهذا كان من الأمور التي فكرت فيها أن مساعدة الناس في هذا منطقية جدًا. وفيما يخص إدارة المنتج تحديدًا، يمكنني أن أروي هذه الطرفة عن Jeremy، وكذلك مديري التنفيذي في شركتي السابقة: أخبرته عن هذه الوظيفة الجديدة وما سأعمل عليه، فقال لي نفس ما قاله Jeremy مؤسس Exercism. قال لي الشيء نفسه بالضبط: هل اخترتِ هذه الوظيفة لأنك كنتِ محبطة من مهاراتي في إدارة المنتج؟ وهذا كله يخبرك أن إدارة المنتج وتحسينها كان دائمًا شيئًا شغوفة به. لأن الحقيقة أنه كمطوّر يمكنك كتابة أفضل كود على الإطلاق. لكن إن كنت تكتب الشيء الخطأ، إن كنت تبني الشيء الخطأ، فكل ذلك بلا طائل. فإن لم يقم مدير منتجك بعمله جيدًا في اكتشاف الأشياء الصحيحة التي ينبغي أن تبنيها، فقد لا يستخدم أحد ما بنيته أبدًا، لأنهم لم يحللوا السوق جيدًا، ولم يرتّبوا الأولويات بشكل جيد وما شابه. وقد عشت ذلك في وظائفي السابقة. فقد بنيت أشياء كثيرة لم ترَ النور أبدًا لأنه لم تكن هناك عملية جيدة لترتيب الأولويات. ولهذا أظن أن تحسين مجال إدارة المنتج عمومًا يجعل حياة المطوّرين حول العالم أفضل بكثير، لأنهم حينها يستطيعون بناء الأشياء الصحيحة وخلق قيمة حقيقية، لا بناء شيء ينتهي به الأمر في سلة المهملات أو لا يراه المستخدمون أبدًا.

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

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

Jonathan: يبدو ذلك نهجًا أكثر تكاملًا بهذا المعنى. وهذا يقودني إلى فكرة أخرى هنا، وهي أنه غالبًا

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

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

Franziska: أجل، لطالما بنيت منتجات خاصة. لم أعمل أبدًا في وكالات.

Jonathan: أجل. أمور الوكالات كابوس، لأنها المكان الذي يدقق فيه الجميع في كل ساعة تطوير أو ما شابه، فيقولون: لكنني لا أفهم، لماذا يكلّفني هذا الزر $400؟ وأنت أردت نقله من هنا إلى هنا فقط، وكان ذلك إعادة بناء الـbackend بالكامل. لذا أردت أن أسألك سؤالًا طرحناه على كثيرين في بودكاستاتنا وبثوثنا المباشرة. وهو هذا المفهوم كله: التلة التي تموتين عليها، أو الشيء الذي تدافعين عنه طوال حياتك حين يتعلق الأمر برأي أو بالتقنية. لا نريد أن نقول إن هذا هو الرأي الذي يجب أن تتبنّاه، بل بالأحرى: ما القيمة أو الرأي الواحد الذي تقولين إنه محوري تمامًا بالنسبة لكِ وتحبين أن تراه في المجال التقني كله؟ إنه سؤال واسع إلى حد ما، لكن هل هناك شيء واحد تدافعين عنه بقوة في التقنية؟

Franziska: ظننت أنك ستجعل الأمر أكثر خفة. أردت أن أكتفي بالرأي الخفيف غير الشائع. هل هذا مناسب أيضًا؟

Jonathan: أجل، بالتأكيد.

Franziska: حسنًا، ليس لديّ الكثير من التلال الضخمة التي أموت عليها. لكن من الأمور التي أشعر بها بقوة أن كثيرًا من الناس يقترحون عليك تحسين بيئة تطويرك الشخصية، وأظن أن ذلك مبالغ في تقديره في الغالب. فيقول لك الناس: عليك أن تتعلم Vim لأنك حينها لن تمدّ يدك إلى الفأرة أبدًا، وهذا رائع وما شابه. ويصدّق الناس ذلك حين يكونون جددًا في المجال. ثم يقضون سنة في تعلّم كل الاختصارات السحرية وما شابه. ثم في النهاية، لا أعرف، يوفّرون يومًا واحدًا في السنة أو نحو ذلك. فتلك السنة من العناء لم تُثمر. وهناك كثير من هذه الأمور، فيقول لك الناس إن عليك أن تُعدّ كل أسماءك المستعارة للطرفية في ملفات dot لديك، ويقولون إن عليك أن تعرف كل اختصارات لوحة المفاتيح وما شابه، فتقضي وقتًا طويلًا في تعلّم هذه الأشياء، لكنك توفّر القليل فقط. وأظن ما يحدث هنا أن الناس يبالغون في تقدير الوقت الذي تقضيه في الكتابة في عملك. كما ذكرنا سابقًا، جزء كبير من العمل هو أيضًا التواصل. وجزء كبير من العمل هو في الواقع التفكير. ولا يبقى من يومك إلا قدر محدود فعليًا للكتابة، كتابة الكود أو الأوامر وما شابه. فكثير من الناس يحسّنون هذا الجزء الصغير جدًا من اليوم. وفي رأيي، إن كانت هذه هوايتك فاذهب وافعلها. أو إن كان لذلك قيمة مشابهة بالنسبة لك. إن كنت مهندس موثوقية المواقع (SRE)، وتخترق الخوادم وما شابه، فقد يكون من المنطقي أن تعرف Vim، لأنه لا يمكنك فتح واجهة رسومية. أما إن لم تكن بحاجة إليه فلا تقلق بشأنه، واستخدم ما تشعر معه بالراحة. ومثلًا بخصوص الاختصارات، أقول دائمًا: معظم الواجهات الرسومية تعرض لك الاختصار بجانب الشيء الذي تنقر عليه. فإن كنت تنقر على الشيء خمس مرات في اليوم، حسنًا، فقد يكون من المنطقي أن تتذكّر، ومثله كل خمس دقائق، اختصار الحفظ إن كنت تنقر عليه طوال الوقت. وإن لم يكن كذلك، فابقَ سعيدًا في واجهتك الرسومية وافعل ما تفعله، وأنفق الوقت بدلًا من ذلك على تحسين مهاراتك البرمجية الفعلية. أنجز بعض التمارين أو ما شابه. تعلّم لغة جديدة. أيًا كان. لكن هذا شيء أحاول دائمًا أن أقوله للمطوّرين الجدد: لا تدع هؤلاء الناس الذين يقولون إن عليك استخدام أحد هذه المحررات العتيقة وتحسين إنتاجيتك هناك يخيفونك.

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

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

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

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

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

Franziska: وهذه أيضًا مسألة يذكرها كثيرون على Exercism: فكثيرون لا يواجهون صعوبة كبيرة في فهم اللغة والبنية، لكن الأمر الأكبر، كيف أحل هذه المشكلة العامة، هو ما يواجهون فيه صعوبة. وحاولنا قليلًا أن نوفر بعض الوثائق حول هذا أيضًا، حيث نقول: هذا مورد جيد لتعلّم التفكير كالمبرمجين وما شابه. لكن أجل، ربما يمكننا أيضًا أن نفعل ما هو أفضل في هذا الجانب.

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

Franziska: آه أجل، فكرت في هذا قليلًا، وأظن أن هناك لحظة اتضح فيها الأمر. لكن دعني أبدأ. لم يتضح الأمر من البداية، إن كان ذلك مقبولًا. حين كنت مراهقة، كان لديّ واحد من تلك الحواسيب المحمولة اللعبة الصغيرة التي كانت تحتوي على بعض الألعاب، وكانت فيها أيضًا ميزة تتيح لك البرمجة بلغة BASIC. فمرّ جدّي وبدأ، كما يبدأ الجميع، ببرمجة تلك البطاقات المثقّبة على ما أظن. كان دائمًا مولعًا بالتقنية، وقال: رائع أنك تستطيعين البرمجة هنا. وأراد أن يريني أن البرمجة شيء رائع. فبدأ كما يبدأ الجميع. كتب print ثم Hello world، فأخرج له Hello world. فقلت: أستطيع أن أكتب Hello World بنفسي. ماذا تفعل بالضبط؟ فقال: لا، إنه ينفّذ ما تأمره به وما شابه. ثم كتب شيئًا مثل: واحد زائد اثنان يساوي، فأخرج ثلاثة. فقلت: آلتي الحاسبة تستطيع فعل ذلك. ما الذي تريد أن تريني إياه هنا؟ لم أفهم. ثم لاحقًا كان لديّ درس من نوع ما في علوم الحاسوب في المدرسة، وكان لدينا Turbo Pascal، وكان فيه إضافة أو شيء ما يتيح لك سلحفاة صغيرة ترسم شيئًا على الشاشة. وأعطونا هناك بعض التمارين الرائعة حيث تدخل نوعًا من الصيغ فيرسم أشكالًا فركتلية معقّدة ورائعة تبدو كأوراق الشجر وما شابه. وتحصل على ذلك بمجرد كتابة الصيغة الصغيرة التي تخبر تلك السلحفاة بما ترسمه. وكانت تلك بالنسبة لي اللحظة التي اتضح فيها الأمر، لأنني أدركت أن إعطاء أوامر بسيطة جدًا يمكن أن يخلق شيئًا معقّدًا لم أكن أقدر على فعله بنفسي. فأنا لم أكن أرسم هذا العدد الكبير من الأوراق. فكان ذلك بالنسبة لي: آه أجل. فهو يستطيع أن يفعل أكثر مما أستطيع أنا فعله. لكن قبل ذلك، من الشروح التي قدمها لي جدّي وما أراني إياه في هذا الشيء، لم يفهم الأمر. لكن رؤية هذا الشيء الرسومي ورؤية قلة التعليمات اللازمة لجعل الحاسوب يفعل شيئًا معقّدًا كهذا، كانت هي اللحظة التي اتضح فيها الأمر لي.

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

Franziska: أجل. لكن هذا يعود بنا إلى ما كنا نتحدث عنه في التعليقات، أليس كذلك؟ وهو أنك تكتب أولًا قبل الكود. فأنت تحكي القصة أولًا ثم تكتب الكود الإضافي لها.

Jonathan: وهذا رائع حقًا أنك ذكرتِ ذلك، لأنني أظن أن إدراك أنني في الحقيقة أكتب قصة في تعليقاتي... سآخذ هذه الفكرة معي بالتأكيد. لا.

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

Jonathan: لا، الأمر في نهاية المطاف يتعلق باللغة على ما أظن، وهذه فكرة مثيرة للاهتمام خطرت لي. أنتِ ألمانية بطبعك، لكن تلك هي لغتك. فهل تطوّرين الآن في Atlassian بالإنجليزية؟ وهل كنتِ تعملين بالإنجليزية من قبل؟ أعني، أقول ربما للأسف إن كل شيء بالإنجليزية. وأنتِ تتحدثين الإنجليزية ببراعة، لكن هل تعلمتِ الإنجليزية في المدرسة، ثم كانت البرمجة كلها بالألمانية؟ أم كيف تعلمتِ كل ذلك من تلك التجربة؟

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

Jonathan: لا، لا يبدو لي ذلك سهلًا على غير الناطقين بالإنجليزية. وأظن أن هذا سيبدأ في التغيّر أيضًا. رأيت مقالًا في أحد الأيام يقول إن الهند هي أسرع مجال تقني نموًا في العالم حاليًا. والإنجليزية، سواء تمسّكوا بها أو بلغاتهم المحلية، وأعرف أن هناك كثيرًا منها في الهند. مجرد التفكير في كل ذلك مثير للاهتمام. نحن نقترب الآن من الساعة. لقد استمتعت حقًا بهذا. لديّ سؤال أخير لكِ يا Franziska. وهنا تأتي فرصتك لتقدّمي توصية لمجتمع Exercism. ما توصيتك الواحدة؟ يمكن أن يكون أي شيء، من طعام لتجربته، أو شيء مثل الذهاب في نزهة، أو أيًا كان ما تريدين أن توصي به للمجتمع. ما توصيتك لمجتمع Exercism هذا الأسبوع؟

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

Jonathan: رائع. لا، هذا يعجبني كثيرًا. حسنًا جميعًا، عندما تستمعون إلى هذا، فهذه هي التوصية، النصيحة لهذا الأسبوع من Franziska. إذن Franziska، شكرًا جزيلًا على وقتك، وعلى كل ما تقدّمينه لـExercism، وعلى كل التفكير والتفاعل الذي لديكِ مع المجتمع. أعلم أنكِ تفاعلتِ كثيرًا جدًا مع Exercism وتحسينها ومساعدتها، ونقدّر ذلك حقًا. فأردت فقط أن أشكركِ، وأشكركِ على وقتكِ هذا الصباح، في يوم عطلة وطنية كان يمكن أن تكوني فيها خارج المنزل تحتفلين أو تفعلين شيئًا ممتعًا. وقد منحتِنا وقتكِ هنا، فنقدّر ذلك تقديرًا كبيرًا. أنا عالق في المكالمة حين أوقفت التسجيل، لكنني أردت فقط أن أشكركِ جزيل الشكر، وأتمنى لكِ بقية يوم رائعة حقًا. رائع.

Franziska: شكرًا لاستضافتي.

المزيد من قصص مجتمعنا

استمع وتعلّم واستلهم من أعضاء مجتمعنا.