Top Banner
India::Ruby Monday 15 November 2010 Good morning everyone and thank you for being here.
126

India::Ruby

May 12, 2015

Download

Technology

This talk is mostly about how things work in India when it comes to the software services industry, especially in the context of Ruby and where we expect the community to be in next 5 years.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: India::Ruby

India::Ruby

Monday 15 November 2010

Good morning everyone and thank you for being here.

Page 2: India::Ruby

sidu ponnappa

Monday 15 November 2010

Let us take a minute to introduce ourselves - I am Sidu Ponnappa

Page 3: India::Ruby

kaiwren

Monday 15 November 2010

I do my open source here

Page 4: India::Ruby

@ponnappa

Monday 15 November 2010

social network here

Page 5: India::Ruby

niranjan paranjape

Monday 15 November 2010

I am Niranjan

Page 6: India::Ruby

achamian

Monday 15 November 2010

I do my open source here

Page 7: India::Ruby

@niranjan_p

Monday 15 November 2010

social network here

Page 8: India::Ruby

Engineering

http://github.com/c42

Monday 15 November 2010

work here, a boutique Ruby consulting firm based out of Bangalore, founded by us ten months ago

Page 9: India::Ruby

<context>

Monday 15 November 2010

Before we move ahead, I’d like to set some up some context.

Page 10: India::Ruby

how things work

Monday 15 November 2010

This talk is mostly about how things work in India when it comes to the software services industry, especially in the context of Ruby.

Page 11: India::Ruby

how things work

now/future

Monday 15 November 2010

We will also talk about how we expect the future to shape up.

Page 12: India::Ruby

subjective

Monday 15 November 2010

Keep in mind that what we’re talking about is very subjective, and that opinions *will* differ

Page 13: India::Ruby

relevant?

Monday 15 November 2010

And how is this relevant to you, our audience?

Page 14: India::Ruby

assumptions

Monday 15 November 2010

We’re making a couple of assumption about y’all

Page 15: India::Ruby

sell/buy

Monday 15 November 2010

We’re assuming that all of you in some way either sell, or buy Ruby. Ruby services, ruby products - it doesn’t matter. But you produce and consume Ruby.

Page 16: India::Ruby

sell/buy

Monday 15 November 2010

If you’re buying Ruby services, it’s important to understand both the advantages and limitations of distributed development. If you’re selling Ruby work, understanding how Ruby businesses work in India can provide important context.

Page 17: India::Ruby

sharingunderstanding

Monday 15 November 2010

We have spent nearly six years doing offshore software development in companies as diverse as Infosys, ThoughtWorks and now C42 Engineering and we understand

Page 18: India::Ruby

distributed development

Monday 15 November 2010

distributed development fairly well. We’re also going to spend some time talking about our experiences in this area and how to make it work while remaining agile, especially in the context of Ruby.

Page 19: India::Ruby

ground realities

Monday 15 November 2010

We will talk about the ground realities of the market so that, as a buyer you can make informed decisions. We will also talk about what it’s like to be a seller in the same market, both as an employee, as an independent consultant and as the promoter of a firm.

Page 20: India::Ruby

but

Monday 15 November 2010

but all of this is about what works today. In five years, we expect the situation to have changed dramatically.

Page 21: India::Ruby

things change

Monday 15 November 2010

We will talk about why we believe the real opportunity for Rubyists in India lies elsewhere. We see enormous opportunity in the local market. India is the world’s largest democracy, with an english speaking middle class that is a 100 million strong today and growing steadily. There is a non-english speaking rural audience that is 700 million strong. This market is completely untapped. And Ruby and it’s ecosystem is perfectly placed to build software for this audience.

Page 22: India::Ruby

everybody needs software

Monday 15 November 2010

There is a steady growth in the number of businesses small and large that cater to this audience and are starting to understand why stable, maintainable software that does what they need is important. This, we suspect is going to change how local work happens in India.

Page 23: India::Ruby

</context>

Monday 15 November 2010

So that’s it for the context setting bit. We’ve talked about who we are, and what scene has been thus far. Let’s move on to talk about

Page 24: India::Ruby

<history>

Monday 15 November 2010

Now, to begin with, a, little bit of history. We’ve been watching Ruby in India since...

Page 25: India::Ruby

2005

Monday 15 November 2010

... 2005 We got involved as individuals with Ruby superficially in 2005. This was around the time Rails 0.9 was out and Lighttpd+FCGI was the daring new Ruby deployment environment. Most of what we did at this point was hello world programs.

Page 26: India::Ruby

first startup in ’06

Monday 15 November 2010

My first serious ruby app was the core of my first startup, inactiv.com which used Rails

Page 27: India::Ruby

first startup in ’06

http://inactiv.com

Monday 15 November 2010

My first serious ruby app was the core of my first startup, inactiv.com which used Rails

Page 28: India::Ruby

first startup in ’06

http://inactiv.com

used rails

Monday 15 November 2010

My first serious ruby app was the core of my first startup, inactiv.com which used Rails. It...

Page 29: India::Ruby

first startup in ’06

http://inactiv.com

used rails

Monday 15 November 2010

...failed, and just so we’re clear, this startup didn’t fail because

Page 30: India::Ruby

© @noticiasdaMonday 15 November 2010

...Rails doesn’t scale. It failed because...

Page 31: India::Ruby

hard to raise money

Monday 15 November 2010

...it was very hard to raise money in India. It’s better now, but still an order of magnitude harder than in the US.

Page 32: India::Ruby

Monday 15 November 2010

but I digress

Page 33: India::Ruby

2006

Monday 15 November 2010

coming back to the scene in 2006

Page 34: India::Ruby

enterprise customers

Monday 15 November 2010

At this point, our customers everywhere (not just in India) used to say...

Page 35: India::Ruby

enterprise customers

ruby?!

Monday 15 November 2010

wtf is Ruby?

Page 36: India::Ruby

local customers

Monday 15 November 2010

At this point, our customers everywhere (not just in India) used to say...

Page 37: India::Ruby

local customers

PHP ftw! Wordpress pwns!

Monday 15 November 2010

talked only about PHP

Page 38: India::Ruby

developers

Monday 15 November 2010

and the developers in India were no different...

Page 39: India::Ruby

developers

java!

Monday 15 November 2010

they too would ask wtf is Ruby?

Page 40: India::Ruby

side note

Monday 15 November 2010

on a side note

Page 41: India::Ruby

first commercially built rails app from

India

Monday 15 November 2010

Early 2006 was when what I suspect was the first commercial Rails app built in India (by TWI) went into production in a couple bars in the US. It had internal DSLs. (pretty cool, eh)

Page 42: India::Ruby

2008

Monday 15 November 2010

Moving on a couple of years to 2008. Rails 2 was just out. Mongrel was hot.

Page 43: India::Ruby

enterprise customers

ruby doesn’t scale

Monday 15 November 2010

Ruby? That shit doesn’t scale.

Page 44: India::Ruby

local customers

ruby?!

Monday 15 November 2010

local customers still hadn’t heard of it

Page 45: India::Ruby

developers

Monday 15 November 2010

Page 46: India::Ruby

developers

ruby? yeah, we’ve heard of that...

Monday 15 November 2010

A few local devs start moving to Ruby and like it. A few startups like SlideShare and ThoughtWorks are pretty much the only places doing Ruby seriously, so the movement is very tiny and not driven by demand/jobs.

Page 47: India::Ruby

developers

ruby? yeah, we’ve heard of that...

but isn’t C# awesome?

Monday 15 November 2010

Page 48: India::Ruby

2010

Monday 15 November 2010

now

Page 49: India::Ruby

enterprise customers

ruby is interesting

Monday 15 November 2010

Ruby? Yeah, we’re very interested. Some large enterprises have already adopted Ruby, sometimes on a large scale.

Page 50: India::Ruby

local customers

Redmine pwns!

Monday 15 November 2010

local customers, non technical customers are loving Redmine. True story. Hugely successful startups like SlideShare.com and Cleartrip.com are making ‘esoteric’ technologies like ruby, rails, lisp, node.js etc. respectable. Ruby is clearly riding this trend to popularity.

Page 51: India::Ruby

developers

Monday 15 November 2010

Page 52: India::Ruby

developers

webroar

Monday 15 November 2010

There is a tiny, but passionate community of Ruby developers. Non-trivial projects like webroar have made it to 1.0 releases.

Page 53: India::Ruby

developers

github as a resume

Monday 15 November 2010

Github profile as a resume is accepted

Page 54: India::Ruby

developers

rubyconfindia.org

Monday 15 November 2010

RubyConf India 2010 is oversubscribed and organisers need to scramble to make an extra 100 seats available. Over 400 tickets are sold. This is the first year for RubyConf in India.

Page 55: India::Ruby

downsides?

Monday 15 November 2010

So that’s a rather nice picture we’ve painted there. What are the downsides?

Page 56: India::Ruby

maturity

Monday 15 November 2010

The software engineering practices of the Ruby community haven’t reached the same level of maturity as they have elsewhere. TDD/BDD, agile and quality software aren’t as well understood as they could be. While pockets of extremely high standards exist, the majority are still catching-up. This however is more a function of exposure than stubbornness - we don’t have the luxury of experienced devs to pair with except in pockets. Almost all learning is through studying open source.

Page 57: India::Ruby

--without=community

Monday 15 November 2010

There isn’t much of a culture of hanging out on mailing lists and IRC, interacting with the communty and learning stuff that way.

Page 58: India::Ruby

learning is slow

Monday 15 November 2010

consequently learning happens slowly

Page 59: India::Ruby

</history>

Monday 15 November 2010

In summary, Ruby has gone from being a complete non-entity to have a minor, but visible presence over the last 5 years. It has also built up a (relatively) small, but passionate community of developers around it, but this community is still in the process of maturing.

Page 60: India::Ruby

<sell>

Monday 15 November 2010

...what it’s like for those of us who sell Ruby services in India

Page 61: India::Ruby

you are...

Monday 15 November 2010

you are...

Page 62: India::Ruby

always sold out

Monday 15 November 2010

demand far outstrips capacity.

Page 63: India::Ruby

few experienced ruby devs

Monday 15 November 2010

small pool of Ruby devs

Page 64: India::Ruby

small pool of Ruby companies

Monday 15 November 2010

smaller pool of companies that do Ruby work

Page 65: India::Ruby

ruby projects tend to require fewer people

Monday 15 November 2010

Typically we require one to two pairs for any project. Larger projects are rare. So when a project winds up, there are just a small number of people available - and they’re quickly snapped up.

Page 66: India::Ruby

hiring is a bitch

Monday 15 November 2010

hiring is very very very hard

Page 67: India::Ruby

poor S/N ratio

Monday 15 November 2010

India churns out 50k engineering graduates every year, and the vast majority wind up in IT irrespective of their specialisation

Page 68: India::Ruby

you will drown in resumes

Monday 15 November 2010

Hiring by working through resumes simply doesn’t work for a high end s/w engineering firm - you will have one hire for every 500 resumes, if that.

Page 69: India::Ruby

become a destination

Monday 15 November 2010

We suspect the only solution is to have the kind of brand that attracts the right kind of people. This however is a theory - we’ve not come across any companies in the services sector in India that has successfully done this, but we’re giving it a shot.

Page 70: India::Ruby

indian salaries don’t scale according to

PPP

Monday 15 November 2010

If PPP held true in the IT industry, then Indian salaries would be 1/5 an equivalent american salary.

Page 71: India::Ruby

average annual increments are

10% - 30%

Monday 15 November 2010

increments as a percentage are far higher than the first world, and result in costs going up n^2 as experience increases

Page 72: India::Ruby

dearth of experienced devs

Monday 15 November 2010

there are very few devs with > 10 years of experience. And we’re producing thousands of new devs every year. This makes experienced devs very valuable.

Page 73: India::Ruby

reward years of experience,

notskills

Monday 15 November 2010

the indian s/w industry tends to reward people simply based on their years of experience

Page 74: India::Ruby

salary in lakhs (100k) = 2 x years of experience

Monday 15 November 2010

This is a rough formula for the services industry that I heard recently. As you can see, more experienced people earn significantly more.

Page 75: India::Ruby

1/3 of a US salary

Monday 15 November 2010

It isn’t unusual to find people earning 1/3 of a US salary in INR. This is roughly what determines rates. So billing rates in India will be approximately 1/3 of billing rates in the US, not 1/5 as dictated by PPP.

Page 76: India::Ruby

</sell>

Monday 15 November 2010

so selling Ruby services isn’t hard, but the biggest issue is staffing

Page 77: India::Ruby

<buy>

Monday 15 November 2010

If you’ve already shopped around for Ruby services in India, you may have already noticed some of the things we’re going to cover. These are basically reflections of what we’ve already talked about earlier in the sell section.

Page 78: India::Ruby

sold out

Monday 15 November 2010

Ruby services companies are almost always sold out.

Page 79: India::Ruby

talk to many providers

Monday 15 November 2010

Therefore don’t put all your eggs in one basket - shop around for several vendors and talk to all of them.

Page 80: India::Ruby

luck/timing matters

Monday 15 November 2010

Almost nobody can provide you with a team of two pairs on demand.

Page 81: India::Ruby

consequently

Monday 15 November 2010

as a consequence of this

Page 82: India::Ruby

unreasonable promises

Monday 15 November 2010

people will promise you that should you need to grow the project to x devs in y months, they’ll take care of it. while not impossible, this is often unlikely.

Page 83: India::Ruby

capabilities vary

Monday 15 November 2010

not everyone can do everything. It’s important to understand exactly how much a particular vendor is capable of.

Page 84: India::Ruby

different projects require different

levels of expertise

Monday 15 November 2010

understand what you need. If you’re building a throwaway prototype to demo to investors, maybe a $10 per hour vendor is sufficient.

Page 85: India::Ruby

price != capability

Monday 15 November 2010

That said, a vendor’s billing rate is not necessarily a reflection of their capability. I know this is stating the obvious, but we figured we’d make the point.

Page 86: India::Ruby

do your homework

Monday 15 November 2010

Look at the opensource work that a vendor has produced. It’s usually a good indicator of what you can expect. If you aren’t technical yourself, don’t hesitate to get a friend of yours who understands Ruby to do this for you.

Page 87: India::Ruby

ask for references

Monday 15 November 2010

Don’t hesitate to ask for references that you can talk to yourself. Look at their opensource work. If you aren’t technical yourself, don’t hesitate to get a friend of yours who understands Ruby to talk to them.

Page 88: India::Ruby

interview if necessary

Monday 15 November 2010

interview your prospective vendors if you deem it necessary to ensure that you clearly understand their skillset and level of expertise

Page 89: India::Ruby

10..70

Monday 15 November 2010

We’ve seen hourly billing rates in the range of $10 to $70

Page 90: India::Ruby

($58)

Monday 15 November 2010

We used to bill at 58, once

Page 91: India::Ruby

($30)

Monday 15 November 2010

Now because we’re new, we’re at $30

Page 92: India::Ruby

everybody claims they do...

Monday 15 November 2010

Almost all vendor websites will claim the following things...

Page 93: India::Ruby

cucumber / bdd / agile

Monday 15 November 2010

Maybe it’s true. Maybe it isn’t. It doesn’t hurt to check. For example, one vendor we were looking at talked a lot about BDD, then linked to their github profile. There wasn’t a single spec in any of their projects.

Page 94: India::Ruby

so you picked a vendor

Monday 15 November 2010

Page 95: India::Ruby

making things work

Monday 15 November 2010

Here a few things that you should ensure you’re doing to increase chances of success

Page 96: India::Ruby

NEVER

Monday 15 November 2010

Page 97: India::Ruby

toss requirements over a wall

NEVER

Monday 15 November 2010

it’s likely you will come back in a month and get nothing

Page 98: India::Ruby

overcommunicate

Monday 15 November 2010

Bridging the gap between you and your team that physical distance and a 12 hour timezone difference creates is essential. In situations like these, feedback loops wither and die without a lot of love. To keep the look tight, you should do...

Page 99: India::Ruby

feedback loops

Monday 15 November 2010

Page 100: India::Ruby

daily standup

Monday 15 November 2010

Do a daily standup

Page 101: India::Ruby

skype is awesome

Monday 15 November 2010

Skype is a communications game changer - in a context where communication is essential, Skype makes it *cheap* which removes the single biggest barrier to frequent conversations

Page 102: India::Ruby

skype video is awesomer

Monday 15 November 2010

In fact, do a daily video standup. I don’t know why this should be so, but we’ve found video calls far better in bridging gaps than simple audio calls. Demand daily skype video standups.

Page 103: India::Ruby

no, it isn’t unreasonable

Monday 15 November 2010

daily video calls are *not* unreasonable. You may have to adjust the timings so as to be convenient for everyone involved but that’s about it.

Page 104: India::Ruby

weekly iterations

Monday 15 November 2010

shoot for weekly iterations, with a weekly showcase. Establishing a pattern where you have to deliver value that is visible to the end user every week enforces a measure of discipline and delivery focus.

Page 105: India::Ruby

code quality stats

Monday 15 November 2010

track code quality trends. Use something like metric_fu to get a broad spectrum of data. Understand where your codebase is going. this is a delicate one, since trying to improve using metrics makes people optimise for only those metrics

Page 106: India::Ruby

prod should be up on Day One

Monday 15 November 2010

get a production (like) environment live as a top priority. Weekly showcases should be off this environment. This ensures a degree of rigour in the deployment process.

Page 107: India::Ruby

use a project management tool

that makes sense in this context

Monday 15 November 2010

Favour tools like Pivotal Tracker or Mingle that work well with the concept of iterations over alternatives, most especially issue trackers like trac/redmine/jira

Page 108: India::Ruby

realistic expectations

Monday 15 November 2010

Do your best to understand the skill level of the team you’re working with and tailor your requirementss, expectations and timeline accordingly

Page 109: India::Ruby

tdd, rich domain models, and skinny

controllers at $10 per hour?

Monday 15 November 2010

Page 110: India::Ruby

</buy>

Monday 15 November 2010

If you’ve already shopped around for Ruby services in India, you may have already noticed some of the things we’re going to cover. These are basically reflections of what we’ve already talked about earlier in the sell section.

Page 111: India::Ruby

<future>

Monday 15 November 2010

Page 112: India::Ruby

not much happens online

Monday 15 November 2010

in India, relatively little happens online

Page 113: India::Ruby

businesses have terrible, buggy

websites

Monday 15 November 2010

...even those like airlines or online stock trading sites that should have nice, usable fast web apps

Page 114: India::Ruby

cheap

Monday 15 November 2010

today businesses opt for the cheapest software

Page 115: India::Ruby

competition fuels change

Monday 15 November 2010

but we’re already seeing new companies and services emerge that are disrupting this pattern

Page 116: India::Ruby

explosion of SMB

Monday 15 November 2010

in the recent past there’s been an explosion in the number of small and medium businesses in India

Page 117: India::Ruby

good software makes you more likely to

succeed

Monday 15 November 2010

Page 118: India::Ruby

demand is rising

Monday 15 November 2010

so we’re seeing a rising demand for quality software, locally

Page 119: India::Ruby

in five years,local demand will

exceed foreign demand

Monday 15 November 2010

Page 120: India::Ruby

ruby is ideally placed to cater to this

market

Monday 15 November 2010

Page 121: India::Ruby

100% OSS stack(cheap)

Monday 15 November 2010

and India is a very price sensitive market

Page 122: India::Ruby

rich ecosystem

Monday 15 November 2010

tons of libraries to do almost anything

Page 123: India::Ruby

excels at rapidly building web apps

Monday 15 November 2010

ruby is superb for rapidly iterating over and building out webapps

Page 124: India::Ruby

culture of quality

Monday 15 November 2010

ruby’s ingrained culture of quality makes for more robust, maintainable code

Page 125: India::Ruby

</future>

Monday 15 November 2010

Page 126: India::Ruby

?http://twitter.com/ponnappa

http://twitter.com/niranjan_p

Monday 15 November 2010