Agile #2 – User stories

The main component of an use story are the 3C’s:

Card

– what do you want, as a higher level

Conversation

  • Who is the user, what he wants and why?
  • What happens outside software? What can go wrong? (Happy path and exceptions)

Confirmation

  • Acceptance tests
    • How does the Product Manager validate the user stories once they are done? How will we demonstrate it at a product review? What will we test that is indeed done?
    • Use user language, don’t be too technical
    • What the user wants to do and not how it should be done

Stories can be written at many levels of abstractions:

Epic, Feature, Capability – Right sized for business

User story – right sized for users

Dev story, small user story – right sized for dev

Spikes

These stories are needed when you have to do some research work/knowledge gathering. It should be time-boxed and a clear definition of done. Most of the time, it is not part of the production code.

What is a good user story?

INVEST: These are guidelines to be used to create better user stories but don’t let them come in the way of building effectively.

  • I – Independent
  • N – Negotiable
  • V – Valuable
  • E – Estimable
  • S – Small
  • T – Testable

Agile #1 – Gathering requirements

Build what the user wants

A good user requirements process will help us build the software the users have in mind and creates a shared understanding among all the shareholders of the product.

Conversation – primary form of communication

  • Developers and business work together toward the development process
  • Just Enough – Just In Time (Progressive refinement) – contain the 3C (the card, the conversation, the confirmation)

Adaptive – Discover user needs vs. collect user needs

We don’t know the needs, we will discover them. The requirements will change.

Manager notes #6 – Manage a team

Managing a team is more than managing individuals. Being a manager is not about having the most technical knowledge.

Stay technical

  • you will always have to guide technical decision making
  • you must be seen as technically credible
  • you need to stay enough in the code to see where the problems are and to evaluate
  • if you stop coding too early in the career, you may never achieve sufficient technical knowledge

Debug dysfunctional teams

A dysfunctional team can be characterised as a team where its members are unhappy, they keep quitting, the product manager is frustrated and they keep missing deliverables. They maybe lack energy or enthusiasm.

  • if team is not shipping, it might be because of the tools and processes. Remove all the bottlenecks as poor tooling around release, heavily manual testing, features too big.
  • « the brilliant jerk » – a move to another team
  • the negative person – make it clear the behaviour has to change; if he’s unhappy help him leave the team on good terms; maybe he is not aware of his impact on the team
  • unhappiness due to overwork – support the team and help them with the work. Reduce and avoid overwork
  • lack of collaboration – gather feedback, create opportunities for them to hang out outside work

Act like a shield ?!

The team should be shield from distraction. Help them understand the key important goals and focus on them (however, let some of the stress reach to the team so they will get some context into what they are dealing with). On the other hand, don’t deny events and communicate information that might neutralise the impact on your team.

Humans need some context into why these goals have been set and what problems should they be working on to solve. They need to understand the consequences.

Take good decisions

  • get as much data as possible and create a data-driven team culture
  • look into the future and get a sense of where the product roadmap is going
  • review your decisions and run retrospectives for the processes

Manage conflicts

When managing conflicts:

  • don’t rely on votes
  • have clear set of rules to evaluate decisions
  • address conflict issues without cultivating dysfunction
  • don’t take it out on other teams
  • be kind, not nice
  • don’t be afraid
  • get curious

Advanced project management

You will help set the schedule for the team by estimating whether the team can do certain projects, how much work will be and if you have the right people to complete the work. You need to have a strong sense of the pace of the team.

  • there are 13 weeks per quarter, expect only 10 weeks of focused effort on the main projects per team member.
  • 20% for generic sustaining engineering work (testing, debugging, dealing with legacy code, etc)
  • say no in order to achieve goals
  • use doubling rule of software estimation
  • don’t be a telephone between the engineers and the rest of the company

Manager notes #5 – Managing people

As a new manger you must figure out your own management style.

The main tasks required to manage people:

Starting on a new report

Starting a new reporting relationship off in a right way means to get to know the person quickly so you can manage him best.

  • build trust and rapport – ask questions intended to help you get to know the aspects of the person that impact your ability to manage him well (how he likes to be praised, preferred method of communication, how you can tell if he is a bad/good mood, any clear career goals, any manager behaviour he might hate)
  • create a 30/60/90 – day plan – have a clear set of expected goals and create realistic milestones
  • encourage updating on-boarding documentation – reinforce the editing of the documentation by the new hire to reflect processes and tools that have changed since the last time
  • communicate your style and expectations – the team needs to understand your expectations and your style (how often you want to meet with them, how to share information)
  • get feedback – get as much feedback as you can. Don’t encourage people in this period to criticise the established processes in a way the team might feel attacked

Communicating with the team

  • have regular 1-1s – they are crucial. There are many styles of 1-1s:
    • the to-do list meeting – list of objectives to cover in order of importance
    • the catch-up – listen to anything your direct reports want to discuss but don’t turn it into a complaining session or therapy
    • the feedback meeting –
    • the progress report – when you have someone who is off on a side project that you are not personally overseeing
    • getting to know you – get the know the person reporting you as a human being in a sense of you want to show them you care about them as individiuals
  • scheduling 1-1s -respect the schedule
  • adjusting 1-1s – adjust time and questions for each person

Micromanager vs. Delegator

Micromanagement

  • junior positions and projects that go off the rails sometimes needs micromanagement
  • too much control; trust and autonomy are affected

Delegation

  • delegation does not mean abdication – when you delegate you are still expected to be involved as much as is necessary
  • being a good leader means being good at delegating

Continuous feedback

Continuous feedback means a commitment to a regular share of positive and corrective feedback:

  • basic understanding of the individuals on the team
  • observe
  • provide regular feedback
  • provide coaching

Performance review

360 model – a performance review that includes feedback from the manager, teammates, everyone who reports and coworkers, self-review

Cultivate careers

You need to make a case for someone promotion. Every company has its own promotion process. In general, people are moved forward by the process. The evidence: projects completed independently, participation and support, engagement in team meetings and team planning.

Manager notes #4 – Tech lead

A tech lead role might not be the same from company to company, not even from team to team within a company, but it is expected tone both a technical position and a leadership role. So, it can be described as a set of responsibilities that any engineer might take on on once they reach the senior level. It may or may not include people management.

A common misconception is that the tech lead role should be given automatically to the most experienced engineer (the one who can handle the most complex features or who writes the best code).

As a tech lead you can continue writing code but you will have extra responsibilities such as:

  • representing the group to the management
    • make independent decisions for the team
    • handle difficult management and leadership situations
  • plan for future delivery
    • partner effectively with other areas of the business
  • deal with details of the management process
    • delegate work effectively without micromanaging
    • focus on the team productivity

Being a tech lead is an exercise in influencing without authority. His main roles are:

  • take a wide view of the work so that you keep the project moving
  • have a good sense of the overall architecture of the systems and a solid understanding of how to design complex software based on the business requirements
  • project planner – find efficient ways of breaking down the work so the team can work quickly (getting work done in parallel)
  • write code, but not too much. raise issues early and delegate work

Manager notes #3 – Mentoring

The first act of people management is unofficial and that is when mentoring someone.

As a mentor you will practice skills that you will need should you decide to become a manager:

  • Listening carefully – listening is the most basic skill of managing people. It is a precursor to empathy, one of the core skills of a quality manager
  • Clear communication – communicate what needs to happen, provide clarity along the way

How to mentor an intern?

Before hiring an intern, make sure he will graduate in the year after their internship.

  • prepare his arrival – make sure he has everything he needs to start
  • have a project to work on – make him work on a clear project
  • have him present you the work – help him feel like his work mattered

How to mentor a new hire?

This is an opportunity to see the world of your company through fresh eyes. Mentoring a new hire implies on boarding, helping him adjust to life in the company and building your and her networks of contacts in the company.

  • what are the rules? spoken and unspoken?
  • update onboarding documents
  • chance to introduce the new person around
  • network building is a worthwhile investment of your time and energy

Key takeaways for a mentor

Don’t become a mentor unless if you think it will be rewarding for you and the person you are mentoring. As a mentor, you should focus on three actions for yourself:

As a mentor, you should focus on three actions for yourself:

  • be curious and open-minded – it is a great opportunity to see the world through fresh eyes
  • listen and speak mentees language – you will be forced to home your communication skills
    • tell the mentee what you expect from him in an explicit manner
  • make connections – treat the person well, don’t abuse the mentoring relationship

Key takeaways for mentee

  • don’t waste your mentor’s time
  • think about if you need a mentor

As a manager you help the team by creating clear, focused goals.

Why creating the mentoring relationship?

When assigning a mentor for the new hire, ask yourself what do you want to achieve by creating that relationship. Mentoring relationship exists for:

  • helping a new person to get up to speed and be productive
  • helping junior people pair with senior people for career or skills growth

So, try to make sure there is some guidance.

Recognise that this is an additional responsibility for the mentor

The productivity of the mentor may slow down during the mentoring period. A mentor should be recognised for the work they put in as it yields valuable returns in the form of better employee networks, faster on boarding and higher internship conversion.

Manager notes #2 – How to be managed

The way you have been managed will be the foundation on which you will build your own management philosophy. So, part of being a good manager is figuring out how to be managed.

Spend time thinking about what you want

  • what you want to learn, what makes you happy and you want to do is your responsibility, not your manager’s

You are responsible for yourself

  • once you have set a goal for yourself, do what you can to make it happen

Give your manager a break

  • the manager’s job is not to do whatever it takes to make you happy all the time
  • if you resent your manager for whatever reason, you need to move to a different team or look for a new job. If you resent every manger you work for, you might need to think about whether the cause is them or you

Choose your managers wisely

  • when evaluating job opportunities, consider not only the job, the company and the pay but also the manager

Manager notes #1 – What to expect from a manager

Some basics things you need to expect from your manager:

One-on-One meetings

  • create human connection between you and the manager
  • opportunity for you to speak privately with the manager
  • as a senior you would need to drive 1-1s and bring topics for discussion

Feedback and Workplace Guidance

  • the worst thing is not getting/giving feedback at all
  • delivering fast feedback is more valuable than waiting for a convenient time
  • as a senior you could give more feedback to your manager

Training and Career Growth

  • you are responsible for figuring out what types of training you want
  • the manager can contribute to you career growth via promotion and compensation
  • managers can’t guarantee promotions but they can help you build the skills they know the system is looking for

Resume tips

Keep the technical skills section relevant. Keep it relevant to the job you are applying to, the your brand and to the current market.

Review the job announcement for Knowledge, Skills and Abilities (KSA). Make sure some of those terms are on your CV as well.

Show impact.Make people understand the scope of your work. Tell the story of your software .

Talk about challenges faced during the development lifecycle. Show that you can handle the unexpected.

Emphasize connection with business and non-tech teams. Highlight communication and collaboration skills and show you get business and customer needs and that you work well with others.

Create a « Technology Skills » Section. Include it right below your branding paragraph on Page 1 and organize it according to category (methodologies, development tools). Omit skills that are obsolete or that you haven’t used from some time.

Once you become a senior and manage more people your leadership skills are more important than your technology skills.

For every job description add the most impactful thing you worked on. Make sure that it will be most likely to be read.

Write the most of the resume in plain English and skip the IT jargon. Don’t confuse people with words and acronyms that they won’t understand.

Follow PAR (Problem, Action, Resolution). People only are what you accomplished, so make sure that each describe the problem, followed by an action and concluded with a measurable resolution.

Be ruthless with yourself. If the bullet doesn’t meet each step of PAR, then it’s not important or impactful enough to make it onto the resume. « Face the brutal facts ».

Show domain knowledge about the industry in which you work. Round out the value you are bringing to the new role/organization with an emphasis on soft skills and business understanding.

Show ability to evolve with technology. Understanding both process and data needs are necessary to become more than a coder.

Show versatility by demonstrating the range of applications and technologies. It illustrates your adaptability.

Employers want to know the whole person they are hoping to hire and not just their technical skills.

Resume

Why is it important to have a resume?

Having a resume is a standard. It gives managers something to analyze, people will always ask for it and it is ingrained in HR’s process.

CV is a marketing document and not your obituary. Resume is a forward facing marketing document. Obituary is a backward facing list of events. You should think in terms of « here is what i bring to the table », « Here is what that means for you » and not « this is a list of what i have done ». The resume should make company saying without a lot of thinking: this person will bring value to this role. Talk more about values and the benefits you can bring.

Build your resume

There is value in creating your resume. Creating it makes you think critically. It makes you choose your best value, it is a great interview preparation at the end of which you will own the conclusions.

Buy your resume

The cost of hiring a professional to write your resume is relatively minimal comparing to the value that can be bring. Certified resume writers are trained in their space, they are experts at creating your marketing document).

  • careerdirectors.com
  • careerthoughtleaders.com
  • thenrwa.com

Audience

  • Hiring managers – intimate understanding of what your skill set is.
  • Your contacts – most of them won’t understand your skills
  • HR – has a basic understanding of what the job is about but sometimes what is on the resume won’t make sense for them.
  • ATS (Applicant Tracking System) a computer audience, it makes analyses on your resume and compares it to a job description.

Use a tagline or a cover letter for the persons who might not understand your resume.

Resume templates

Virus scan before sending it.

Avoid too much frill.

Chronological – the most popular.

Functional – thought as a format to hide age or experience level. Removes dates and don’t order by company. The focus is on the skillset.

Combination/hybrid resume –

  • top is functional (the top 2,3 skills, details and experience with those skills)
  • a list of companies and dates

Create a solid resume

  • solid – not amazing, but also not embarassing
  • good starting point and useable
  • online resume builder (livecareer.com, resumegenious.com, cvmkr.com, visualcv.com)