SSW Foursquare

Rules to Better Software Consultants - Working in a Team - 71 Rules

  1. Do you know rules are made for the guidance of wise men and the obedience of fools?

    Whenever you're doing something more than once there should be a clear procedure. We call them “standards” or “rules”. That means that there should be lots of standards.

    Standards should *not* be followed blindly. Aim for continual improvement.

    There are pros and cons to having standards:

    The pros:

    • They help speed up the decision making process – getting you to the best decision faster
    • They help maintain consistency

    The cons:

    • They take time to write in a generic fashion
    • Technological rules rust easily. Technologies and techniques change often, so you must be on the lookout for the new and better approaches and continually update these
    • They have errors as they are written by imperfect people
    • People will sometimes follow an inappropriate rule. A set of rules can never predict every path, so cases can and will appear that the standards fail to cater for

    Standards should always help the critical thinking process, but never replace it.

    white sign
    Figure: As this sign demonstrates, no rule is universal

    If you think something can be done better or the standard is simply out of date, you should improve the standard. This is best done as a team effort with everyone making little changes often. Whenever you come across a standard which needs updating or improving you have three options:

    1. Fix it yourself straight away by editing the rule (preferred)
    2. Fix it yourself later if it's too big. In this case, send yourself an email
    3. Ask someone else to fix it following the change "x" to "y"

    Never ignore a potential improvement or expect someone else to work on it.

  2. Communication - Do you have professional integrity? (Be a person of your word)

    When most people say they'll do something, they really mean they'll try to do it, and they don't really worry too much whether they are successful or not, so long as they gave their best effort.

    Video: Tips and tricks to maintain your professional integrity in the workplace (14 min)

    This has a hidden cost, since if you commit to someone and fail repeatedly, even though they may know you're doing your best, they will nevertheless lose trust in your integrity. The next time you commit, they will not really believe that you will follow through.

    Bob joins a Teams call 10 minutes late. It goes well but he's not aware of the end time and it goes 30 minutes over, which impacts 2 other people's schedules. He then agrees to send an email with the agreed action points by COB but doesn't get to it until the following day, causing people to wonder if they should be following him up. One person SMSes him about it "Don't forget that email", but he doesn't reply to it for over 2 hours, leaving the other person hanging.

    Figure: Bad example - None of these things are that big a deal, but they add up to no one wanting to work with Bob

    Jim has reminders set up on his calendar to make sure he makes it on time to his Teams call. With 10 minutes left in the call, he checks if people have a hard stop afterward, and when he finds out 2 people do, he makes sure the remaining discussions that require those 2 people are prioritized so they can leave. He then agrees to send an email with the agreed action points by COB, but knows he hasn't got time to do it immediately, so sets himself a quick reminder on his phone to do it in 1 hour.

    Figure: Good example - Jim has great professional integrity.

    How to have (and keep) professional integrity

    The word "integrity" can be loaded with ethical connotations, but in this context, professional integrity means:

    1. Be true to your word

    This means doing what you say you’ll do, by the time you say you’ll do it

    "I'll send that email to you by 5pm"

    2. If you can’t deliver on your promise, communicate a plan for a path forward

    If it looks like you won't be able to get the agreed task done by the deadline, tell the person why and set a new deadline, or agree on a different deliverable. Never leave others guessing

    (at 5:30pm) "Here's the email, sorry it's late"

    Figure: Bad example - Although it's only a little late, you still haven't delivered on what you promised

    (at 4:30pm) "I'm not going to be able to get that done by 5pm. Is it ok if I get it to you by midday tomorrow?"

    Figure: Good example - Getting ahead of the deadline and making a new commitment

    3. If you break your word, acknowledge it, and work out a way to repair your integrity

    If the deadline passes and you didn't do the above, recognize the fault and propose a plan for how to do better next time

    "I'm sorry I didn't get that sent over yesterday. A client had an emergency and I had to jump on it. Next time I'll let you know if something like that happens. I'm confident I can get it done by 5pm today.

    Figure: Good example - Acknowledging an improvement for next time

    Examples of good professional integrity

    • Turn up for a meeting on time and, if that meeting looks like it will go over time, make sure everyone can continue

      • A good measure of your Professional Integrity is how well your day resembles your calendar
    • Inform people of any potential delays
    • Deliver all of what was asked, not just a subset
    • TOFU - Take ownership and follow up. Even if you delegate some or all of the task, you stay responsible for the outcome
    • When they make a mistake, they proactively address it, and don't wait to be called out

    Attributes of people who have professional integrity

    • Always take full ownership of any task given to them
    • Inspire trust in co-workers and managers
    • Hold themselves to a high professional standard

    Managers' feelings about employees who have professional integrity

    • Trust their employees
    • Are comfortable delegating more important work
  3. Do you know the best tools and techniques to maintain your professional integrity?

    Once you’ve internalized the importance of having professional integrity, you may feel like you are suddenly under a lot of pressure to keep your word, and this can be stressful.

    There are many tools and techniques you can use to help you succeed at this, and also to take some of the pressure off.

    Remembering to do what you promised

    Trying to keep all your commitments in your head is difficult and stressful, but if you use systems that offload them, you can free up mental power to get things done in the meantime.

    Use Siri (or Google) reminders

    Generally used for small tasks that you can't complete right now. These are very quick to set, and so won’t interrupt your flow.

    Make sure you never dismiss these when they come up unless you can complete the task on the spot. If you can’t complete the task immediately when it appears on your lock screen, press and hold to kick the can down the road to when you will have time to do the task.

    iphone reminder
    Figure: Good example - Create and manage reminders all from your lock screen (no typing needed)

    Use calendar appointments (with reminders)

    If you want to set aside time for something, especially with 1 or more other people, use a calendar appointment. Remember, that action in itself is a promise that you will be on time (and not excessively multitasking), so keep on track of your upcoming appointments in Outlook, or use reminders to make sure you don't forget.

    Calendar in Outlook
    Figure: At your desk, use the Outlook sidebar to know what time your next meeting is

    See more on our Rules to Better Calendars

    Use FollowUpThen

    Seeing as professional integrity doesn't just mean getting work done, but getting it done within an agreed timeframe, you can use a free service called FollowUpThen to help in a number of ways.

    1. Getting emails out of your inbox until you're ready to act on them
    2. Reminding you when it's time to follow up someone else (remember TOFU - Take Ownership and Follow Up)
    3. Sending a To Myself email that will only arrive when you think you'll be ready to action the work

    Doing the full task

    Misunderstandings around what was asked vs what was delivered are very common, but there are tools to make sure you minimize these:

    Send "To myself" emails (or create Product Backlog Items)

    As soon as you commit to do something, to make sure you immediately document the task in a way that the person who gave it to you can see the details. This could be on a shared Trello Board, a work tracking system like Azure DevOps or Jira as a PBI, or as simple as an email to yourself, with the person CC'd.

    See more on the to myself rule.

    Use Scrum tools - Definition of Done and Acceptance Criteria

    Scrum is an Agile Project Management methodology that is all about delivering software features, so of course making sure that the Product Owner and the Team have the same expectation of what will be delivered is key. There are 2 ways of doing this:

    1. Definition of Done - This is for things that apply to all (or most) features, such as "It has been deployed to Staging", "It has been tested", etc.
    2. Acceptance Criteria - This is for details that are specific to this particular feature, such as "The user can login using Facebook auth", etc.

    See more on Rules to Better Scrum

    Add buffers (aka healthy pessimism)

    Once you start thinking in terms of professional integrity, you will always be trying to under promise and over deliver, and the easiest way to do this consistently is to start adding some contingency buffers to your estimates.

    • Change from "I'll be there in 5 minutes" to "I'll be there in 15 minutes"
    • Change from setting 30 minute appointments to 1 or 2 hour appointments when needed
    • Change from estimating best case scenarios to closer to worst case scenarios

    Don't over-commit

    When your intention is no longer to try your best to get everything done, but to promise to get things done, you need to make sure you don't take on so much that you set yourself up for failure. Don't always say yes.

    Your default mode should be that if you say you'll do something, you check to see that you actually have capacity to do so. If you're not sure you'll be successful, either say no, and renegotiate a more realistic deliverable or date, or else specify that you're not sure you'll be able to commit to that, but you will try.

  4. Do you know the dangers of your Strong Suits?

    “When you have a hammer, everything looks like a nail.”

    This saying is often used by developers who want to use their favourite technology to solve every coding issue, even when it’s not the best fit. But this saying is actually relevant to us all.

    Video: The dangers of your strong suits with SSW General Manager, Ulysses Maclaren (4 min)

    Strong suits are a concept from Landmark Forum that encapsulate this idea. Strong suits are something everyone has... favourite parts of their personalities that they are good at, and that they like about themselves. This could be that they are smart, loving, loyal, attractive, friendly, analytical, resilient, resourceful, tough, romantic, logical, etc.

    Generally speaking, people use their strong suits to get through life, and the more they do it, the more practice they get at it, and so the more it becomes their comfort zone.

    The dark side

    Usually, using your strong suits is fine, and there’s a reason they’ve gotten you this far in life. But the problem is that people have a strong psychological urge to be consistent and “true to themselves”, and this manifests in an inability to stray away from their strong suits.

    Here are some examples:

    • If you are loyal, you may have trouble letting go of toxic relationships
    • If you are logical or analytical, you may have trouble being romantic
    • If you are smart and focused on details, you may tend to be righteous in arguments, and not look at the big picture
    • If you are friendly, you may avoid conflict, even when it’s necessary
    • If you are independent, you may not accept help when you need it
    • If you are resilient, you may have trouble letting yourself be vulnerable

    Origins

    Your strong suits tend to develop when you are a child or teenager, during times when you felt you weren’t good enough, didn't belong, or were powerless.

    These traumatic events would have made you decide something about yourself and/or the world, and over time, these develop into strong suits. The reason it’s useful to know the origin of your strong suit is that usually, with the benefit of hindsight, you can see that the decision you made about the world at the age of 5, may not actually be 100% nuanced and correct. This knowledge can allow you to let go of the certainty that you MUST always be a certain way.

    • It can let the people pleaser stand up for themselves
    • It can allow the tough person to seek help
    • It can let the likable, friendly person put their foot down when needed

    What you can do

    The good news is... identifying strong suits is usually quite easy... just think about what you like about yourself, and what qualities have most helped you in life.

    Next, think about how, if taken too far, these strong suits could have adverse effects on your life.

    Lastly, and this is the hardest part, you need to identify this AS IT IS HAPPENING, and change course. The good news is that even if you identify it after it happened, knowing it was your strong suit acting up usually makes it easier to apologise or change tack after the fact, which can still be almost as effective.

    Congratulations, you have just identified a self-limiting belief... now anything is possible for you.

  5. Teamwork - Do you manage up? (Give a recommendation)

    Managing up is providing your manager with an active request or an option to approve, rather than asking a general question.

    complexity and false hope
    Figure: Hard decision - This guy needs to state why he recommends this option

    What do you want to charge for David's rate?

    Figure: Bad example - Nothing to approve

    What do you want to charge for David's rate?

    I would advise the standard $165 + GST until he has more experience.

    1. Please approve

    Figure: Good example - Approval request in form of a task

    Note: If it involves technical solution, please provide the steps you are going to follow.

    Multiple options

    When you are giving someone multiple options you should:

    • Limit the number of options to 3 to avoid "option overload" (more on Choice Overload and The Burden of Choice)
    • Recommend one and state why
    • Enumerate the options (E.g. Option A or Option 1)

    We want to integrate our database with our website so that customers can purchase online.

    1. Please let me know which option you would like to proceed with, otherwise let me know if you have any questions

    Option A (Recommended) - Customize a ready-made solution - We are able to get rid of redundant features and change it to meet our requirements. It is cheaper than building a new solution from scratch.

    Option B - Buy a ready-made solution - The ready-made solution is cheap but it does not have everything that we need and has unnecessary features.

    Option C - Build a new solution using a third party company - It will be expensive and it will take a long time.

    Figure: Good example - Multiple options with reasons and a recommendation

    Note: When presenting choices, it is important to avoid using the term "version" as it pertains to specific iterations or editions. Always use "options" which refer to selectable variations or customizable features.

  6. Teamwork - Do you know the 5 dysfunctions of a team?

    There are five interrelated issues that undermine the performance of a team:

    1. Absence of trust - If the members of the team do not trust each other then they cannot be totally honest with each other.
    2. Fear of conflict - Without trust people will not have the healthy debates that are necessary to arrive at better thought through decisions.
    3. Lack of commitment - If the team have not aligned behind a decision then the individual members who did not agree with the final decision will ultimately be less committed to that decision.
    4. Avoidance of accountability - If they are not committed to the course of action, then they are less likely to feel accountable (or hold other people accountable).
    5. Inattention to results - Consequently, they are less likely to care about the group results (and instead focus on achieving their own goals).

    These are from the excellent book, The Five Dysfunctions of a Team by Patrick Lencioni.

  7. Teamwork - Do you know the 5 pillars of teamwork?

    The well-known book "The 5 Dysfunctions of a Team" focuses on team failings, but what should an ideal team look like? What pillars underlie exceptional teamwork?

    1. Trust and Vulnerability - When teammates trust each other, they are not afraid to be vulnerable in front of each other and will admit mistakes or shortcomings, allowing their teammates to help fill any gaps
    2. Healthy Conflict - Team members who trust each other can engage in healthy debates, where each teammate feels empowered to contribute so ideas can be shared and plans formulated
    3. Commitment to Decisions - The outcome of the spirited debates should be a decision on a plan forward and, since each teammate felt empowered to contribute to the plan, they should then also fully commit to the agreed decision
    4. Accountability - With everyone fully committed to the plan, they should then be comfortable to be held accountable (and hold each other accountable) to the KPIs
    5. Attention to Results - The group has a shared feeling of success and will all strive for the same results and will pay attention to whether those results are met

  8. Communication - Do you chase the Product Owner for clarification?

    Product Owners  (or clients), like all of us, are snowed under with work and won't always be able to respond to your emails in a timely manner. But keeping a good line of communication open is essential and it's up to you to make it happen. No matter whether your weekly meeting gets cancelled or your client appears to avoid you for the week, stop and talk to them in the corridor, or pick up the phone and give them an update.

    If you know you've got issues to discuss (such as looming deadlines), don't wait for the client or your Product Owner to bring it up, take a pro-active approach and schedule a meeting.

    As a guideline, you should not go more than 2 weeks without talking to your Product Owner (or boss/manager). And don't forget all the things you've got to say - have a sub-folder in your Inbox such as "Ask the Boss". Next time when they ask, "Does anyone want to speak to me?", look in that folder.

    No email or call.

    Figure: The worst example - not reaching out to your Product Owner or manager at all. You should be in regular contact with them

    Figure: Bad example - you shouldn't have to ask that! 

    Figure: Good example - Actively reaching out to your Product Owner

  9. Priorities - Do you complete work in order of importance?

    With a mountain of emails, it is difficult to make sure the most important tasks get done first. You want to keep your clients happy while still removing roadblocks for others.

    The word "Urgent" is more important than the word "Important"

    This is the order which you should work

    1. Urgent emails & PBIs/tasks – If you see the keyword "URGENT" (or the warning ⚠️ emoji) in the subject/title/body, it automatically becomes the top priority and is to be resolved immediately.

      E.g. "URGENT ⚠️ the website is down"

      Note: the fire🔥emoji is no longer used because it can be misinterpreted as a good thing or a 'hot topic'

    2. Emails about timesheets or invoicing issues
    3. Your calendar - keep your calendar up-to-date,so people know where you are
    4. Your existing clients - Planned client work and client administration (preferably working on a Sprint Backlog and doing Daily Scrums)
    5. Other client work - Ask others if you can help with their client work
    6. Prospective clients - Project management, answering questions and setting up meetings
    7. Internal work - All of the following might have their priorities ordered by the Daily Scrum

      1. Quick Important emails to 0 (emails with an important flag < 1 hour and not something that can go into a release plan)
      2. Incomplete Sprints. E.g. Normal planned internal work
      3. Important emails to 0
      4. Help others get their important emails to 0
      5. Get your inbox to 0
      6. Ping others to see if they need help completing their Sprint
    8. Phew... Done...

    Tips:

    • Efficient people keep a priority list (often written)
    • Don't move an important task out of your inbox unless someone else is going to do it right away
    • The most recent task assigned is not necessarily the most important. Mentally do this (e.g. an air traffic controller does not deal with the newest plane that has popped up on his radar when he has 4 lined up to land
    • You can use inbox subfolders to group and prioritize tasks

      subfolders
      Figure: Group by subfolders under your inbox

    • Double check - it's common that priority orders change, but clients don't always mean to, so confirm before proceeding. E.g. When someone is asking you to do a new task while you are still working on another task, then ask:

      "Are you changing the priority order? Do you want this new task done before the current task? I'm currently working on..."

      Figure: Good example - Confirming the priority order with the client

  10. Priorities - Do you know the 4 quadrants about important and urgent tasks?

    Most people do the urgent stuff and then have less time for the important stuff. Let's say you receive 2 emails... one email to fix your timesheets and another to change the logo on the home page. How do you work out what is more important?

    There is a well-known quadrant where people look at where they spend their time. The key is to reduce burning time on 'urgent and not important' stuff (e.g. most notifications on your phone and most Teams calls) and spend time on the important stuff that is not urgent (e.g. stuff at the top of our backlog).

    7 habits decision making matrix
    Figure: The decision-making 4 quadrants

    Image: Davidjcmorris, CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0, via Wikimedia Commons

    More info: Urgent VS Important

  11. Do you know how important timesheets are?

    Timesheets are the lifeblood of the company and are the ultimate source of everyone's income.

    Timesheets should be right near the top of your priorities. It's #2 on Do you get your work done in order of importance (aka priorities)?

    enter your timesheets
    Figure: You should be filling out a timesheet for every day you work

    Bucket list
    Figure: Timesheets come first, always!

  12. Calendar - Does your calendar always accurately show where you are?

    The following steps will help you to setup your calendar to allow us track your current availabilities and improve our team collaboration.

    Step 1: Set your work hours in Outlook Read rule: Do you set your work hours in your Calendars?

    Step 2: Share your outlook calendar with everyone Read rule: Do you know the ways to see others' calendars?

    Step 3: Allow calendar admins to have full access to your calendar Read rule: Do you share your Calendar?

    Step 4: Send your leave appointments to a centralized leave calendar Read rule: Do you use a centralized leave calendar?

    calendar accurately show where you are
    Figure: Keep your calendar up-to-date and set to share, so people can always find where you are

  13. Communication - Are you always candid in your communication?

    It is extremely important to maintain honesty and candor in a team environment. Sometimes this means admitting when you're uncertain and not just communicating wishful thinking.

    Nothing breaks down a team like a lack of trust. Remember, honesty starts with the small things.

    You also need to make sure you qualify your level of certainty in an answer, so that your guess (which could be wrong) does not end up misleading someone.

    • Is the database corrupt?
    • No.

    Figure: Bad example

    • Is the database corrupt?
    • I don't think so but I'd need investigate further to be sure.

    Figure: Good example

    Being candid is being vulnerable, which is one of the 5 Pillars of Teamwork.

  14. Do you inform others when deleting or making fundamental content changes?

    When it comes to making significant alterations or deletions to someone else's content, it's a good practice to inform them and document it, by sending an "as per our conversation email" as a safety step.

    Clear communication helps maintain transparency and respect for the original author's work.

    This is especially important in collaborative environments, where changes can impact the overall project or its documentation. Keeping others informed allows for discussions or adjustments if needed.

    Understanding the history of content is essential for context, accuracy, and informed decision-making.

    Being diligent about content deletion not only respects contributions but also mitigates risks and fosters a culture of understanding and problem-solving.

    Figure: Good example - Being considerate and documenting content deletion

  15. Communication - Do you repeat back the specifics of a request?

    Misunderstanding due to miscommunication can cause major disasters at work or in life (see: Tenerife airport disaster).

    flight accident 1977
    Figure: KLM Flight 4805 collides with Pan Am Flight 1736 at Tenerife Los Rodeos Airport

    A good communication strategy when receiving instructions is to repeat back what's being said to avoid misunderstanding.

    Question:

    1. Please add a checkbox on the right, and make it red.

    Possible answers:

    "OK" or "Roger That"

    Figure: Bad Example

    OK, I will add a red checkbox on the right

    Figure: Good Example - repeat back the task

  16. Communication - Do you know how to take feedback/criticism (even if it’s not your fault)?

    In any job, you will most likely at some point face some criticism. Someone may be telling you that you’ve done something wrong or just expressing displeasure because you didn’t do something they wanted.

    The best way to take this is to reply to the person and tell them the following 3 A's.

    The 3 A’s: Acknowledge, Apologize, Act

    Acknowledge - The first part of good customer service is acknowledging that something happened. If you don't acknowledge the pain, then another person won't know if you agree or not.

    Apologize - Apologize if you messed up… or even if you didn’t. Just be clear you are sorry for their situation. E.g. "I am sorry for the downtime you have been experiencing today"

    Action - Lastly, explain how you will take action now, and in the future.

    Even if you've been wrongly accused of something, you should still show you understand the other person's frustration and demonstrate initiative. Always have a view of the future and the big picture.

    Warning: When wrongly accused of something, most people get stuck on defending themselves, where customers would prefer to hear you care, will take any ownership of the problem, and tell them your plan asap.

    Next is to see if you can avoid it happening in the first place – you could explain the new steps in the process you’ll add or simply say: "I'll be more diligent testing in the future".

    Figure: Make sure you know how to take criticism well

    Defensive behaviour
    Figure: Active listening can help with communication issues

    Video

  17. Communication - Do you understand the power of Empathy in the workplace?

    Empathy is the ability to put yourself in someone else’s shoes and understand what they’re feeling. In a deeply technical profession like software engineering, it might not sound like a useful tool but nothing is further from the truth.

    likability chart
    Figure: Empathy is key to likability

    Empathy for your clients or managers

    By understanding your Product Owner’s goals, pressures, and feelings, you’ll be in a much better place to be able to anticipate their needs, understand their requirements, and communicate more effectively with them.

    Empathy for your co-workers

    The key understanding required to make people prioritise helping their co-workers, rather than focussing solely on their own work, is that the total output of the team is more important than the output of one person. You will also find that, if people enjoy working with you, and not just the outcomes you produce, you are more likely to be given opportunities in the future. The “brilliant asshole” can only get so far in their career before the pain of dealing with them outweighs the quality of their work.

    Empathy for your subordinates

    Taking some time to understand the challenges that your team members may be facing is key to becoming an effective servant-leader. Subordinates that work purely to avoid your disappointment will only do enough to avoid being in trouble. People who feel respected and heard are much more likely to go above and beyond.The other great benefit of understanding your team members is that you can identify how each person is motivated. One may thrive with words of encouragement, one may need help to get past a sticking point, and one may need space to get into the zone.

  18. Quality - Do you go 2 miles when you're only asked to go 1?

    This idea is different from the other rules in this category in that it strikes at the heart of our everyday behaviour, not just when a crisis is looming. Jesus of Nazareth said:

    "And whoever compels you to go one mile, go with him two."

    While not everyone chooses to agree with everything He said, it's a valid point when it comes to creating a positive team environment. If you're willing to be proactive and help others above and beyond the call of duty, a whole ream of benefits flow:

    • People begin to share responsibility for work that traditionally is claimed as "not my problem"
    • Others will return the favour when you really need it
    • The sense of workplace isolation disappears
    • Productivity lifts as tasks can be achieved more quickly

    Figure: Going the extra mile

    This rule particularly applies when a person is blocked – as identified in their Daily Scrum.

  19. Do you remove clutter from your browser's new tabs?

    When browsing you often need to open a new tab. By default most browsers will show will a bunch of things to click. That can lead to diversion.

    Changing your browser's new tabs settings can enhance your experience and add avoid distractions. By removing all the clutter, you can have a clean and visually appealing environment that aligns with productivity.

    microsoftteams image 4
    Figure: Bad example - Settings | Content visible is evil

    Go the extra mile and add branding to your browser.

    browser background image set
    Figure: Good example - Settings | Content off + branding is the way to go!

    How to remove clutter from your new tab experience

    When you open a new tab in your browser and it shows you a bunch of news articles, videos and other clutter, it can be distracting and take you away from your current task. You can remove this noise by turning off all the information in the new tab settings.

    1. Open your Edge or Chrome browser
    2. If you are not in the new tab experience, click the + button to open a new tab
    3. Click on settings
    4. Change Quick links to Off
    5. Toggle off Show greeting
    6. Set Content to Content off

    toggle settings for less clutter
    Figure: Change these settings to reduce noise in Edge & Chrome

    Now when you open a new tab, you will see a clean experience with no clutter 🤩.

  20. Mentoring - Standards Watchdog - Do you help everyone to learn the rules?

    "An ounce of prevention is worth a pound of cure" goes the saying. Having a strict coding standard is prevention. To create good code you must have good standards, such as commenting standards, naming standards, versioning standards and knowing the value of consistency.

    But this can really only happen if you’re going to go the extra mile and stick your neck out and correct someone.

    watchdog mean
    Figure: Bad example - Receiving corrections is never easy and often received more harshly than the giver intended

    watchdog watchdog
    Figure: Good example - Go super gentle when people make mistakes. Correct them as though they’re a soft cute puppy 🐶

    Every member of a team plays an important role in maintaining standards. Whether it's your work or someone else's, always keep an eye out for things that can be improved.

    This rule applies to all company standards. Standards are important because they ensure your experience at work is consistent and enjoyable. For example, if there was no standard to stack the dishes in the dishwasher when you were finished using them, dishes would build up and create a big mess in the kitchen!

    Be nice, not harsh

    Read Do you know the nice way to correct someone?

    Small things = Tiny Tip

    When the 'mistake' the person made is not an actual mistake, but something that the company has decided to do in one way for consistency, without a strong argument.

    Tiny Tip: I’d use international format on your phone number so people outside Australia can just click to dial as per https://ssw.com.au/rules/right-format-to-show-phone-numbers

    Figure: Good example - Nicely informing of a small standard oversight

    Important things = Tip

    When there is a proven better way to do something different from what the person has done. You should try to include the reasons.

    Tip: I noticed your email has a very generic subject: "website". Please resend with a descriptive email subject as per Rules to Better Email. This way it is easier to identify, categorize and find this email later, without having to open it :)

    Figure: Good example - Nicely informing of a better way to do something

    Crucial things = Critical

    When the error the person committed can lead to a misunderstanding or a security breach. You should include a task with action when necessary.

    Critical: When sending a proposal never use the word "quote", but use "estimates" instead. As per Rules to Better Project Management we don't work with a fixed price, which is opposite to what the word "quote" implies. This might create different expectation and consequently frustration and legal problems with the client.

    1. Please fix asap

    Figure: Good example - Nicely informing of a critical mistake

    Coding - For Developers

    When you come across a code error, it's always better if you just fix it straight away. Then write an email to the person explaining what has been done wrong and how you fixed it.

    In cases where you aren't able to fix yourself, send an email to report the error/bug, which should be become a PBI and then fixed.

    Tips

    What if it's recurring?

    When you notice someone doing the wrong thing:

    • First time just send an email with a pointer to the rule
    • The second time, have a very quick chat with them
    • Third time call them in and give them a formal talk about it

    Focus on the meat first

    When you receive a great 'done' email or document, make sure you mention how great it is before correcting any potential error.

    Timing is everything - Don't bottle it up

    It can be tempting to offer your feedback as soon as you think of it, but it's better to hold off until the recipient is in a place where they can hear it. If a person is busy, distracted, or in a poor emotional state, chances are your feedback won’t hit the mark. Wait until the person is calm and relaxed before asking them if now is a good time to offer your feedback.

    For more, check out Do you know to create a safe space instead of jumping into feedback?

    watchdog ghost
    Figure: Bad example - Seeing a mistake and not pointing it out doesn't improve a person. Allow them to benefit from your experience!

    Going Anonymous

    If a critique is personal, it can be hard to correct someone – especially if you don’t have a close relationship with that person. In a case like this, you should discretely ask your manager how to proceed.

    Taking Feedback

    watchdog thankyou
    Figure: Good example - Say 'thank you' to a person's corrections to show you don't have thin skin and encourage further positive and negative feedback. It all helps you to improve

    In Summary

    It's important to ensure others are doing their best to maintain and follow the standards. Remember, it can be just as important for someone's professional development to give feedback as it is to receive it. Being able to communicate feedback in an effective and professional manner can benefit you in any career.

    Figure: Good example - Nicely informing of a standards violation

    Using ChatGPT to correct someone nicely

    Using ChatGPT can be an effective way to correct someone nicely. It allows you to provide feedback in a friendly and creative manner, reducing the risk of making the recipient feel defensive or upset. Use ChatGPT to create a personalized and entertaining message that communicates your feedback.

    Example prompt:

    "Act as a rules watchdog and ask Bob to:

    1. Send a v2 email using the "To Myself" format per SSW Rules
    2. Instruct Sophie to send an invoice after the trip, and
    3. Mention other attendees

    Number each point. Make it friendly and funny by acting as a dog character. Be concise.”

    Correct someone nicely
    Figure: The example prompt generates a fun email

    Providing feedback in a light-hearted and friendly manner can encourage colleagues to be more receptive to suggestions. Click “Regenerate response” if you don't like the output!

  21. Mentoring - Do you know what makes a good mentor?

    Trying to do great things is hard. Trying to do them alone is, more often than not, impossible. That’s why all great leaders have mentors, and they also mentor others. No matter how competitive you may feel - especially early in your career - success is, in reality, a team sport.

    Steve Jobs had Bill Campbell as a mentor; Mark Zuckerberg had Steve Jobs; Bill Gates had Warren Buffett... the great Robert De Niro had Stella Adler; even Nelson Mandela had Gandhi to guide him! These are all very successful people, who benefited from having someone more experienced to lean on.

    steve jobs and mark zuckerberg
    Figure: Mark Zuckerberg became very successful under the guidance of Steve Jobs

    Having a mentor will give you an advantage over those who have to navigate and maneuver the IT industry alone.

    Everyone had something to learn and everyone has something to share!

    Mentors don't have to be teaching you something technical. A mentor doesn't even need to be someone more senior than you - they just need to be good at something you are not. If they are an expert in something you don't know how to do - they can be your mentor, and visa-versa.

    Mentors don't need to necessarily help you learn something specific, they can also:

    • Boost your confidence
    • Help direct your career moves
    • Unstick you when you aren't sure which way to go
    • Save you time by showing you where to look, or how to approach something
    • Offer support when times get tough or you have to make difficult decisions

    ⭐ Great mentors should:

    • Push you out of your comfort zone
    • Help you past sticking points
    • Give you great feedback and encouragement
    • Be a confidant when times are tough
    • Care about your success
    • Be a positive role model
    • Dedicate some time just for you
    • Be life-long learners
    • Be open and honest

  22. Mentoring - Do you have a mentoring program?

    Implementing a mentoring program is a powerful strategy for fostering professional growth and knowledge transfer within an organization. By pairing individuals at different experience levels, the program accelerates learning, promotes skill development, and cultivates a collaborative environment. Ultimately, it contributes to the overall success of the team.

    Video: Do you have a formal or informal mentoring program? (9 min)

    There's a few types of mentoring. When you don't have the skills within your company, you hire expert consultants:

    If you do have the skills within your company, then you can up-skill people using the brains of your own company and this usually falls into 2 groups:

    • Ad-hoc mentoring (informal) - You get advice when you need it
    • Scheduled mentoring (formal) - You book in meetings and make a plan

    Who mentors who?

    Most consider mentoring to be a senior guiding and building the skills of a junior. However, you can really supercharge your company if you understand that everyone has something that they can teach someone. Being a mentor also makes people better, so employees should be encouraged to think about what they can teach others.

    What should I get mentored on?

    The first decision should be whether you want soft skills or technical skills (choose one topic at a time). You may already know what you would like to be mentored in, however you really should ask your peers what they think you should be mentored on. You could have a blind spot. Here's how to approach it:

    • Make a list on what you would like to be mentored on. E.g. PowerShell, Power BI, Power Apps, Power Speaking...
    • Approach a few people you trust, and ask them what you should be mentored on (without showing them your list)
    • Then show the list, and brainstorm ideas
    • Make a decision, and approach a mentor

    Here are some of the things you can learn:

    • Public Speaking
    • Account Management
    • Low Code solutions e.g. Power Apps & Dynamics
    • Frontend Frameworks e.g. Angular, React & Blazor
    • Backend - e.g. database design, Clean Architecture
    • Debugging
    • Designing big solutions - Cloud Architecture
    • UI/UX Design
    • Great blogging
    • Increasing your social media presence

    Scheduled mentoring - How does it work?

    The first step is for mentees to find mentors or vice-versa.

    mentoring talk smaller
    Figure: A mentee reaches out to someone they know has great skills in a particular area, and they ask to be mentored

    Once a pairing has been established, the mentor is responsible for scheduling a few meetings with the mentee.

    1. Initial Meeting (30 mins): Introduction to the program and determination of the mentee's specific learning targets
    2. Weekly Check-ins (5 mins): A quick chat at the week's end to gauge the mentee's progress
    3. Monthly Sessions (for 3 months, 30 mins each): Intense mentoring sessions to tackle mentee's chosen target areas
    4. Final Meeting (30 mins): Wrap up, retrospection, and gathering of feedback to refine the program further

    As a mentee, add what you are learning to your Teams status. Mentors can do the same, and let people know what you're mentoring.

    mentoring teams status
    Figure: Let your colleagues know what knowledge you are sharing and learning... subtly 🙂

    Initial Meeting

    • Tell the mentor what you would like to achieve by the end of the 3 months
    • Work out your goals & set targets
    • Then the mentee works independently for a month, checking-in when needed
    • At the end of each week, check-in for 5 mins to let them know how you're going

    3 Monthly Meetings

    • The Mentor will review their progress and give tips or suggestions on how to move forward
    • Set new goals
    • Then the mentee works independently for a month
    • At the end of each week, check-in for 5 mins to let them know how you're going

    Final Meeting

    • The Mentor will review their progress and give tips or suggestions on how to move forward
    • Set some longer-term goals
    • Then the mentee works independently, checking in when needed informally

    It is motivating to know that you will be checking-in with your mentor regularly. At the end of your 3 months, sit down and recap how well it went for you. It's helpful to give a mark out of 10.

    Reward both parties

    It's nice to be thankful, so add this new skill to your GitHub profile, make a social media post or even add it to your LinkedIn. Remember to give your mentor an @mention.

    screen shot 2021 09 23 at 3 53 35 pm
    Figure: Tell people subtly that you are into mentoring. E.g. 👨‍🎓 Exploration: I'm exploring leadership with @adamcogan

  23. Communication - Do you ask questions when you're stuck?

    Many developers sit with their faces to the screen, isolating themselves from the team, trying to solve a problem on their own. If you're stuck on one bug for more than an hour, ask someone to help.

    No-one gets a medal for solving a problem on their own in 2 days, when it could've been solved by 2 people in a couple of hours.

    The Daily Scrum is a good time to bring up any ongoing issues or sticking points if you haven't already.

  24. Communication - Do you CC your Account Manager on emails relating to new work?

    Once a project gets underway, it is not uncommon for the development team to take over a lot of the project management workload. Since they are the people most in contact with the client, sometimes new work will be organized through them instead of the Account Manager.

    When this is the case, the "As per our conversation" email should CC the Account Manager so he is always aware of all work being done, and can create a new CRM opportunity if required.

    If an initial meeting is required for the new work, the Account Manager should be in attendance where possible to help continue the relationship.

    Hi Bill,As per our conversation, you want to book me for another 2 weeks on this additional work.Figure: Good Example - the account manager should be CC'd on an email like this.

  25. Do you seek job satisfaction and enjoyment?

    Long-term success in a career necessitates wholeheartedly embracing and enjoying your job, fulfilling your responsibilities, continuously enhancing your company, and consistently striving for personal growth and improvement.

    If you find yourself not enjoying your job, this is not necessarily a bad thing. You should make a commitment to give it a go and try to make it work. When you have decided you are unhappy, you should talk to your boss and figure out what is making you unhappy.

    Ensuring job satisfaction and enjoyment can be influenced by various factors. Here are some strategies to help cultivate a positive work experience:

    • Find Meaning and Purpose - Seek roles and tasks that align with your passions, interests, and values. When your work has a greater purpose or meaning to you, it becomes more fulfilling and enjoyable.
    • Cultivate Positive Relationships - Foster positive connections with colleagues and build a supportive network. Collaborating with like-minded individuals, having open communication, and engaging in team activities can contribute to a more enjoyable work environment.
    • Seek Growth and Development - Look for opportunities to learn and grow professionally. This can include attending training sessions, pursuing certifications or further education, and taking on new challenges. Continuous development keeps work fresh and stimulating.
    • Maintain Work-Life Balance - Strive for a healthy balance between work and personal life. Prioritize self-care, set boundaries, and engage in activities outside of work that bring you joy and fulfillment. Balancing responsibilities can enhance overall job satisfaction.
    • Celebrate Achievements - Recognize and celebrate your accomplishments, both big and small. Acknowledging your successes boosts morale and instills a sense of pride in your work, enhancing enjoyment and motivation.
    • Communicate and Provide Feedback - Openly communicate with your supervisors and team members. Share your ideas, concerns, and suggestions for improvement. Engaging in constructive feedback and dialogue fosters a positive work environment and a sense of empowerment.
    • Seek Support and Mentorship - Connect with mentors or seek guidance from experienced colleagues. Having someone to provide support, advice, and mentorship can enhance your enjoyment and growth within your job.

    Remember, enjoying your job is a dynamic process that requires effort and self-awareness. By proactively engaging in these strategies, you can foster a more fulfilling and enjoyable work experience.

    Tip for Software Consultants: The number 1 cause of stress in this industry is caused by running out of budget for a project. The best way to handle this is to give realistic estimates, and inform the clients as soon as it looks like they will be exceeded. A client who has accepted the realities of his project is less scary than working on code that's already over-budget with an impending unknown client reaction.

    Richard Branson Picture Quote
    Figure: It's possible to really enjoy your job!

  26. Efficiency - Reuse - Do you create a report whenever you need a number from a system?

    Whenever you need a number from a system you should think of how you can create a report, so next time you can press a button to get the result.

    If you found yourself doing ad-hoc reports, or random SQL queries, a few years ago, the best thing to do was to make sure the boss knows you could not find the data you needed, so he could commission a new report to be built.

    Since 2015, the best practice is instead to jump into Power BI and build the report yourself.

    Figure: Bad example - Can't build it yourself, sending an email to your boss for a number

    Power BI
    Figure: Good example - Sate your own curiosity with Power BI

    See Ulysses' video on how Power BI is the best tool for this:

    Video: Power BI - Decisions based on facts: A Real World Look at Power BI (1 h 6 m)

  27. Quality - Do you give 120% when deadlines are tight?

    There are times when you can happily work your standard hours, but there are times when your whole team would appreciate some hard work. This should not be the standard, but extra work at certain times is a given in a professional industry.

    WorkingHard Figure: On occasion, everyone has to work extra hard

  28. Do you give people a second chance?

    "A great man shows his greatness," said Carlyle, "by the way he treats little men". Bob Hoover, a famous test pilot and frequent performer at air shows, was returning to his home in Los Angeles from an air show in San Diego. As described in the magazine Flight Operations, at three hundred feet in the air, both engines suddenly stopped. By deft manoeuvring he managed to land the plane, but it was badly damaged although nobody was hurt.

    Hoover's first act after the emergency landing was to inspect the airplane's fuel. Just as he suspected, the World War II propeller plane he had been flying had been fuelled with jet fuel rather than gasoline.

    Upon returning to the airport, he asked to see the mechanic who had serviced his airplane. The young man was sick with the agony of his mistake. Tears streamed down his face as Hoover approached. He had just caused the loss of a very expensive plane and could have caused the loss of three lives as well.

    You can imagine Hoover's anger. One could anticipate the tongue-lashing that this proud and precise pilot would unleash for the carelessness. But Hoover didn't scold the mechanic; he didn't even criticize him. Instead, he put his big arm around the man's shoulders and said. "To show you I'm sure that you'll never do this again, I want you to service my F-51 tomorrow."

    To err is human and it happens to the best of us. When a mistake happens, getting upset and lashing out doesn't resolve the situation. The best course of action is to examine what went wrong, and how it can be prevented from happening again.

    This story from Adam Cogan is a good example of this:

    One of my staff, I won't tell you Edward's last name 😉, offered to help clean up my laptop by backing up my files, reformatting and starting from scratch. For some reason or another, all of my emails and client work were destroyed. Naturally, I was upset, but instead of coming down on him like a ton of bricks, I: 1. Went through the steps he took;

    1. Identified where he did not do what he was supposed to; and
    2. Showed him the company standard for backups.

    By giving him a second chance, I ensured that he and others would not make the same mistake again, without making him feel any worse than he already did.

  29. Do you offer positive feedback and give credit?

    Receiving positive feedback makes everyone feel good, peps them up, and encourages them to do more of whatever they are doing.Forgetting to recognize success means they have no motivation to succeed.

    This is a simple rule - if someone goes beyond the call of duty, you thank them.

    Bonus: If you want to go further, you can tweet the link where you've found help from.

    Tip: Elaborate your text and avoid adding URLs as it may look like spam.

    GoodJob
    Figure: Show appreciation when you've got help

  30. Communication - Do you offer specific feedback?

    Every day you will probably come across something that could be improved. If you're not making improvements, you're going backwards. But don't make suggestions or criticisms without being specific.

    "Do you know our sales process is pretty bad, what are you going to do about it?"

    Figure: Bad Example - Nonspecific criticism

    When you find a problem, pinpoint it directly (and recommend a solution):

    "The current sales process is pretty bad. It does not ensure that a prospect is followed up by a phone call within 7 days of an initial meeting. Please create a workflow in CRM, have it tested by the sales manager, and then we will email the sales team to inform them about the improvement."

    Figure: Good Example - Offering criticism in this way ensures that something will happen to fix the problem

    "Not done, please try again"

    Figure: Bad Example - If they don't immediately know what to fix, this might end up in their "too hard" bucket and never get done

    "Not done, you missed the second requirement"

    The specific missed requirement lets them quickly fix the mistake

    Of course, there are times that you can 'feel' that a problem exists, but you may not even be sure how are unable to pinpoint it or can't think of a good solution. In this instance you should speak to someone who you think may be able to identify a solution, come to an agreement, and then request that action be taken.

    When criticism is generic, it is impossible to know what to fix.

  31. Ethics - Do you only do what you think is right?

    If someone asks you to do something you believe is unethical, please ring them up straight away and discuss the issue.

    Figure: Don't do everything you are asked. Have a frank discussion if you feel strongly about something

    It can also be a good idea to document your objections in an email.

  32. Office environment - Do you follow the company's dress code?

    The way you and all members of your team present themselves is a crucial part of creating a good impression for your clients, particularly in their first encounters with you.

    Dressing Up

    One aspect of this is the dress code. Dress code is important for two reasons:

    • Looking professional and keen for business
    • Reinforce the company's branding

    Public Events and Meetings

    Of course, when in a public event such as a User Group, conference or seeing clients you should "Dress Up".

    It should go without saying, but of course, things such as shaving off your weekend facial growth, using deodorant and having clean teeth and nice breath is assumed.

    sean connery dressed up
    Figure: "There is nothing wrong with being the best-dressed man in the room." - Sean Connery

    On a business flight

    It's a good idea to "Dress Up" in flights as you never know who you will be seated next to.

    Figure: Why dress up in a flight

    Dressing Down (aka Casual Fridays)

    Many companies find it a good idea to have Casual Fridays. It is free and easy to do and gives the team something to look forward to.

    At SSW employees can optionally work from home Monday/Tuesday, then "dress up" on Wednesdays by wearing company colors, with a nice shirt (business or polo), trousers (not blue jeans), belt, nice shoes (no sneakers, joggers or thongs). So most employees wear their SSW shirts or SSW T-shirts on Wednesdays.

    Then they "dress down" later in the week... so they have "Casual Thursday" and "Fun Friday". Thursdays are for casual clothes. On Fridays, employees are encouraged to wear sporty clothes such as shorts. It allows the end of the week to be fun.

    SSW Dresscode Poster v2
    Figure: SSW Dress Code poster

    Shorts Days - the cool exception

    On very hot days, shorts are allowed as soon as you've got an email like this:

    Figure: Good example - Nice "Shorts Day" email template by SSW.Shorts

  33. Office environment - Do you have your mobile phone on vibrate?

    If you were talking to someone, when their phone rang; would you want them to answer it? If they were using a loud ringtone, the only way to continue your conversation would be to wait until they had finished or, at least, they would have to get their phone out to hang up. Why should the person who called get preferential treatment and be able to jump the queue?

    Your mobile phone is a very useful tool. However, it can also be a nuisance. To make sure it doesn't interrupt your daily activities, you should always put it in silent mode.

    If you have a wearable device like an Apple Watch/ Fitbit/ Microsoft Band that connects to your phone, your wrist vibrates when you receive a call. This alerts you to your incoming call silently even if you are not near your phone, and means you *never* need to have your phone on anything but VIBRATE. Microsoft Bands also have the added advantage of allowing you to send a text message-based quick response right from the device letting your caller know you are busy.

    apple iwatch incoming call
    Figure: With an Apple Watch, you can keep your phone on vibrate 100% of the time and never have to worry about missing a call

    fitbit band incoming call
    Figure: With a Fitbit, you can keep your phone on vibrate 100% of the time and never have to worry about missing a call

    microsoft band incoming call
    Figure: With a Microsoft Band, you can keep your phone on vibrate 100% of the time and never have to worry about missing a call

    This has the following advantages:

    • You get to only answer the phone when it is convenient for you
    • You won't be interrupting conversations with clients, which can be seen as unprofessional
    • You don't interrupt people's work with loud ringtones

    **Figure: Should the person you’re meeting get priority...or the person ringing in?**

  34. Office environment - Do you give enough notice for annual leave?

    Give your employees a flexibility for small leave periods (say 1-3 days) and let it be 'auto-approved'. That means that employees will often take small periods of leave with little notice. However, this has big benefits for both employees and employers, as it removes the incentive for employees to lie and say they are 'sick' when they need time off with short notice.

    For Employees:

    Tell your managers and co-workers as soon as you know when you will be away. If you're planning to be away for any substantial amount of time (say 3 days or more), make sure you have told everyone who will need to know about 4 weeks in advance whenever possible. Most importantly, ensure that your clients are not left in a difficult position while you are gone.

    Generally, people who need to know include:

    • Your managers
    • Your current client
    • Your close co-workers

    Appointment tips:

    • Put your name in the subject of the appointment (so someone scanning the leave calendar can see who's away easily)
    • Add a brief description of why you're away (holiday, doctor, etc.)

    Figure: Bad Example - not enough notice for substantial leave

    Figure: Good Example - appropriate notice given

    BeachEnforcers
    Figure: Did you give enough notice, or do we need to track you down?

  35. Office environment - Do you know how to get approval for a purchase?

    When you need to spend money, don't assume you will get authorization – make sure you have approval before spending the money.

    Let's have a look at the best way to get authorization:

    1. Send an email to your boss, manager, or financial controller (or whoever the appropriate person is in your company) outlining what you want to purchase and why. You should provide as much information as possible and recommendations, so it's easy as "rubber-stamping". Your goal should be to make your purchase as easy as possible to be approved!
    2. The email subject should be "Purchase Please - Request for xx"
    3. If appropriate, include 2 or 3 quotes (call them "Option A, Option B etc") aiming to keep expenses low, and which you think is the best option
    4. End the email with "Please approve"
    5. Wait for an email back with "Approved" (prior to the purchase, or you may not get reimbursed later)
    6. Forward a copy of the email to the financial controller/accountant with:

      • Your manager's approval (in the history)
      • Attach the tax invoice
      • State how the payment was made (whether you paid it yourself and need reimbursing or if it was on a company credit card, and if so, which one)
      • If this is for a client, include the Client ID/name
      • If it is for a client, include if it is to be on-charged (E.g. please invoice - add 20%)
      • Try to obtain receipts in English, if they are not, you must write on the receipt what it is, and what it was for

    Cross-authorization

    We recommend having a cross-authorization system in place that follows your hierarchy. You should not be blocked by reasonable purchases (e.g. under $1,000).

    Here is an example: Sophie works in Marketing and wants to spend $400 on an ad campaign. If she can't reach the State Manager, try another State Manager, then their boss, then other Head of department, then the Accounting department, then any senior person that sits next to her...

    This system means no one is blocked.

    Exceptions

    When approving purchases, you might come across some exceptions depending on the business/industry you are in. Here are some examples:

    • IT - Be mindful that IT purchases could be of a higher amount and require a unique approval flow.
    • Marketing - The marketing team usually works with a previously approved budget and this could vary in period e.g. monthly, quarterly, etc.
    • One-time vs. subscriptions - Make sure to highlight when a cost will be a one-off or recurring cost. This is important if the team works on a budget basis.

    purchase please bad example
    Figure: Bad example - This expense will not be reimbursed

    purchase please good example
    Figure: Good example - This expense will be reimbursed, if David gets an approval from Adam

  36. Quality - Do you know the best books to read on software development?

    As a software consultant, knowing your industry, your project management methods and your technologies are vital. Although we're always looking for the latest best practices and shiny new technologies, knowing the fundamentals is vital.

    Although everyone learns differently, and some prefer video sites like www.pluralsight.com to reading, these books are still full of useful information:

  37. Quality - Do you know the best place to find good software videos?

    The easiest way to digest complex information can often be in video form, as it gives you both audio and visual queues to help with your comprehension. the best places to find good software development videos are:

    1. Pluralsight- showing developer courses to help learn new technologies
    2. SSW TV - showing webinars, how to videos, and interviews with leading industry experts to keep you updated on all things Microsoft
  38. Communication - Do you know the nice way to correct someone?

    When you notice that someone has done something that could have been done better, make sure you are tactful in your correction/suggestions. When you are giving someone a correction or tip, try to include an URL to back up your point.

    For example, if someone sends you an email that should be an appointment:

    Subject: Meeting

    Hi Guys,

    Let's meet on Thursday at 3 PM

    Figure: Someone requests a meeting using a normal email message

    You could reply in different ways:

    Subject: RE: Meeting

    Hi Mary,

    FYI - an appointment would have been better. See rule in Rules to better Email

    Figure: Bad Example - Just pointing the mistake

    Subject RE: Meeting

    Hi Mary,

    I noticed you did not send an appointment for this meeting. I hope you don't mind, but I have gone ahead and created one so we don't all have to set a reminder individually.

    Have a look at our Rules to better Email. We have a number of helpful standards like this if you're interested.

    Figure: Good Example - Being proactive to solve the problem + pointing the mistake in a friendly and polite manner

  39. General - Standards Watchdog - Do you provide the reason behind the rules rather than just enforce them?

    Learning lessons the hard way is a fact of life, but one of the great things about teamwork is that you can help others avoid making the same mistakes over and over again. This is the foundation of great standards! But what happens when a new (or old) team member misses a standard?

    "The floggings will continue until morale improves"

    - A bad manager

    Everyone makes mistakes. If you run around wielding your authority as a cudgel, telling them they'd better comply or else, two things will happen:

    1. They will resent you
    2. They will only bother following standards when you're around

    For example: if one of your standards is for developers to send "test please" emails, there's a hard-learned lesson behind that standard (or else it wouldn't exist!). You can beat your developers over the head with the rule, or you can take 5 minutes to explain the reasons why it exists and why it's important.

    Figure: Bad example - This email doesn't tell Mark why this is so important.

    Figure: Good example - provide a link to your standard and the main reason(s) why this standard is important

  40. Efficiency - Do you know the recurring tasks you have to do?

    Recurring tasks are the tasks that have been allocated to you to be done on a periodical basis. You may not have a specific task email in your inbox telling you to do this. However, these kinds of tasks are normally very important as they keep our system running.

    For example: We have a Network Health report to tell our Network Administrators that everything in our network is running ok, so it will be the network administrator's responsibility to check these reports daily to make sure all issues are fixed or escalated.

    Check your employee responsibilities and make sure you do all of your recurring tasks on time and efficiently. If there is any roadblock stopping you, you need to escalate the issue to your manager immediately.

    One way to manage this is to use recurring Outlook appointments, especially if it's something you only do monthly or less. If it's a daily or weekly task, you should just remember as you'll be doing it regularly.

  41. Office environment - Do you label broken equipment?

    Imagine you see one port of a hub not working, what do you do?

    When you see something not working like a phone or a power point, don't ignore it, stick a note to it and tell the appropriate person.

    Create a form that reminds you what is broken, who you have to call to fix it and any notes that may need to ensure that the item in question is fixed properly or replaced.

    LeaningTowerOfPisa
    Figure: Good Example - Label broken things

    If you want to have a more formal version of the sticky note, the SSW Design Team has created this PDF which can be printed and attached to stuff that needs fixing (however, normally just a yellow sticky note and an email does the job just fine)

    broken things
    Figure: OK Example - Print PDF, fill the form and attach to broken things in the office

  42. Communication - Do you notify others about what is happening?

    When something happens in your company, always send around an email so that the whole team is kept in the loop.

    Examples of events that you should send an email around for:

    • An update to a company standard or procedure (including a link to it)
    • Births and marriages
    • Employees who are starting or finishing
    • Anything significant that is happening in your life

    You should really feel free to share any good news you have with everyone. It will make the office feel more like a family and not just a place to turn up to work.

    Hi Guys,

    I'm heading to Sanya with my wife and kid this weekend. I still remember the good time I had there last year at the MVP China Summit; also I think I need to recharge myself a little bit after long time working over 12 hours almost every day.

    Pretty excited right now as this will be the very 1st official trip that I take with my kid. I hope he likes the beach.

    Be prepared for more photos from my Nikon D80, I think it will be having a hard time during these 5 days.

    Will be back next Thursday, so if you need me for anything, call my mobile XXX (if you are in Sydney), or YYY (if you are in Beijing)

    Figure: Good Example - Notify others and provide them with contact details

  43. Communication - Do you include a standard signature to your comments on blogs and forums?

    If you see something in a blog that interests you or that you disagree with, reply to it. You should not be afraid to voice your opinion and it's a great way to make a name for yourself and your company on the internet.

    Whenever anyone in your organization responds to a blog entry or forum, they should always use a standard company signature.

    {{ BLOG COMMENT }}

    - Adam Cogan ssw.com.au

    Figure: Good example - Name and company after a blog comment

    This will help with branding, company recognition, and brings a sense of unity to everyone within your company when they see each other's entries.

  44. Do you share your work preferences with your manager but accept less interesting tasks when needed?

    Developers often have a very clear idea of what kind of work they want to do. They might want to develop expertise in SharePoint, CRM or SQL Server. They should always keep their manager informed of what kind of work interests them and on which they want to focus. Managers often have many staff to keep in mind and unless you remind them they may well forget and give a hot opportunity to another staff member.

    You should also let your manager know what work you'd prefer NOT to do. This might be older technology, testing or niche areas. Despite the expression of your preferences to avoid particular types of work, you should understand that your manager will sometimes unavoidably have to give you tasks in those areas.

    PreferStuff
    Figure: Clearly tell your manager what work you prefer to do, but don't scream when you are asked to do other, less interesting work.

  45. Efficiency - Do you use Source Control and Backups?

    As a responsible employee, there should be no excuse for ever losing data, especially if it belongs to a client. For this reason, it's important to make sure:

    • Your backups are working properly (backups always succeed, restores fail)
    • You are using source control for any code you develop

    It doesn't matter where you are, you can still version control your source code and it's important to talk the client into this in order to avoid any possible disasters.

    Figure: Have a backup

  46. Communication - Do you use videos or voice recordings instead of sending long emails?

    Sometimes it is quicker to explain something than it is to write a comprehensive email. This is particularly true when explaining an idea or concept relating to a product, and you need to go backwards and forwards many times to clarify details. If you can't easily speak directly with someone, due to schedule, travel, or time zone constraints try sending a voice recording instead.

    Sending videos or voice recordings can be thought of as a slow paced conversation. There are many benefits to sending voice messages instead of email when iterating over concepts and ideas.

    Sending and listening to voice recordings feels more personal than reading an email, because it is possible to hear the person's mood and emphasis more naturally. It is also helpful if the recipient needs to re-play a portion of the message to understand it, especially for people who are communicating in a language other than their native tongue.

    Voice recordings and videos shouldn't replace email entirely, but can be valuable tool when used at the right time. There are a number of technological tools available to facilitate this. Here is a list of some of the services you can use:

    For videos, you should put them on youtube as unlisted videos and send the link

  47. Setup - Do you use two monitors?

    Studies have shown that you can get up to a 30% increase in productivity by using more than one monitor when you work.

    Providing users with the ability to access more information and images simultaneously, multiple monitor configurations allow for more efficient multitasking between applications.

    For example... if you were a developer, you could have your references in one monitor and your Visual Studio in another, and directly compare the 2 without compromising on space or layout.

    Figure: Good example - Two monitors are better than one

  48. Do you use suspend on your notebook?

    Being developers, it's often the case that we have to take our notebooks to visit a client or even home for the day. Using the suspend option is a great way to make sure time isn't wasted. Instead of shutting down and restarting (which as we know can be a lengthy operation) using suspend you can be working again much more quickly, meaning you can utilize that extra 10 mins in the car or on the train. Also, a good option is to have an SSD (Solid State Drive, as opposed to a Hard Drive) as your primary Operational System drive, as it drives the boot time down considerably.

    Your notebook should also be configured so that if it is left in suspend for a long period of time (more than 10 minutes) it will automatically hibernate. However, your notebook should not automatically suspend or hibernate if the lid is simply closed. Both of these settings are in the Power Options in Control Panel.

    Figure: Power Options

  49. Quality - Do you get your most experienced colleagues to check your work?

    It never hurts to get the advice of your colleagues, and getting advice from someone who's been doing what you're doing for a while will always teach you something new and improve the quality of your work.

    For development, as your application starts to develop into a usable entity, make sure you get your Chief Architect (or equivalent) to have a look at what you're doing and weigh in with their advice.

    You can do this through either a test please on an individual piece of work, or a code review for the entire project.

  50. Quality - Do you implement an error logger that has notifications?

    When building an application for a client, you should implement functionality which will notify you personally whenever it throws an exception and log the issue for review.

    There are a few reasons to do this:

    • It gives you a sense of ownership of the project
    • It makes finding out what's going wrong easier
    • You can keep a history so you can see if there are any recurring exceptions
    • You can ensure the long term quality of you application
    • You are not just washing your hands and leaving at the end of the release

    You will find that this will lead to more clients who are happy to use you into the future because they know that you care about their application.

  51. Quality - Do you know how to request a "Test Please"?

    Testing is a fundamental aspect of software development, serving as the quality assurance checkpoint that ensures a product functions as intended, meets user expectations, and operates reliably in various environments. This crucial phase helps identify and rectify issues, enhances user satisfaction, and ultimately safeguards a software's reputation and success.

    These are the steps you should take when requesting a "Test Please":

    1. Find 2 free testers to send the email below
    2. Stop working on the project until you receive either a "pass" or "fail" email
    3. Create your "Test Please" following this template:

    Note to developers: If current version is better than the last version you can release (even with a test fail) as long:

    • The bugs reported in the test fail existed in the old version
    • 2 people have tested it
    • The changes in this version are fairly important to get out
    • You get to work on the failures ASAP

    Don't send a 'Test Please' content via IM

    You may use IM (e.g. Microsoft Teams) to point the tester to the 'Test Please' email.

    "Ping!
    I need you to check my 'Test Please' email
    See subject: Product Name v1.11"

    What if you are doing an email test?

    In most cases, you can get your email 'Checked by xxx'.

    For really important stuff you may need to actually send a 'Test Please' email to test your email. In these cases:

    • Add 'Test Please' highlighted in yellow to the top of the email body
    • Do not add 'Test Please' to the subject (it is too easy to forget removing it later!)

    What if you need to get input from a few people?

    If you have received a task that requires input from a few people that were not originally cc'd on the email or on the 'To Myself', like getting feedback on a design, it's nice to give everyone the entire task context.

    You have 2 options:

    1. Keep the "test" in the same thread (recommended)
      In this case, just add the people you need to the thread, asking them specifically for a 'Test Please' on what you need
    2. Create a new thread for the 'Test Please' This is for when you have a good reason not to (e.g. avoiding too long email threads; too many people cc'ed, etc).
      In this case, make sure you include the original thread subject in your email, so people know the main task is happening there

    This way everyone will have the entire history of the task and its progress.

    What if you're doing a Windows Forms test?

    For Windows Forms test you should include this info to the email:

    • The latest version of {{Product Name}} has been uploaded to \frog\SSW\Download[Application_verX-XX_beta.exe
    • Test on a fresh VPC image of Windows
    • Install into a non-default directory
    • Check the installation folder for misplaced items
    • Test Unit Tests via "Help - Run Unit Tests"
    • (If Applicable)Test the "Create" and "Reconcile" buttons. Read Rules to Better .NET Projects
    • Test open and closing forms and saving values
    • Test most buttons and menus and links
    • Disable your network connection and test again (check for unhandled errors)
    • If your test fails, please rename the executable to Application_verX-XX_failed.exe

    Note: For clients on fixed-price contracts, the 'Test Please' reply marks the start of the 30-day warranty period.

  52. Quality - Do you only deploy after a test please?

    In order to ensure the quality of the code you deploy, make sure you don't deploy until you have got your code fully tested and received a "test passed".

    There is more than one potential successful path to get work from "In Progress" to "Done" - what's important is that this process is consistent for a project and the whole team follows this process.The Scrum Definition of Done is a great tool to document and promote this consistency, and the Sprint Retrospective meeting is the perfect opportunity to review and refine this document.

    Here are some examples:

    • In some teams, the client directly participates in the Scrum team by testing PBIs as they are completed. In this scenario, a good approach is for these testers to be the only users that can mark a PBI as 'Done' on the Azure Devops task board.
    • With automated deployment tools such as Octopus deploy you can give your client direct control over deployment resposibility by controlling access rights to the "Deploy to Production" button.

    OctopusDeploy

    Figure: Giving clients sole access to the deploy button, allows them to take ownership of the decision to deploy.

    For more information on this, see Rules to Successful Projects.

  53. IP - Do you make your templates accessible to everyone in your organization?

    A common mistake is to use code or emails that you have previously written, and stored somewhere on your computer, and change around key bits to make it relevant for the current situation.

    The problem with this is that you make it impossible for anyone else in your organization to do the same task to the same quality level.

    Make sure your company has a common code base and email template store and endeavour to improve it regularly. This shares knowledge across your organization and makes sure everyone is working to the level that your company standards require.

    Create Nuget Packages for reusable code libraries

    The best approach to reuse code across multiple projects is to create Nuget Packages. When you need to update that library, it is then trivial to apply that update to your client projects.

    BCE Nuget Server
    Figure: Good example - when reusing code across multiple projects for a single client, hosting your own Nuget Server provides an excellent way to manage shared private dependencies

    For details on creating your own internal Nuget repository, read Do you create a private repository for reusable internal code?

    SSW nuget
    Figure: Good example - If your library has potential outside of your current requirement, consider publishing to the world on Nuget. Often the work involved to make a library more generic and re-usable results in better-quality code

    See a selection of Nuget packages published by SSW.

  54. IP - Do you teach & share ideas regularly?

    Each team member has their own set of skills. There is no use hiding those skills "under a bushel". If you can at least share one idea a week the team's shared knowledge increases. This has many positive spin-offs, for example, the teams don't become reliant upon one individual, and when your idea is adopted your confidence increases allowing you to make more contributions in the future. Importantly, it's not only management that should contribute this way. Everyone has something to share.

    William McKnight, the chair of 3M said: *"It is essential that we have many people with initiative if we are to continue to grow."*

    As an example, if you have a handy tip, send an email to your team or add it to the KB.

  55. Communication - Do you avoid swearing at work?

    Swearing is not acceptable at work. People should not get comfortable with bad language as the work environment would suffer. You should be especially careful when giving and receiving feedback.

    Some good deterrents are:

    • A swear jar
    • To enforce 10 push-ups for every infraction (recommended - this is the same concept as a swear jar but also promotes fitness).

    gordon ramsay
    Figure: Gordon Ramsay - The only man who can get away with professional swearing

  56. Communication - Do you use correct English at work?

    Communication and how you express yourself to your co-workers and clients is reflective of the company you work for. You should practice correct English, as it displays your professionalism and courtesy.

    For example:

    "It's going good" Bad Example - using incorrect English "It's going well"Good Example - using correct English

    Check out this video which highlights 5 common mistakes made by native english speakers:

    If you feel very strongly about this, you could enforce 10 pushups per infraction, similar to the penalty for swearing

  57. Office environment - Do you supply your employees with a locker?

    It's important to provide a physical space for each employee to store their stuff and as a bonus they can also receive packages and mail. Lockers should:

    • Be clearly labelled with the staff members name
    • Ideally, should have a slot for mail
    • Ideally should be half-height so you can hang a shirt or a jacket
    • Encourage the goal of a clean desk policy
    • Encourage the chucking of paper - it should not be a place to keep all of your scraps of papers. Paper tends to get lost and should be transferred to tasks as 'To Myself' emails and then chuck. See Rules to better Email for more information.

    drawer bad
    Figure: Bad example - Having a drawer and a mailbox takes too much space (2 different locations) and larger packages won't fit

    Lockers
    Figure: OK example - Stepped lockers are great as they allow jackets (however missing the mail hole

    locker good
    Figure: Good example - A locker with mail slot is ideal for both mail and packages

  58. Office environment - Do you use the 5S desk space organization system invented by the Japanese?

    The 5S desk space organization system was invented by the Japanese. Basically, it is a 5 step daily procedure to keep your desk clean and common stuff in the same place. When you have no useless stuff around, it brings you peace of mind and efficiency.

    Here are some resources on the topic:

    Apply 5S Desk 01 GoLeanSixSigma com
    Bad example - A messy desk is a messy head

    Photo: courtesy of goleansixsigma.com (source).

    Apply 5S Desk 04 GoLeanSixSigma com
    Good example - A clean and productive workspace following the 5S methodology

    Photo: courtesy of goleansixsigma.com (source).

  59. Office environment - Do you avoid listening to music while at work?

    Should we be listening to music at work? I've had the debate with numerous people and decided that, generally, you should avoid it.

    Regardless of whether it is AC/DC or DotNetRocks, music/podcasts should not be used in the workplace, especially using headphones, because:

    • We want the team to work with each other, and we don't mind that they hear other conversations going on. Hopefully, if they hear about a problem they can fix quickly, they'll help each other out.
    • It's been suggested that multitasking lowers your ability to efficiently carry out a task by as much as 20%! (e.g. doing your task at hand along with listening to tunes)
    • It can be anti-social - some people can shelter themselves
    • It regularly leads to "oh, I love this song, you should hear it" which subsequently turns into a bigger distraction from work for multiple people

    Others have said we are wrong with reasons like:

    • "It helps me give you 100% - since the office is noisy I can concentrate and I need to block out a noisy environment"
      Isn't the music just creating an additional noise source?
    • "It helps me relax"
      Yes, we love hearing a good song, for example, when Adam hears Robbie Williams' "Better man" it gets him pumped a bit and it has a positive effect on his state of mind. We are unconvinced it helps us program better.
    • "In an open office, headphones are not merely transmitters of sound, they are like ‘Do Not Disturb’ signs on a hotel room door." In several open offices using a headphone seems to be encouraged as the most effective for productivity.

    There is, however, a use for it being "background" music in some scenarios; like when you are doing time-consuming mindless stuff like fixing data, building VPCs/VMWare or waiting for long builds.

  60. Communication - Do you know the best chat tools for your employees?

    There are many tools used to communicate and collaborate online. The most efficient platforms for chats and calls are:

    We think Viva Engage could soon be decommissioned to reduce confusion.

    In China:

    use wechat for work
    Figure: Bad example - Jim uses WeChat for work and asks Luke to come to the Big Chat room

  61. Communication - Do you hold regular company meetings?

    One risk of running a consulting company is your employees can start to feel disconnected from the main organization, especially if they spend all of their time working onsite. One solution is to get them to work from the office at least once or twice per week, and another is to hold regular company meetings.

    These meetings should be held every 1-2 months as needed, and give the chance for everyone to get together and reconnect. The business owner can highlight any key things that have happened in that time and point out any changes for the next period.

    There may also be time for a couple of other people to address everyone if there are any key things that need to be brought up.

    So that it doesn't impact client work too much, it's generally best if this meeting can be timeboxed to about 1 hour and be held over lunch.

    After each meeting, the organizer should set the date for the next one and send out an appointment with a "Skype Meeting" request, so available people can simply click the "Join Meeting" link to join, as this saves time and makes the beginning of the meeting run smoothly.

    SkypeForBusinessMeeting
    Figure: Good example - Use the inbuilt meeting functionality to make sure no one gets left out

    Figure: Good example - Email template for the meeting

  62. Efficiency - Do you timebox approval requests?

    Some managers or approvers can get very busy, and if you don't manage them closely, can cause deadlines to be missed, opportunities to pass by, and work to be wasted. Remember, they're usually doing a lot of other important work, and although approving your piece of work is important to your workflow, it may be less important in the big picture than what is taking up their attention.

    The best way to ensure your work is approved and goes live is to physically sit down with the approver and get it approved on the spot. However, if this is not possible due to unavailability, you need to have a back up plan to make sure your work is not wasted.

    The best solution in this case is to set an agreed timeframe for any approval, after which time, you will assume a "test passed".

    To avoid the approver feeling hard done by, make sure you do the following:

    • The time frame needs to be more than reasonable, to allow the approver time to get to it if it's actually important for them to see
    • The approver needs to be reminded when half of the timebox has expired, and again on the last day, to ensure that they are aware that their approval is about to be bypassed, and can request an extension if necessary. Read Do you follow up tasks effectively? to facilitate this
    • If the approver needs more time, it is ok for them to ask for an extension. It is not, however, ok for them to just say "Don't go live until I've approved it", as this just puts us back in the same position we were in before we had this rule

    Figure: Bad example - Chasing an approver with no set timeframe is frustrating and disempowering

    Figure: Good example - An agreed timeframe is communicated so there are no surprises

  63. Do you use timeboxing to avoid wasted time?

    Sometimes you can set a task or be given work that ends up taking much longer than expected. Timeboxing sets a time limit to a task, after which you must stop and move on.

    Timeboxing allows you to give more context to a task by showing how much time (and therefore money) you are willing to spend. This typically applies to:

    • "Nice to Haves" - If it takes too long, don't worry about it
    • Risky tasks - I'm not sure this will even work, if you can't figure it out, don't worry about it
    • Unknowns - This could take 2 minutes or 2 days. If it takes too long don't worry about it

    Time box: 1 hour.

    Figure: Good Example. A timeboxing of one hour. Assignee should not spend more than the time allocated on this task

  64. Communication - Do you go beyond text when using Teams/Zoom/Skype chat?

    Communication can be difficult (even if English is your first language!). It might be tempting to only communicate via text in IM, but this will not improve your skills or build a relationship as well as communicating verbally.

    skype conference
    Figure: Good example - Asking ‘Can I call you?’ (Especially for complicated conversations)

    Tips to have a better call

    Try to always answer the call with video (if weak bandwidth, use it for the first 10 seconds and say "I'll turn off video to save bandwidth").

    Sound

    • Be ready with the headset already on (it looks disorganized plugging it in after you make the call)
    • Check the sound quality of the microphone - you need a good mic and it should be close to your mouth - if you are using the laptop mic, sit in close.

    Video

    • Check the image quality of the camera.
    • Beware of the angle of the camera - laptops with thin bezels now put the camera at the base, looking up your nose. Avoid them. Frame your head and shoulders in the shot, and keep the camera lens at or above eye level - use a stand if necessary

    screen stands
    Figure: Height-adjustable monitor and laptop stand

    • Consider what is in the background.
    • Keep a light source on your face, and try to avoid sitting with a window behind you.
    • Have a microfiber cloth and wipe off the lens from time to time.
    • Get your video background right. Read Rules to Better Branding

    Bad Video Background orgn
    Figure: Bad Example - Ugly background showing an air conditioner

    Good Video Background orgn
    Figure: Good Example - Nice background

    Text

    • It's always helpful to confirm things you're talking about with typed text during the call (Especially helpful for people with English as a second language).

    For more info see How to look and sound great online

    Tip: Help the other person with following this rule by taking a screenshot and giving them a mark /10 with good and bad feedback on the call quality and background.

  65. Do you know the modern alternatives to using a whiteboard?

    A great way of collaborating with a team or presenting a new solution to a client is using a visual display of your recommendations.

    Using a whiteboard is a great way of collaborating and brainstorming which works quite well. But a physical whiteboard is a large ugly object that takes up a fair amount of room, often isn’t kept clean, and doesn’t allow for people to collaborate remotely. There are modern alternatives that work even better, let's have a look at them.

    Scenario: Software consultants often use architecture diagrams to present a solution to the client. These graphical representations are used to help all of the stakeholders, the developers, the designers, and the clients visualize the high-level structure of the system or application to ensure it covers all of the client requirements.

    bad paper draw
    Figure: Bad example - When working with people online, drawing on some paper, taking a photo, and emailing it... is the least collaborative way to work

    team whiteboard
    Figure: OK example - Teams Whiteboard is a good collaborating tool while working online. (Using a pen and touch device provides the best experience, using a mouse is not pleasant)

    architecture diagram
    Figure: Good example - An architecture diagram exists on established projects after many discussions

    If you are in a situation where you just need to show someone what you are doing then you can use your laptop or iPad and cast it to a monitor or a remote screen.

    There are 2 ways to open the Teams Whiteboard:

    1. In video chat the Share Icon | Whiteboard
    2. In Teams chat window Click + | Whiteboard

    Figure: Using Whiteboard in Microsoft Teams

     

    Figure: Using Microsoft Whiteboard App #2 Tech Whiteboard replacement

    #2 Electronic whiteboard alternatives

    • Samsung Flip ($3k AUD)

    Figure: Using Samsung Flip

     

    samsung flip
    Figure: Samsung Flip can be flipped from horizontal to vertical

     

    • Microsoft Surface Hub 2 (about $12K AUD)

    Figure: Using Microsoft Surface Hub

    #3 Paper Whiteboard (Low tech – a large piece of paper)

    Old school but it is great to have a pen in hand, you can always just grab a big piece of paper and draw on it together.

    Bear in mind that paper is not ideal because you can’t wipe it out... you have to start again #ouch

    paperboard
    Figure: Paper whiteboards don't work when someone is in Sydney and the other attendee is in Melbourne

    #4 Whiteboard and marker - Low tech (ugly)

    The traditional whiteboard.

    Quote from Adam Cogan (apparently not a fan of whiteboards in a tech office):

    I believe whiteboards are a sign of an old office… and they are ugly. They’re not a sign of a modern office. Sometimes they are useful and I know some people really like them (generally older people). I have seen the digital whiteboards (usually targeted at teachers) but I think they are horrible to use. The common scenario is for a Spec Review. I am always happy when I see devs using their device and casting to the TV. And the subsequent notes get saved to Microsoft Teams.

    whiteboard marker
    Figure: Whiteboards are not a sign of a modern office

    #5 Writable wall - Low tech (ugly)

    Low tech (ugly) – Paint a wall to be writable or put some writable film on an office glass wall

    glass wall
    Figure: Writable walls can be dirty even after cleaning up


    Suggestions for sketching software

    There are many apps that allow you to sketch what you're talking about e.g.:

    • PowerPoint
    • Visio
    • OneNote
    • Mural (collaborative app)
    • Miro (whiteboard app)
    • Microsoft Teams Whiteboard
    • Microsoft Whiteboard
    • diagrams.net (was draw.io) ⭐️ - often collaborative sketches generated above enable the creation of a beautiful architecture diagram (Do you make awesome documentation?)

    Note: These work fine with a mouse, they work even better with touch screens, or pens/styluses

    surface pen
    Figure: Pens/Styluses help to draw better sketches

  66. Do you speak up about unfairness?

    Throughout your career, you might come across a scenario that feels unfair. In these situations, communication is vital for resolving conflict and making all parties feel content with the result. Let's take a look at some scenarios that may be perceived as unfair:

    • Someone might get a promotion when you felt you deserved it more
    • A group of employees might be left out of a public yearly bonus
    • A colleague might be put on a project that someone else is more suited to

    There are 3 perspectives to consider and each has different strategies for maintaining a good working environment.

    Manager

    Managers are human, and sometimes don't make the right decisions.

    • Avoid unfair situations - Steer clear of arbitrary decisions that could be perceived as unfair. For example, if you are going to choose who the best employee is, you better have numbers to back it up.
    • Communicate decisions - By communicating the reasons for every decision you set the right expectations for employees and prevent them from feeling frustrated.
    • Give a heads up - If you know someone might feel a situation is unfair, give them a heads up ahead of time.

    Receiver

    Getting an accolade or present is great but consider your colleagues.

    • Remain humble - You might feel proud of your new accomplishment and that's awesome. However, make sure you don't advertise or boast about it because that may cause resentment among your colleagues and foster a bad working environment.

    Neglected individual

    Missing out on an award can suck. What should you do?

    • Ask questions - Finding out the reasons for decisions will help you understand why it happened. That knowledge will be valuable to you in the future.
    • Speak up - If you feel things are unfair make it known tactfully. If it is bothering you, the longer you wait, the worse it becomes. Speaking up will give the person making the decision a chance to explain or rectify the issue.
    • Be reasonable - Everybody has their day of sunshine. Even if it doesn't totally make sense to you. It would be awesome if you can be genuine and privately send a congrats or even better do it publicly.

      "Always clap for your friends, even if their dreams come true before yours."

    Video: Two Monkeys Were Paid Unequally: Excerpt from Frans de Waal's TED Talk (2 min)

    Video: Speaking Up about Unfairness - with Adam Cogan and Jean Thirion (9 min)

  67. Do you find the positive in the decisions?

    Video: Fairness and Helping Each Other - 10 tips with Adam Cogan (8 min)

    Everyone wants a place where people help each other. Unfairness can really impact people in the workplace.

    It all starts with how you approach things, some people are better than others at dealing with unfair situations.

    Lets assume one of these common scenarios:

    • New great project – someone is assigned to it... someone is unhappy
    • New promotion – someone gets it, someone else is unhappy

    These might seem like unfair situations. People don’t want to be unfair... friends don't... bosses don't.

    Here are 10 tips for how you can manage unfairness.

    1. Gotta speak up - See Do you know to speak up?
    2. Happiness is relative - Unhappiness can come from comparisons with others. Instead compare yourself with your day yesterday.
    3. Get one thing in life, lose another - Can't have everything. When you are saying 'Yes' to one thing, you are saying 'No' to another.
    4. The 'Happiness Equation'
      Happiness = Expectations - Reality.
      If you want to be happier, then:

      • Reduce your expectations
      • Increase your reality
    5. Consider luck - Everyone wants to succeed in life. But what causes some of us to be more successful than others? Is it really down to skill and strategy - or something altogether more unpredictable? Sometimes peoples success is simply luck. Read the book "Fooled by Randomness"
    6. Compete with yourself by embracing Scrum – Competing with yourself is the best approach. The same with teams. In software, Scrum is the best way of working as you only compare yourself... or your team with what you did before. Using empirical data is the way to go.
    7. Understand intentions - Try to see yourself in others shoes.
      Understand that people don't want to be unfair. It is common to be assuming the wrong stuff.
    8. Be the 'squeaky wheel'

      "A squeaky wheel gets the most oil."

      Ask questions, and you will understand even better the logic your friend or boss is using. Bonus they now know this is a topic you have interest in... so they'll give you extra information.

    9. Have attainable ambition - You need expectations to be realistic enough to push you, not so much that it makes you unhappy.
      Overly ambitious people are often unhappy... they never get there! Sometimes people find they are never rich or successful enough...
    10. Celebrate other people's wins - Be at peace and in a place where you are pushing each other up, rather than climbing over each other. Everybody gets their days of sunshine. When others achieve a goal, be happy for them, send a nice message, 'like' their posts, etc.

      "Always clap for your friends, even if their dreams come true before yours."

    Do the above and you can have a culture of helping yourself and helping others.

  68. Do you build inter-office interaction?

    When a company has many different office locations, often people in one office aren't familiar with people in other offices due to a lack of interaction. This problem is particularly pronounced where you have offices that span multiple time zones or countries.

    What can be improved?

    It is crucial to build interaction between all company offices because it often improves the following:

    • Communication
    • Relationships
    • Technical Skills
    • Access to resources
      E.g.

      • Knowing who has certain skills
      • Knowing who can provide you with localized or domain specific information
    • Cooperation
    • Confidence
    • Knowledge of alternative approaches
    • Cultural understanding
    • Understanding of foreign perspectives
      E.g.

      • knowing why someone from another culture responds to questions in a different way to what you are used to

    Methods

    Think about what your company can do to increase interaction. There are tonnes of unique ways that interaction can be developed. Examples include:

    • Team Building Activities
      E.g.

      • Playing a game together
      • Solving a puzzle together
      • Reviewing/updating a company standard together
      • Go on a group trip to the Great Wall of China
      • Visit local companies together
      • Retreat - Have a company retreat to bring everyone together
    • Employee Exchange
      E.g.

      • Having developers from China work in every Australian office for a month each or vice versa
      • Having developers from Brisbane spend a week in Melbourne
    • Mentoring
    • Working together
      E.g.

      • Pair programming
      • Mob programming
      • Sitting together to work side-by-side
    • Cultural Events
      E.g.

      • Celebrating holidays from other countries
      • Having a cultural performance day where everyone chooses something cultural to perform such as a culturally relevant poem
    • Creating cross-office teams
      E.g.

      • Putting developers from the China office onto a project with Australian developers
    • A fun weekly company meeting
      E.g.

      • Everyone meets on Friday for 30 minutes to discuss a fun question
    • Rotating Daily Scrum
      E.g.

      • Each week 1 person from each office is paired up to do a Daily Scrum with each other
    • Virtual coffee events
      E.g.

      • People from different offices are paired up to have virtual coffee
    • Get people involved with events for others offices (especially other countries)
      E.g.

      • A Chinese dev does a presentation at the Sydney User Group
    • Organise meetings to discuss culturally different issues
      E.g.

      • Everyone talks about localization or WeChat Mini-Programs
      • Have a weekly language exchange catchup
    • Film videos about other offices
      E.g.

      • What is it like to work in the China office?
      • What are the differences in the app market in China and Australia? i.e. WeChat vs Facebook etc
      • Localization - What is your reaction if you see Chinese on a web page?
  69. Efficiency - Do you always try to work in pairs?

    There are many good reasons why it's better to work in pairs.

    ProjectManagement PairProgramming Luge
    Figure: Do you always try to work in pairs?

    For everyone:

    • Less time stuck on a problem - you have someone familiar with the project to help you work through the problem
    • You can keep each other motivated and you absorb knowledge from each other
    • Experience shows that two people working on a problem together are often more productive than one person working alone for twice as long

    Extra for developers:

    • Code will have less strange workarounds - because if something doesn't add up to a developer, they've got someone to ask
    • Cleaner code - because you know someone else is going to be looking at your code
    • Support - when you need changes down the track, you have two people to call on

    "I have found developers work better in pairs. I am not a fan of the classical pair programming - which is 2 developers working on the 1 PC. There are times for that especially during brainstorming activities, however on a day-to-day basis, I advise that developers work in pairs, but they each have their own PC."

    - Adam Cogan SSW Chief Architect + Microsoft Regional Director


    If you are not sitting next to a person working on the same project, then fix it. If you cannot then at least mention it to your manager.

    Working Alone and Getting Stuck

    If you find yourself working alone, which we don't recommend, you should speak up as soon as possible. You should make it clear that working alone is not best practice and that developers working together are worth more than the sum of their parts.

    1 dev plus 1 dev doesn't equal 2 devs worth of work. It equals 3! 🎉

    PairProgramming01
    Figure: Bad example - This is normal ‘pair programming’, two people working at one PC

    PairProgramming02 Small
    Figure: Good example - This is ‘working in pairs’, two devs working on the same project, with their own laptops, but sitting very close to each other

    Is there an overhead?

    Some projects are done quicker with two people - especially when they are complex. But on most projects there is an overhead, because of the extra communication between the developers - you now have to please someone else - not just yourself.

    Estimates vary for the overhead, but say it is 20% extra, this is more than offset by the cleaner code and better solutions that come from two brains working together.

    What if you are working remotely from each other?

    If you are working with someone remote, you will be using an application like Teams, TeamViewer, or another support tool to view one another's desktops so you can help each other out when necessary. You should have a 2nd monitor.

    What is the best code collaboration tool?

    Visual Studio Live Share - See Video (3 minutes):

    Code With me - A great tool for JetBrains IDE users who want to pair program. Though it isn't supported in Rider right now.

    Alternative Approach when there’s not enough Budget or Work: Weekly Senior Involvement

    In situations where there isn't enough work for two people, or budget constraints limit resources, an alternative can be adopted. This approach involves a single developer handling the majority of development tasks, with a more senior developer contributing primarily on Sprint Review day. See below for an example:

    If a client only has 1 developer working with them for 1 day a week, they must still keep regular Scrum cadence. In this case they would break the work down into 5-week (5 working days) Sprints. Every 5th booking, a senior developer or Solution Architect must be booked with them to ensure the project is running smoothly and to help them plan the next Sprint.

    The primary developer progresses the project mostly autonomously, while the senior developer's weekly involvement primarily ensures strategic oversight and quality control, particularly during Sprint Reviews. While the primary developer has greater autonomy, the availability of the senior developer for occasional guidance is crucial. This ensures the project remains on track and the primary developer does not feel isolated.

    In a situation where we can’t even do the above, get cross-approval from another Account Manager to make sure the exception makes sense.

  70. Do you gather opinions from your team?

    No matter how well adapted your business and processes are, there's always room to improve and learn.Getting feedback from others, outside the critical distance, helps to fine-tune ideas, even if you may think your processes are ideal.

    Once you've built a fantastic team of experts, it's important to actively listen to their opinions and ideas to continue building a great place to work and deliver more value to your customers.

    Having a regular forum like this is a great way to achieve also achieve 2 other important goals:

    1. Educating the team
    2. Aligning the company

    In the highly dynamic space of software development, there are new frameworks, features and languages constantly being released, hyped, maturing and sunsetting.No-one has the time to keep up with everything that's going on, so it makes sense to gauge the opinions of your team - there's a good chance that at least one of them has an opinion!

    Setting up a regular schedule to collect everyone's opinion is great to build up a habit and ensure that you've always got new ideas coming in.

    Gather Your Team's Opinions

    Gathering and actioning these opinions is a relatively straight-forward process.While it may be tempting to stick to only business oriented topics, it's a good idea to remember that this process works well to spread knowledge around your team and upskill everyone!

    This process typically has 4 core steps, performed in a regular cycle:

    1. Publish an article on a new technology or process that you'd like to explore as a team
    2. Send out a survey to everyone on the team, asking them to review the article and give their feedback
    3. Review the results and implement feedback
    4. Publish changes

    1. Publish an article

    If you're excited about a shiny new technology or process change that you've read about, choosing a topic for the article will be easy.Sometimes it may be a bit more difficult, this is where your team could contribute ideas that they want discussed.

    Write up an article and publish it somewhere appropriate for your team to access.Make sure to include bad and good examples to really get your point across.

    2. Send out a survey

    Once the article is published, send out a survey to your team and set a deadline for submissions.Without a deadline, it's difficult to start the review process as responses can come in well after you've moved on to the next cycle.

    In the survey, ask for the team's thoughts on the idea presented in the article. Both positive and negative criticism should be encouraged - the point is to choose the best ideas, bad ideas should be rejected.A really effective metric to include is a star rating out of 5, this can be averaged to gauge the general sentiment of the team at a glance.

    ctf survey
    Figure: Asking for a rating of the article

    3. Review results

    Once the deadline has passed, review the survey submissions, taking note of any:

    • Particularly high or low ratings
    • Suggestions for change
    • Ideas for future editions

    Don't just cherry-pick the ideas that you immediately like the looks of, it's worth examining (or even better, discussing) any submitted ideas.Your team members will appreciate feeling heard, so reach out to those members who submitted ideas which you don't agree with or are impractical to discuss why.Not only will this ensure they feel valued, it will also help teach them your reasoning and improve their future suggestions.

    4. Publish changes

    This process doesn't have much significant value if you don't action any of the submitted suggestions, we are looking to not only educate but improve as we go!If some ideas from the survey are actioned, make sure to let the team know.This encourages further feedback in future iterations and is an efficient way to notify everyone of the changes.

    Stay Regular

    It may sometimes be tempting to skip a scheduled cycle, but to maintain habits, it's important to try to send one out anyway.To ensure you always have something ready to go, set up a repeating meeting a few days before the scheduled release date each cycle to review or create the content.

  71. Do you hand over your responsibilities?

    There's nothing more exciting than having a holiday planned, but while you are away, the show must go on.
    It's essential your responsibilities are handed over for a few reasons so your absence doesn't cause issues and your leave is undisturbed.

    Tip: If someone is calling when you are on leave, it's probably because you haven't handed over your responsibilities properly.

    angry dev beach
    Figure: This is what happens if you don't hand over correctly

    There are a number of things to remember to handover

    1. Scrum Master/Product Owner roles - these roles are required in some meetings, so ensure they are covered or the meetings are rescheduled
    2. GitHub CODEOWNERS - check you are never the only code owner on a area of the codebase
    3. Induction approvals - ensure someone else is able to approve new staff inductions
    4. Other employee responsibilities e.g. Organizing events, managing the office, etc.

    All these handovers should be documented in an email, checked by the person taking over.

We open source. Powered by GitHub