Working in Teams
vs Working Individually
Laurynas Antanavičius
Product Manager @ Data Dog
2014.11.05
ABOUT US
• Custom web development and support
• Cloud-based application and software development
• B2B, B2C eCommerce solutions
• Specialised in PHP
• Over 35 developers
• Wide base of clients: UK, US, UAE, Canada, Luxembourgh,
France…
OUR TEAM
• Crypto-Currency exchange / Forex market
• 6 members in the development team
• Agile - Scrum, TDD, CI, CD
• PHP & GO
• Focus on performance & quality
http://vimeo.com/107405318
LEVEL ONE
The Intro Stage
"If software development was really a science,
you could apply the scientific method to it.
If it was really engineering, then you could apply
known engineering techniques.
If software development was a matter of
producing models, then you could spend your
money developing models."
"However, it is none of those.
Software development is a "game", a game of
speed and cooperation within your team, in
competition against other teams.
It is a game against time, and a game for mind-
share.
You should spend your money to win that game.”
- Alistair Cockburn
START SINGLEPLAYER
START MULTIPLAYER
SINGLEPLAYER
• Stack up on resources and tools!
• You’ll have to be fast and efficient in all the client needs!
SINGLEPLAYER
• Code base / Framework: Symfony, Laravel, YII, Check!
• Infrastructure: Amazon AWS, App Engine, Heroku. Check!
• Environment: Vagrant, Ansible, Atom. Check!
• Knowledge base. Github, Stackoverflow, Google. Check!
• Testing&Releasing. Scrutinizer, Wercker, Drone, Check!
MULTIPLAYER
• Be ready to continuously try again
• There will be so many players. It will be hard to keep up.
MULTIPLAYER
• Code revision. GIT!!!
• Coding standards. Zend PHP, Codesniffer
• Writing tests - BDD & TDD. PHPSpec, Behat
• Prepare to rewrite it
LEVEL TWO
Starting The Game
"Do you know anyone that bought the video game
Halo, or Myst, then proceeded to open the box and
read the manual before playing the game?
Whoa there guys, we can't play the game yet, we
gotta read these instructions first! “
- Jeff Atwood, cofounder of Stackexchange
It's ok, as long as there is a tutorial level.
Nobody reads the manual
Code kata
Rosettacode
Codeacademy
Coursera
Codeschool
Practice something so much that you could do it sleeping
“The driver enters the code and thinks tactically
about how to complete the current task,
explaining his or her thoughts out loud as
appropriate while typing.”
Peer programming
“The observer or navigator—following the automobile
analogy more closely—reviews each line of code as it
is typed in, and acts as a safety net for the driver. The
observer is also thinking strategically about future
problems that will need to be addressed, and makes
suggestions to the driver.”
Peer programming
LEVEL THREE
Getting the Hang of It
Just ask for help!
Everyone is willing to help you only time
is limited
Think about it, Google it, then
Ask anyone and they will help you.
Weak on:
Consistency / Discipline / Following instructions
Strong on:
Looking around / Taking initiative / Copying /
Modifying / Communicating
People are “Active Devices”
“The primary goal is increasing software quality, this
peer-oriented feedback also helps with knowledge
exchange within the organization and offers
coaching that can help the careers of the
presenters.”
Patterson, David. “Engineering Long-Lasting
Software: An Agile Approach Using SaaS and
Cloud Computing"
Code reviews / Workshops
What do we do in code reviews?
We review code! Fresh new features before adding them to
the main branch
And to find stuff like this:
// Magic. Do not touch.
// drunk, fix later
// I'm sorry.
return 1; # returns 1
// I am not sure if we need this, but too scared to
delete.
"You might say the secret of the game,
then, is learning how to play the game
so that everyone is having fun."
Not having fun? Change the
game!
Startup?
Small business?
Big business?
Consultancy?
Freelance?
LEVEL SIX
Join the professional league
The bar is really high right now.
It is a team sport.
Gone are the days of the hero
programmer...
Contribute to an Open Source
project on GitHub
Consider how you communicate
Weak links - the people you know that emit new ideas
Strong links - your close collegues that you share the
know how
In the end it's about precisely knowing
what you can and cannot do.
And it's about having the knowledge
and resources to go further
You can stand on the shoulders of giants
OR
a big enough pile of dwarfs, works either way.
FINAL LEVEL
Compete to win
“There are no winners on a losing team,
and no losers on a winning team."
- Fred Brooks, quoting North Carolina
basketball coach Dean Smith
Constantly search for new ideas,
knowledge and tools.
It's always great to investigate a new
option even if 90% of them don't stick
I Hate Programming.
I Hate Programming.
I Hate Programming.
It works!
I Love Programming.
Practice, practice, practice
Practice, think, discuss, practice
Just don't take it personal!
It's just a game
“In the information age, the barriers just aren’t there.
The barriers are self-imposed.
If you want to set off and go develop some grand new
thing, you don’t need millions of dollars of capitalization.
You need enough pizza and Diet Coke to stick in your
refrigerator, a cheap PC to work on, and the dedication to
go through with it.
We slept on floors. We waded across rivers.”
- John Carmack
Where John was sitting in a cubicle by himself in
Mesquite, Texas for 80 hours a week painstakingly
inventing all this stuff from first principles, on hardware
that was barely capable, you have a supercomputer in
your pocket, another supercomputer on your desk,
and two dozen open source frameworks and libraries
that can do 90% of the work for you.
You have GitHub, Wikipedia, Stack Overflow, and the
whole of the Internet.
Programming is like sex:
One mistake and you have to support it
for the rest of your life.
WAIT FOR IT..
Questions?
laurynas@datadog.lt

Working in teams vs working individually

  • 1.
    Working in Teams vsWorking Individually Laurynas Antanavičius Product Manager @ Data Dog 2014.11.05
  • 2.
    ABOUT US • Customweb development and support • Cloud-based application and software development • B2B, B2C eCommerce solutions • Specialised in PHP • Over 35 developers • Wide base of clients: UK, US, UAE, Canada, Luxembourgh, France…
  • 3.
    OUR TEAM • Crypto-Currencyexchange / Forex market • 6 members in the development team • Agile - Scrum, TDD, CI, CD • PHP & GO • Focus on performance & quality
  • 4.
  • 5.
  • 6.
    "If software developmentwas really a science, you could apply the scientific method to it. If it was really engineering, then you could apply known engineering techniques. If software development was a matter of producing models, then you could spend your money developing models."
  • 7.
    "However, it isnone of those. Software development is a "game", a game of speed and cooperation within your team, in competition against other teams. It is a game against time, and a game for mind- share. You should spend your money to win that game.” - Alistair Cockburn
  • 8.
  • 9.
    SINGLEPLAYER • Stack upon resources and tools! • You’ll have to be fast and efficient in all the client needs!
  • 10.
    SINGLEPLAYER • Code base/ Framework: Symfony, Laravel, YII, Check! • Infrastructure: Amazon AWS, App Engine, Heroku. Check! • Environment: Vagrant, Ansible, Atom. Check! • Knowledge base. Github, Stackoverflow, Google. Check! • Testing&Releasing. Scrutinizer, Wercker, Drone, Check!
  • 11.
    MULTIPLAYER • Be readyto continuously try again • There will be so many players. It will be hard to keep up.
  • 12.
    MULTIPLAYER • Code revision.GIT!!! • Coding standards. Zend PHP, Codesniffer • Writing tests - BDD & TDD. PHPSpec, Behat • Prepare to rewrite it
  • 14.
  • 15.
    "Do you knowanyone that bought the video game Halo, or Myst, then proceeded to open the box and read the manual before playing the game? Whoa there guys, we can't play the game yet, we gotta read these instructions first! “ - Jeff Atwood, cofounder of Stackexchange
  • 16.
    It's ok, aslong as there is a tutorial level. Nobody reads the manual
  • 17.
  • 18.
    “The driver entersthe code and thinks tactically about how to complete the current task, explaining his or her thoughts out loud as appropriate while typing.” Peer programming
  • 19.
    “The observer ornavigator—following the automobile analogy more closely—reviews each line of code as it is typed in, and acts as a safety net for the driver. The observer is also thinking strategically about future problems that will need to be addressed, and makes suggestions to the driver.” Peer programming
  • 21.
  • 22.
    Just ask forhelp! Everyone is willing to help you only time is limited
  • 23.
    Think about it,Google it, then Ask anyone and they will help you.
  • 24.
    Weak on: Consistency /Discipline / Following instructions Strong on: Looking around / Taking initiative / Copying / Modifying / Communicating People are “Active Devices”
  • 25.
    “The primary goalis increasing software quality, this peer-oriented feedback also helps with knowledge exchange within the organization and offers coaching that can help the careers of the presenters.” Patterson, David. “Engineering Long-Lasting Software: An Agile Approach Using SaaS and Cloud Computing" Code reviews / Workshops
  • 26.
    What do wedo in code reviews? We review code! Fresh new features before adding them to the main branch
  • 27.
    And to findstuff like this: // Magic. Do not touch. // drunk, fix later // I'm sorry. return 1; # returns 1 // I am not sure if we need this, but too scared to delete.
  • 29.
    "You might saythe secret of the game, then, is learning how to play the game so that everyone is having fun."
  • 30.
    Not having fun?Change the game!
  • 31.
  • 32.
    LEVEL SIX Join theprofessional league
  • 33.
    The bar isreally high right now. It is a team sport. Gone are the days of the hero programmer...
  • 34.
    Contribute to anOpen Source project on GitHub
  • 35.
    Consider how youcommunicate Weak links - the people you know that emit new ideas Strong links - your close collegues that you share the know how
  • 36.
    In the endit's about precisely knowing what you can and cannot do. And it's about having the knowledge and resources to go further
  • 37.
    You can standon the shoulders of giants OR a big enough pile of dwarfs, works either way.
  • 38.
  • 39.
    “There are nowinners on a losing team, and no losers on a winning team." - Fred Brooks, quoting North Carolina basketball coach Dean Smith
  • 40.
    Constantly search fornew ideas, knowledge and tools. It's always great to investigate a new option even if 90% of them don't stick
  • 41.
    I Hate Programming. IHate Programming. I Hate Programming. It works! I Love Programming.
  • 42.
  • 43.
  • 44.
    Just don't takeit personal! It's just a game
  • 45.
    “In the informationage, the barriers just aren’t there. The barriers are self-imposed. If you want to set off and go develop some grand new thing, you don’t need millions of dollars of capitalization. You need enough pizza and Diet Coke to stick in your refrigerator, a cheap PC to work on, and the dedication to go through with it. We slept on floors. We waded across rivers.” - John Carmack
  • 46.
    Where John wassitting in a cubicle by himself in Mesquite, Texas for 80 hours a week painstakingly inventing all this stuff from first principles, on hardware that was barely capable, you have a supercomputer in your pocket, another supercomputer on your desk, and two dozen open source frameworks and libraries that can do 90% of the work for you. You have GitHub, Wikipedia, Stack Overflow, and the whole of the Internet.
  • 47.
    Programming is likesex: One mistake and you have to support it for the rest of your life.
  • 48.