48
Working in Teams vs Working Individually Laurynas Antanavičius Product Manager @ Data Dog 2014.11.05

Working in teams vs working individually

Embed Size (px)

Citation preview

Working in Teamsvs Working IndividuallyLaurynas AntanavičiusProduct Manager @ Data Dog2014.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 ONEThe 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 SINGLEPLAYERSTART 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 TWOStarting 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 kataRosettacode

CodeacademyCoursera

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 THREEGetting the Hang of It

Just ask for help! Everyone is willing to help you only time

is limited

Think about it, Google it, thenAsk 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 SIXJoin 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 ideasStrong 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 LEVELCompete 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?

[email protected]