Tips

Tips are Free

Just some things I've noticed over the years that help get things done during the day. Most of these are common sense, or so you'd think, but I still see these challenges at some places.

Slack

  • Keep your user profile updated.

  • Set channel topic and description.

  • Pin important posts.

  • Have a quick audio chat instead of DM.

  • Don't do everything in Slack.

  • Message yourself to save notes on anything.

  • Search will search all of Slack space, it's useful for finding past messages.

JIRA

  • Keep titles short & useful - they show up in the default sprint boards.

  • Fill in the description with relevant information.

  • Link realted issues.

  • Integrate your CM (Git) process.

  • Don't overload a JIRA issue to fix multiple things.

  • Use built-in JIRA reports if at all possible.

Confluence

  • All employees should fill out their user profile: title, dept, what you currently do, contact information and photo if appropriate.

  • Information is worthless if it's out-of-date. Delete or archive your old pages and projects.

  • Keep Confluence pages relevant.

  • Project landing pages should be informative and useful.

Managers

  • Clear the path for your devs and let them code.

  • Provide the right environment for your team.

  • Learn the tools that your team uses. Don't ask for a spreadsheet when a JIRA report will do.

  • Encourage code ownership.

  • Hire a devops position if you have more than 5 team members and maintain an active CI system.

  • Let us fix the tech debt. Please.

Facilities

  • Ensure the developers have quiet working conditions with few distractions.

  • Have plenty of breakout rooms available for side conversations throughout the day.

  • Some devs work well in open offices, some don't. Try to accomodate both types.

  • Treat your employees as good as your contractors. When new equipment is being handed out, make sure the employees get it first.

Working with Developers

  • Keep things logical and we'll (usually) understand.

  • Train your developers regularly. All of them. You need them to stay sharp and up-to-date.

  • Give them what they need without putting them on a pedistal.

  • Do not disturb a dev that is concentrating. Are they wearing headphones? Please come back later.


Git

  • Git is very important. Train your devs on git. Then train them some more.

  • Use gitflow.

  • Use pull requests (PR) to ensure high quality code.

  • If feasible, PR changes and approvals should go through a senior team member to settle disputes and ensure that only high quality code is merged.

  • If PRs become a sensitive or hot topic, do them interactively or over Zoom.

  • To avoid "rubber stamping" PR approvers, try this: devs should only assign one person to their PR, and that person will assign the second reviewer.

Xcode

  • Don't adopt the new version right away, update your CI first

  • Turn on spell checker.

  • Learn the tricks from each new version.

  • Don't use protocols for everything.

  • Don't use subclassing for everything.

  • Don't use Combine for everything.

  • Use a sensible amount of unit tests.

  • Automate your CI pipeline through to QA for bug fixes and verification testing. I've seen it done, and it's beautiful.

Meetings

  • No Laptops! No phones as well if that's an issue.

  • Pay attention.

  • Agenda, please. It's not that hard.

  • Start meetings on time, or at most, 1 minute late.

  • End meetings 5 minutes ahead of time.

  • Stay on topic.

  • Remind participants of the time remaining.

  • Send a follow-up email, or update the original calendar invite with any action items or agenda updates.

  • Send an Outlook "To Do" for each action item, or use whatever tool fits (Confluence, etc).

QA

  • You cannot expect to ship quality software without proper QA testing of said software.

  • Test your software. Then test it some more.

  • Make QA part of your schedule.

  • Consider embedding a QA resource into each product development team for early testing.