Skip to main content

How to release your best potential features more often?

Digital products usually hit this plateau phase, where we don't know what to release next? Most business usually have their core features, which they use to drive most of the business revenue, but in order to stay in shape, you need to challenge your processes and learn from them. In the following lines, I'm talking more about 'Learning' activity in an Agile environment, and how to evaluate this core activity? 

Image result for think agile

Learning as a job in software development

Software is a set of complex and creative processes that being maintained by creative human individuals. That being said, the process of creating new software is extremely tricky when it comes to predicting the market needs, or in a more Agile terms, what users are after in order to use your software product.

To predict, you need knowledge. In order to be knowledgeable, you need to understand your users, hence, you need to learn about them. Your ability to lean specifies to what degree you’ll hit your target.

Learning in an Agile-friendly environment is one of the core values you should embrace with your team, as it’s not just expanding the horizon and gives you more visibility about what truly your software need to provide, but it also gives your team the chance to adjust their thinking in a way that takes market in consideration.

Narratives as the building blocks

Image result for user stories

In its core, Agile is more about humanize the process of making software, by making it similar to what humans are familiar with. And we communicate our problems by narrating them. We’re skilled at doing that, but, when it comes to software, many people think: Oh! It’s software, we should know and specify every spec out there, and the more we specify, the more we’ll get higher quality! Unfortunately, no! And I’m going to explain why below.

You’ll never code alone

Building software is mostly about communication, different levels of communication determine different levels of software quality. First level would be: problems scenarios, or what we’re trying to solve? Problem scenarios aren’t necessarily “Logical Problems”, it can be habit, desire, or even a common pattern that some user group (AKA personas) is adapting in order to get their jobs done. Narratives are the building blocks when it comes to such level of communication. Narratives are also known as “User Stories”, you can find more about them: Brief history of user stories.

You cannot develop something you don’t understand

Narratives help us understanding why we’re doing things. We’re adding this feature in this way, because we have some habits that some user groups are adapting to get things done in a similar pattern.

Weak inputs creates weak user experience

If you don’t rely on narratives, or the inputs are weak in your team (i.e. people often don’t understand why they’re doing stuff in specific way) then you’ll end up with overall weak process. Your team won’t be confident enough to deliver and push new releases. Because nobody understands the point.

Evaluate your narratives and make them better

Image result for user stories

Symptoms of weak narratives

Shaky discussions: Your team’s discussion are often shaky, and you cannot draw a concrete base from. Everyone is trying to describe it in a different way.

No one is sure about what to deliver: So, to what extent should we release? God only knows! This is another indication that people in your team don’t quite understand the scope of what they’re working on.

Estimation problems: You often end up with too large or too small estimations that creates unrealistic deadlines and releases.

Evaluate iteratively

You can learn from your releases and improve your productivity cycle, by taking in consideration some aspects:

Being not wrong isn't enough: Be sure you’re right rather than checking that you’re not wrong about features. Meaning that, if you always ask yourself: Did we delivered the right thing? It’s an indication you didn’t. And your next goal of releasing should be focused on learning from users and improving your next release deliverables.

Evaluate your output iteratively: always ask yourself: were we precisely right when we release this feature X? And try to evaluate your answer and make your evaluation more data-driven. That way, you’ll hit that 1-million feature more often!

Comments

Popular posts from this blog

ما وراء المنطق، بين المثالي والواقعي: أين تُرسم الحدود؟

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

سبر أغوار العقل البشري - نظرية العقل كصفحة الفارغة لچون لوك

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

Code Quality: Enforcing the PEP8 with flake8

  What’s PEP8 ? And why it’s important?   PEP8 (Python Enhancement Proposal 0008) is a document that makes it easy for developers to get familiar with Python coding conventions. It describes and explains the bold lines that you should consider when developing your code in Python. Why it’s important? Imagine that you’re working in a team with other people, you don’t know each other, you don’t know how each one of you think and take decisions. You’ll have to work on these people’s code, you’ll need to understand the basic layout that these people follow when they want to implement their code. So, what it’s going to be like when everyone has his own method? Catastrophic codebase, right? Here the PEP8 comes and saves the day for you and your team! It helps you standardize a set of rules to be followed every time you’re going to change the codebase to implement new features or to review some other existing ones.   WOW, is it unbreakable? Like many other...