Rules to Better Software Consultants - Working in a Team

Hold on a second! How would you like to view this content?
Just the title! A brief blurb! Gimme everything!

​​​​​Being a software consultant involves more than just coding. How you work and communicate with your team is vital to your success.

The other half of being the best consultant possible can be found at Rules to Better​ Software Consultants – Dealing with Clients.

Do you agree with them all? Are we missing some? Comment on individual rules, or ​.​

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

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

    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.​

    But 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 consistency

    The cons:

    • They take time to write in a generic fashion
    • Technology ones rust easily. Technologies and techniques change often, so you must be on the lookout for the new and better approaches and need continual updating
    • 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.

    So standards should always help the critical thinking process, never replace it

    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 a with everyone making little changes often. Whenever you come across a standard which needs updating or improving you have four options:

    1. Ignore it and hope someone fixes it (this is punishable by being sat on by a wild hippo);
    2. Fix it yourself straight away (preferred);
    3. Fix it yourself later (send yourself an email);
    4. Ask someone else to fix it (following the change "x" to "y" rule) ​​​

    For any rules on our site you can click the 'Feedback to SSW' link at the bottom left.

  2. Do you have professional integrity? (Don't make them chase you)

    ​​The word “integrity” can be loaded with ethical connotations, but in this context, integrity means:

    1. ​Being true to your word
      1. This means doing what you say you’ll do, by the time you say you’ll do it
    2. If you can’t deliver on your promise, have a plan for a path forward
      1. 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. 
      2. Never leave them guessing
    3. If you break your word, acknowledge it, and work out a way to repair your integrity
      1. ​If the deadline passes and you didn't do the above, recognise the fault and propose a plan for how to do better ​next time
    Figure: Good example: Acknowledging an improvement for next time

    People who have 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 with employees who have integrity:​

    • Trust their employees
    • Are comfortable delegating more important work
  3. Do you manage up? (give a recommendation)

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

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

    Figure: Bad Example - Nothing to approve

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

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

    Please approve.

    Figure: Good Example

    When you are giving someone multiple options, you should recommend one and state why. For example:

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

    The choices:

    1. ​​Buy a ready-made solution - The ready made solution is cheap but it does not have everything that we need and has unnecessary features.
    2. Build a new solution using a third party company - It will be expensive and it will take a long time.
    3. Customize a ready made solution (Recommended) - 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.

    Please decide so I can move forward

    Figure: Good Example
    complexity and false hope
    Figure: Hard decision - this guy needs to state why he recommends this option
  4. 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.​

  5. Do you know the 5 pillars of teamwork?

    ​The well known book "the 5 Dysfunctions of a Team" focusses on the failing points for teams; but what should an ide​al 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 if those results are met
  6. Do you chase your manager before he has to chase you? (E.g. Asking for clarification)

    ​​​Managers (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 that 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 manager 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 boss. 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 the boss asks "does anyone want to speak to me?", look in that folder.

    What do you mean?

    Uly
    Figure: Bad example - bouncing emails back
    I called you... What do you mean?

    Uly
    Figure: OK example - calling, then bouncing emails back
    (I called you and left a message as I need clarification - so have moved it to 'Ask the boss')
    FYI Adam I don't understand xxx
    Will catch you later about it

    Uly
    Figure: Good example - No bounce, still owning the task - even though you need clarification

    You can see more information on this at Do you use email for tasks only - not communication? and Do you seek clarification via the telephone first?

  7. Do you complete work in order of importance (aka priorities)?

    ​​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.
    Challenges ahead sign Figure: Remove roadblocks

    This is the order which you should work:

    1. Urgent emails - emails with "URGENT" in the subject e.g. URGENT - website is down
    2. Emails about Timesheets or invoicing issues
    3. Your existing clients - e.g. Normal planned client work and client administration (preferably working from a sprint backlog and Daily Scrums)
    4. Other client work - Ask others if you can help with their client work
    5. Prospective clients - project management, answering questions and setting up meetings
    6. Internal - 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 (was "release plans") 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
    7. Phew... Done...​

    Tip #1: Don't move an important task out of your inbox unless:

    • Someone else is going to do it right away; or
    • It​ is going into a Sprint 
    Figure: Leave it in your inbox - unless you need to delegate an important task

    ​Tip #2: Use inbox subfolders to group and prioritise tasks​​
    subfolders.png

    Figure: Group by subfolders under your inbox
    Tasks Figure: Efficient people keep a priority list (often written)

    Also, it's common that priority orders change, but clients don't always mean to, so double check that the client means this.

    When someone is asking you to do a new task, and you are still working on some other task, you should ask:

    "Are you changing the priority order? Do you want this new task done before the current task I'm working on, which is xxx."
    Figure: Confirm with the client "Are you changing the prior order?"
    Figure: Prioritization - 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
  8. Do you make you are 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.

    e.g. "Is the database corrupt?"

    Bad example: No.

    Good Example: I don't think so but I'd need investigate further to be sure.

  9. 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: Set your work hours in CRM
    Read rule: Do you set your work hours in CRM / Users?

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

    Step 4: Allow calendar admins to have full access to your calendar
    Read rule: Do you allow full access to Calendar Admins?​​

    Step 5: Send your leave appointments to a centralised leave calendar
    Read rule: Do you use a centralised leave calendar?

  10. Do you ask questions where 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.

  11. 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 CCed on an email like this.
  12. 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 comission a new report to be built.

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

    Eg. Email your boss to ask a number
    Fig​​​ure - Bad Example: If you can't build it yourself, send an email to your boss for a number.
    ​​​Power BI.png
    ​Figure - Good Example: Sate your own curiosity with Power BI
    ​ ​

    You can see in Ulysses' video how Power BI is the best tool for this: https://tv.ssw.com/6839/power-bi-finally-can-make-decisions-based-facts-ulysses-maclaren


  13. Do you enjoy your job?

    Long term success in a career requires:

    • First is to put your heart into your job and enjoy yourself
    • Get your responsibilities done
    • Improve your company to become a better place every week
    • Improve yourself to become a better person every week

    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. 

    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.​

    hefner.jpg​​​​Figure: It's possible to REALLY enjoy your job
    Read more about Do you enjoy your job?
  14. Do you follow the sandwich rule?

    The sandwich rule approach is an effective way to provide feedback to other team members and clients.

    1. Start with positive feedback
    2. Give your recommendations for improvement
    3. End with some additional positive feedback (you may repeat #1)

    This optimistic approach allows you to maintain a healthy relationship with your team members and clients.

    criticize-behavior-not-person.gif 

    Figure: What not to do​
  15. 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.jpg
    Figure: On occasion, ever​yone has to work extra hard​
  16. Do you go two miles when you're only asked to go one?

    This idea is different from the above rules 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 came to creating a positive team environment. If you're willing to 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 work-place isolation disappears​
    • Productivity lifts as tasks can be achieved quicker
    CowsBum.JPG
    ​Figure: Going​ the extra mile​

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

  17. Do you give enough notice for annual leave?

    ​​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.

    [Appointment to SSWAbsence]

    Hi SSW Absence,
    I'm going to Brazil for 2 weeks on Monday... wish me luck :)
    Figure: Bad Example - not enough notice for substantial leave
    [Appointment to SSWAbsence]

    Hi SSW Absence​,
    I want to book a ticket to go to Brazil for 2 weeks.
    I'd like to leave in about 4 weeks.
    Please approve
    Figure: Good Example - appropriate notice given

    Generally, people who need to know include:

    1. Your managers
    2. Your current client
    3. Your close co-workers

    Notes:

    • ​​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.)​

    For Employers:

    Give your employees a bit of flexibility for small leav​e periods (say 1-2 days). As an employer, you should allow these small periods of leave with little to no notice.
    This will remove the incentive for employees to lie and say they are sick when they need time off with short notice.

    BeachEnforcers.jpg

    Figure: Did you give enough notice, or do we need to track you down?
  18. 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."

    One of my staff, I wont 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;
    2. Identified where he did not do what he was supposed to; and
    3. 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.

  19. Do you have a 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 dress code. Dress code is important for two reasons:

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

    E.g. At SSW, our employees "Dress Up" on Mondays and Tuesdays 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 on Mondays.

    The Obvious

    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.

    "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.
    dresscode-linkedin.PNG
    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.

    E.g. At SSW, our employees "Dress Down" later in the week... so they have "Casual Thursday" and "Sporty Friday".

    Thursday are casual clothes. On Fridays, they encourage sport clo thes, such as shorts. It allows the end of the week to be fun.

    SSW_Dresscode_Poster.png

    Figure: SSW Dress Code can be downloaded here.
    Read more about Do you have a dress code?
  20. 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 ring tone, 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 on vibrate.

    If you have a wearable device like a Microsoft Band that connects to your phone, your wrist vibrates when you recieve 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. 


    Microsoft Band Incoming call
    Figure: with a Microsoft Band, you can keep your phone on vibtrate 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 ring tones
  21. 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. 
    2. The email subject should be "Purchase Please - Request for xx"​​​
    3. If appropriate, include 2 or 3 quotes, 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 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%))

    Figure: Bad Exa​mple - this expense will not be reimbursed​


    Figure: Good Example - this expense will be reimbursed, if David gets a reply from Adam
  22. 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 things:

    1. Apologize if it was your fault, or explain if it wasn't, but then do the next 2 steps regardless...
    2. Show that you've fixed th e problem (if possible)
    3. Explain what system you've put in place to ensure that the same issue won't happen again

    Even if you've been wrongly accused of something, you should still do steps 2 and 3, as it shows great initiative. Always have a view to the future and the big picture.

    dilbert-criticism-1.gif

    Figure: make sure you know how to take criticism well
    ​​​
  23. 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 shiney 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:

  24. 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


  25. Standards Watchdog - Do you know the nice way to correct someone?

    When you notice that someone has done something against our standards, make sure you are tactful in your corrections; especially if the person you are correcting is a client.

    Subject: RE: Meeting

    Hi Mary,

    FYI - an appointment would have been better. See rule #48 in Rules to better Email
    Figure: Bad Example
    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 create one individually.
    We have a number of helpful standards like this which you can have a look at in our Rules to better Email if you're interested.
    Figure: Good Example
  26. Standards Watchdog - Do you provide the reason behind the rules rather than just enforce them?

    If you criticize your staff:

    • You don't make lasting changes
    • They will resent you, resulting in lower productivity and employee morale

    For example: If one of your responsibilities is to make sure all your developers sent "test please" emails, you can run around with a lot of authority telling them they'd better comply, but at soon as you're not around, they will resent you and not bother about it.

    A better approach is, when you see developers not sending "test please" emails, explain that they save time by getting early feedback, allowing bugs to be fixed while it's still fresh in the developers' minds. Explain to them that the cost of a bug increases over time.​

    Don't Criticize
    Figure: "The floggings will continue until morale improves"
  27. 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 more.
    Watchdog.jpg
    Figure: Be a fearsome Standards Watchdog

    Every member of a team plays an important role in maintaining standards. Whether it's my code or someone else's, I always keep an eye out for mistakes.

    When I come across an error, I never just fix it, as the developer who made it is likely to make it again. I write an email to the person explaining what has been done wrong and how to do the right thing. I CC the manager so they are aware of the situation.

    Of course, with everyone doing this in the office, it's not a matter of finger pointing, we all truly work together to write better code.

    When you notice someone doing the wrong thing
    • First time just send an email with a pointer to the rule
    • Second time, have a very quick chat with them
    • Third time call them in and give them a formal talk about it

    If you don't have the confidence to talk to the person, send an email from info. The important thing is to talk about it at the time. 

    Clearly, this standard does not just apply to writing better code, it 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!

    Equally important is your responsibility to ensure that others are doing their best to maintain and follow the standards.

    To: Peter
    CC: Adam (Manager)

    Dear Peter,

    While you were away, I came across a page called ApplicationForm.aspx which was giving an error: 
    'The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.' 
    This happened when I entered '13/06/2002' into a the 'Start Date' field of the form.
    The error occurs because you are not using the default language of the server which is 'English' - for the users of this database FRDC. This is the same as US English format of Months first, then Days, then a four digit Year (mm/dd/yyyy). Instead, you used 'British English' on the FRDC database which has a format of dd/mm/yyyy. Please use the standard as per Rules to Better SQLServer Databases, Rule 1200 (Middle Tier Section)
    Please note that whilst inserting data from your Front End application, you should not use the format dd/mm/yyyy. Instead you should use yyyy/mm/dd

    Let's fix it together when we get to work tomorrow.

    Cheers, DDK


    Figure: Make sure you let your client know if you find a standards violation
  28. 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 i​f 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.

  29. 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 PowerPoint, 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.jpg
    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 SSW label
    Figure: OK Example - Print PDF, fill the form and attach to broken things in the office​

    ​Related Rule​​​

  30. Do you notify others about what is happening in the company?

    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.

    Subject RE: Vacation

    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 by skypein: **** **** (if you are in Sydney), or 139 **** **** (if you are in Beijing) ​
    Figure: Good Example - Notify and give contact details
  31. Do you offer positive feedback to your team?

    Receiving positive feedback makes everyone feel good. Forgetting to recognize success means the team has no motivation to succeed.

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

    GoodJob.jpg 

    Figure: Give credit whe​​re credit is due​
  32. 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 - Non specific 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 general, it is impossible to know what to fix.​​

  33. 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.

    Dilbert-Analysis.gif
    Figure: Have a frank discussion if you feel strongly about something​

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

  34. Do you repeat back the specifics of a request?

    Misunderstanding due to miscommunication can cause major disasters at work or in life (see: http://en.wikipedia.org/wiki/Tenerife_disaster). 

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

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

    "OK" or "Roger That"
    Figure: Bad Example
    Ok, I will add a red checkbox on the right
    Figure: Good Example
  35. Do you respond to blogs and forums with the standard footer?

    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 world wide web.

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

    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.

  36. Do you tell your manager what work you prefer but understand when you have to do less interesting stuff?

    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.

    Tell the boss what work you prefer to do.
    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.
  37. 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:

    If you are working onsite, you can still use TFS remotely and it's important to talk the client into this in order to avoid any possible disasters.​


    Backup.gif

    ​Figure: Have a backup
  38. 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​
  39. Do you send done videos?

    A picture is worth a thousand words; and a ​video is worth a thousand pictures.

    The best way to demonstrate that a new piece of functionality is working is to record yourself using it successfully. this works as both a demo, as well as a training aid if they need to reference it again later.

     
    Figure: Good example - Record yourself and your​ screen
    Read more about Do you send done videos?
  40. Efficiency - 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 multi-tasking 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 two without compromising on space or layout.

    Two Monitors Better Than One
    Figure: Two monitors are better than one
  41. Efficiency - Do you always try to work in pairs?

    ​There are many good reasons why it's better to work in pairs.
    Do you always try to work in pairs?
    Figure: Do you always try to work in pairs?
    • Less time stuck on a problem - you have someone familiar with the project to help you work through the problem
    • Your code will have less strange workarounds - because if something doesn't add up to a developer, he has 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

    But I don't promote classical pair programming which is two developers on one machine. At SSW we use our own type. We do put our developers in pairs, but they each have their own computer.

    It's also a good idea for non-programmers to work in pairs. You can keep each other motivated, there is always someone to help if you get stuck, and you absorb knowledge from each other. Experience shows that developers are more productive this way.

    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.

    Figure: Bad example - This is normal ‘pair programming’, two people working at one PC
    Figure: Good example - This is ‘pair working’, two guys 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.

    We generally estimate the overhead as 20% extra. But 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 really working closely together, you will be using an application like TeamViewer to view one another's desktops so you can help each other out when necessary. You should have TeamViewer showing on a 2nd monitor.

  42. 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 w​eigh 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.

  43. 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.

    See also: ​https://rules.ssw.com.au/rules-for-error-handling​​

  44. Quality - Do you know how to request a "test please"?

    ​These are the steps you should take when request a "test please" :
    1. Find two 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:

      Subject: Test Please - Product Name v1.11

      Dear [XXX],

      I am looking for bugs or approval to release this version.

      I have done what I could for my code's health. E.g.

      • Run SSW Code Auditor - it has [XXX] errors [If not 0, give reason]
      • Run SSW Link Auditor - it has [XXX] errors [If not 0, give reason]
      • Kept my eye on Application Insights

      Specific issues to look out for are:

      • [XXX]
      • [YYY]

      The latest version of [XXX] is at [WWW.URL.COM]

      Keep in mind that a "test please" is an urgent task and that it should start within the hour.

      Note:

      Thanks, [XXX]

    4. What if you're doing a Windows Forms test?

      Then you should also include this to the email:

      • The latest version of [XXX] 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]
    5. Note to developer: 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
      • Two people have tested it
      • The changes in this version are fairly important to get out
      • You get to work on the failures ASAP
    6. For clients on fixed price contracts, this email marks the start of the 30 day warranty period.
    7. Use TFS to email the work items to the project manager and client:
      tfs-backlog-email.jpg
      Figure: TFS makes it easy to export work items
      tfs-backlog-email-2.jpg
      Figure: How the email is generated
  45. 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".

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

  46. IP - Do you make your templates accessible to everyone in your organisation?

    ​​​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.png

    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 this rule: https://rules.ssw.com.au/do-you-create-a-private-repository-for-reusable-internal-code​ 


    ​​SSW_nuget.png

    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.

    You can find a selection of Nuget packages published by SSW here:
    https://www.nuget.org/profiles/SSW​​



  47. 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.

  48. Speaking - 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.

    Some good deterrents are: 

    To enforce ten push-ups for every infraction (recommended). ​This is the same concept as a swear jar but also promotes fitness. ​
    GORDON-RAMSAY.jpg
    Figure: Gordon Ramsay - The only man who​ can ​​​​get away with professional swearing
  49. Speaking - 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
  50. Do you use your locker to keep a tidy office?

    ​It's important to provide a physical space for each employee to receive packages and mails.

    The locker should have a slot for mail, so you don't need 2 different locations.

    drawer-bad.jpg
    Figure: Bad example - Having a drawer and a mailbox takes too much space (2 different locations) and larger packages won't fit
    locker-good.jpg
    Figure: Good example - A locker with mail slot is ideal for both mail and packages
  51. 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.

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

    • I want my team to work with each other, and I 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 multi-tasking lowers your ability to efficiently carry out a task (e.g. doing your task at hand along with listening to tunes) - by as much as 20%!
    • 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 I am 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 I love hearing a good song, for example, when I hear Robbie Williams' "Better man" it gets me pumped a bit and I guess it has a positive effect on a my state of mind. I am unconvinced it helps me program better.

    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/VMWares or waiting for long builds.

    Note: Please see our Rules To Better Dead Time for how we like to effectively use audio devices like iPods when we're not at work.

  52. Do you know the best chat tools for your employees?

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

    Hopefully Microsoft Teams and Workplace by Facebook will take the lead, we need more app integrations to come e.g. Zapier.
    We think Yammer​ could soon be decommissioned to reduce confusion.

  53. Do all your employees know the quickest way to fix small web errors?

    ​Imagine this scenario... Mary notices a small error on a page in her intranet. She is a good employee... She fires up an email and reports the spelling error to info@s*w.com.au. As she sends it she says to herself "That it took more time to report the error than it would have taken me to fix it".

    Small  errors should be fixed by the person who found it. Text changes can be easily done in SharePoint or WordPress. If you know who is the culprit, it might be a good idea do inform that person, including the things you have fixed.

  54. Do you hold regular company meetings?

    One risk of running a consulting company is your employees can start to feel disconnected from the main organisation, especially if they spend all of their time working onsite. One solution is to get them to work from the office at least once 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 organiser 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.png
    ​​​​​​​​Figure: Good Example - Use the inbuilt Skype Meeting functionality to make sure no one​ gets left out

    ​Hi All, 

    (Emailed SSWChapel@ to book it in its calendar)
     ​
    Join us for the next company meeting. We generally try to hold these every few months to keep everyone connected and up to date.
     
    If you’re at SSW Sydney on the day, come to the Chapel, otherwise, click the link below to join the Skype for Business meeting
     
    Let me know if you want any topics raised.
     
    <This is as per the rule https://rules.ssw.com.au/do-you-hold-regular-company-meetings >

    Figure: Good Exam​ple - Email template for the meeting​


  55. 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:​

    1. 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.
    2. 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.
    3. 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.

    Hi Adam,

    I know you haven't had time so far to test this for me, but if you could please do so, i can go live... I've been waiting for quite a while now

    Figure: Bad Example - chasing an approver with no set timeframe is frustrating and disempowering

    Hi Adam,

    As per our conversation, you haven't got time to sit with me to approve this today, and you're very busy at the moment, so we've agreed that you have 2 weeks to approve this video before it goes live. ​

    <This is as per the rule, https://rules.ssw.com.au/do-you-timebox-approval-requests />

    Figure: Good Example - an agreed timeframe is communicated so there are no surprises​​