www.drupaleurope.org

Befriending Goliath

How to manage large projects from a small agency perspective

Ramon Vilar

CEO at Ymbra

Context

Small agency

Context

  • Small team (<20)
  • Multifunctional
  • Horizontal

Typical projects

Context

  • 1 to 4 months
  • Projects from different clients/sectors
  • When working for big clients, usually working through big agencies

Objectives

Context

Remove layers between us and our clients

Larger projects to focus team's attention

Improve client engagement

How to do it?

The team

The team

Because the size, usually two alternatives:

  • Generalists
  • Focus in some services

Generalists

The team

  • Any specific area of expertise
  • Can do frontend or backend
  • But, sure you have specialists. Take advantage of them!

Services

The team

  • Focus in a (set of) service
  • Your team will become specialists
  • Transform your team in a solution for a client

Planning your resources

The team

  • What about deadlines and peaks of workload with a small team?
  • Try to adapt your team to the workload
  • Growing your team based only on unusual workload can be a mistake
  • Create a network of contractors (freelances) and show them your methodology
  • You can lean on them to solve peaks of workload

Sales process

How to meet big clients?

  • Cold calling
  • Use client references to introduce you
  • Be an expert and then try to be a solution for their needs

For us, for example, it's easier to enter to a client for IT department instead of marketing

The methodology

Differences in the way of organizing

The methodology

  • Big clients usually use classical methodologies
  • Involves a lot of "unnecessary" documentation
  • Can be a pitfall for small agencies

Our methodology (TM): internal

The methodology

  • Agile as methodology to organize development
  • User stories in project backlog
  • 2-3 weeks sprints
  • Retrospective at the end of the sprint

Our methodology (TM): external

The methodology

  • Few people as a contact for the project
  • Extract all requirements at first
  • In depth requirements during development
  • Backlog priorization with the client
  • Demo meeting after every retrospective

Who should change

The methodology

  • Some big clients don't use agile
  • Adapt their workflow to use agile
  • Agile techniques little by little
  • Retrospective at the end of every project
  • Introduce new changes in the methodology for next project

Working closely

Closely with managers

Working closely

  • As a small agency, you don't want the classical layers
  • Change sales person for a technical that sales projects
  • Use plain and direct language
  • Don't hide problems nor benefits

Closely with IT department

Working closely

  • Integrate with the IT department: try to be their counselor
  • You should not be a simple provider. You must be their collaborator
  • Be part of their team

Culture

Team culture

Culture

  • How do you explain to a client that the team won't work this week for DrupalCon? And DevDays? And DrupalCamp?...
  • How do you explain that you "waste" project time in module fixes and patches?
  • Be clear with your explanations

Project and community

Culture

  • It's a benefit for them to improve Drupal as a platform
  • Introduce them to the community culture
  • Help them to create a page in d.o and give credit to the patches and modules developed for them
  • This benefits them into the community too

Impact in your business

Finances

Impact in your business

  • Big clients are usually slow on payments...
  • This is a risk for finances in a small agency
  • Introduce agile in your budgets for large projects
  • Invoice at the end of every sprint or n sprints

Team

Impact in your business

  • Developers may end up bored to work in big projects
  • Be carefull with turnover
  • Try to combine big and small projects on teams
  • Involve them in all project phases
  • Motivation is key

Conclusions

Conclusions

  • This is not a TODO to follow, is a recipe
  • Humanize the relationship with your client
  • Use current or old experiences to get new opportunities
  • Take care of your team, they are the company
  • Don't put all your eggs in one basket

Thank you

Any question?

Ramon Vilar - @rvilar

ramon@ymbra.com