Understanding Coupling and Cohesion

  • یوسف مهرداد بی‌بالان

I invited some of my friends to discuss the nebulous concepts of coupling and cohesion in software design. How do we think about these topics? How do we understand the terms? How do we use that in our work as programmers? How do we teach it to others? How much does any of it even matter? Our invited guests: Corey Haines, Curtis Cooley, Dale Emery, J. B. Rainsberger, Jim Weirich, Kent Beck, Nat Pryce, Ron Jeffries.

Carry You

  • یوسف مهرداد بی‌بالان
I know it hurts
It’s hard to breathe sometimes
These nights are long
You’ve lost the will to fight
Is anybody out there?
Can you lead me to the light?
Is anybody out there?
Tell me it’ll all be alright
You are not alone
I’ve been here the whole time singing you a song
I will carry you
I will carry you
I know you can’t remember how to shine
Your heart’s a bird without the wings to fly
Is anybody out there?
Can you take this weight of mine?
Is anybody out there?
Can you lead me to the light?
You are not alone
I’ve been here the whole time singing you a song
I will carry you
I will carry you
You are not…
“Carry You” by Ruelle, Fleurie, on Youtube
What was the inspiration behind the song? => https://youtu.be/SJURFa1jlwo

Engineering Playbook

  • یوسف مهرداد بی‌بالان

CSE Code-With Customer/Partner Engineering Playbook

An engineer working for a CSE project…

  • Has responsibilities to their team – mentor, coach, and lead.
  • Knows their playbook. Follows their playbook. Fixes their playbook if it is broken. If they find a better playbook, they copy it. If somebody could use your playbook, give them yours.
  • Leads by example. Models the behaviors we desire both interpersonally and technically.
  • Strives to understand how their work fits into a broader context and ensures the outcome.

This is our playbook. All contributions welcome! Please feel free to submit a pull request to get involved.

Note: If you are reading this on github – head over to https://microsoft.github.io/code-with-engineering-playbook/ for a better reading experience

Why Have A Playbook

  • To increase overall efficiency for team members and the whole team in general.
  • Reduce the number of mistakes and avoid common pitfalls.
  • Strive to be a better engineer and learn from other people’s shared experience.

“The” Checklist

If you do nothing else follow the Engineering Fundamentals Checklist! It’s here to help follow the Engineering Fundamentals.

Structure of a Sprint

A breakdown of sections according to the structure of an Agile sprint.

General Guidance

  • Keep the code quality bar high.
  • Value quality and precision over ‘getting things done’.
  • Work diligently on the one important thing.
  • As a distributed team take time to share context via wiki, teams and backlog items.
  • Make the simple thing work now. Build fewer features today, but ensure they work amazingly. Then add more features tomorrow.
  • Avoid adding scope to a backlog item, instead add a new backlog item.
  • Our goal is to ship incremental customer value.
  • Keep backlog item details up to date to communicate the state of things with the rest of your team.
  • Report product issues found and provide clear and repeatable engineering feedback!
  • We all own our code and each one of us has an obligation to make all parts of the solution great.

Engineering Fundamentals

Fundamentals for Specific Technology Areas

Contributing

See CONTRIBUTING.md for contribution guidelines.

Awesome Agile

  • یوسف مهرداد بی‌بالان

Awesome Agile Awesome
Awesome List of resources on Agile Software Development.

Contents

The Fundamentals

Key Concepts

Agile Adoption

Team and Roles

Engineering

Product Development

User Stories and Estimation

Ceremonies

Metrics

Agile Leadership

Blogs and Podcasts


Six Conditions of High Performance in the Workplace

  • یوسف مهرداد بی‌بالان

Research suggests these six psychological conditions help employees and teams to perform at their best.
Connect to Perform empowers managers and employees to have conversations throughout the year to help foster these conditions.

Purpose

There are different kinds of purpose:

  • Task Purpose: Knowing our work counts so our efforts aren’t wasted or excessive.
  • Collective Purpose: Seeing how our work combines with others to create something none of us could achieve alone.
  • Social Purpose: Recognizing that our work makes a worthwhile contribution beyond the success of our organization.

Challenge

The greatest challenges are:

  • Just out of Reach: If your goal is just out of reach and you’re not sure how you are going to achieve it, then you probably have an appropriate stretch goal.
  • Aligned: Consider how your individual goals are aligned to your personal strengths and motivations, as well as the organizational strategy and the goals of your team, department and Faculty/Unit.
  • Always up for Review: The world around us is constantly changing which means that our goals should be reviewed and possibly updated throughout the year.

Growth

TWe grow faster when we have:

  • A Growth Mindset: We believe that we can get better and believe the same of our colleagues.
  • A Role Plays to our Strengths: We are doing work that aligns to our aptitudes and uses our skills.
  • Slight of Better Prospects: We can see that by getting better now, we’re more likely to attain something that matters to us in the future.

Choice

We keep our performance high when we choose to:

  • Create social support: Build a strong network of technical, emotional and practical support.
  • Adopt an optimistic outlook; Interpret challenges as short-term, and a source of insight.
  • Focus on what’s in our control: Draw on inner strength and grit to maintain effort and interest over time to sustain performance in spite of setbacks.

Recognition

We feel most appreciated when recognition is:

  • Fair: Above all, recognition is based on clear criteria and applied consistently across my peers.
  • About me: Recognition is about me and what I did to contribute, not about the person giving it, the mood they happen to be in, or the kind of people they like.
  • Differentiated: The difference between recognizing above-and-beyond performance and day-to-day work is proportional.

Attention

Feedback, positive or constructive, that makes the biggest difference includes the following:

  • Situation: Context is provided and includes specific details such as when and where the event occurred.
  • Behaviour: Describe the behaviour objectively. Say what was observed.
  • Impact: Relate how the behaviour impacted you or others. Why does it matter? Who did it affect?
Source: ucalgar.ca/hr

software developers and deep learning

  • یوسف مهرداد بی‌بالان

There are two kinds of software developers: those who already use deep learning, and those who will use deep learning next.
François Chollet

سال نوی قرن نو

  • یوسف مهرداد بی‌بالان

هنگام فرودین که رساند ز ما درود؟
بر مرغزار دیلم و طرف سپیدرود

سال نو فرخنده باد. امیدوارم روزهایی بهتر از گذشته پیش رو داشته باشید.

دوم فروردین هزار و چهارصد خورشیدی

برای خروج از جستجو کلید ESC را بفشارید