India::Ruby Monday 15 November 2010 Good morning everyone and thank you for being here.
May 12, 2015
India::Ruby
Monday 15 November 2010
Good morning everyone and thank you for being here.
sidu ponnappa
Monday 15 November 2010
Let us take a minute to introduce ourselves - I am Sidu Ponnappa
kaiwren
Monday 15 November 2010
I do my open source here
@ponnappa
Monday 15 November 2010
social network here
niranjan paranjape
Monday 15 November 2010
I am Niranjan
achamian
Monday 15 November 2010
I do my open source here
@niranjan_p
Monday 15 November 2010
social network here
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
<context>
Monday 15 November 2010
Before we move ahead, I’d like to set some up some context.
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.
how things work
now/future
Monday 15 November 2010
We will also talk about how we expect the future to shape up.
subjective
Monday 15 November 2010
Keep in mind that what we’re talking about is very subjective, and that opinions *will* differ
relevant?
Monday 15 November 2010
And how is this relevant to you, our audience?
assumptions
Monday 15 November 2010
We’re making a couple of assumption about y’all
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.
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.
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
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.
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.
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.
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.
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.
</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
<history>
Monday 15 November 2010
Now, to begin with, a, little bit of history. We’ve been watching Ruby in India since...
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.
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
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
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...
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
© @noticiasdaMonday 15 November 2010
...Rails doesn’t scale. It failed because...
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.
Monday 15 November 2010
but I digress
2006
Monday 15 November 2010
coming back to the scene in 2006
enterprise customers
Monday 15 November 2010
At this point, our customers everywhere (not just in India) used to say...
enterprise customers
ruby?!
Monday 15 November 2010
wtf is Ruby?
local customers
Monday 15 November 2010
At this point, our customers everywhere (not just in India) used to say...
local customers
PHP ftw! Wordpress pwns!
Monday 15 November 2010
talked only about PHP
developers
Monday 15 November 2010
and the developers in India were no different...
developers
java!
Monday 15 November 2010
they too would ask wtf is Ruby?
side note
Monday 15 November 2010
on a side note
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)
2008
Monday 15 November 2010
Moving on a couple of years to 2008. Rails 2 was just out. Mongrel was hot.
enterprise customers
ruby doesn’t scale
Monday 15 November 2010
Ruby? That shit doesn’t scale.
local customers
ruby?!
Monday 15 November 2010
local customers still hadn’t heard of it
developers
Monday 15 November 2010
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.
developers
ruby? yeah, we’ve heard of that...
but isn’t C# awesome?
Monday 15 November 2010
2010
Monday 15 November 2010
now
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.
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.
developers
Monday 15 November 2010
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.
developers
github as a resume
Monday 15 November 2010
Github profile as a resume is accepted
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.
downsides?
Monday 15 November 2010
So that’s a rather nice picture we’ve painted there. What are the downsides?
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.
--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.
learning is slow
Monday 15 November 2010
consequently learning happens slowly
</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.
<sell>
Monday 15 November 2010
...what it’s like for those of us who sell Ruby services in India
you are...
Monday 15 November 2010
you are...
always sold out
Monday 15 November 2010
demand far outstrips capacity.
few experienced ruby devs
Monday 15 November 2010
small pool of Ruby devs
small pool of Ruby companies
Monday 15 November 2010
smaller pool of companies that do Ruby work
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.
hiring is a bitch
Monday 15 November 2010
hiring is very very very hard
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
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.
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.
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.
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
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.
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
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.
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.
</sell>
Monday 15 November 2010
so selling Ruby services isn’t hard, but the biggest issue is staffing
<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.
sold out
Monday 15 November 2010
Ruby services companies are almost always sold out.
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.
luck/timing matters
Monday 15 November 2010
Almost nobody can provide you with a team of two pairs on demand.
consequently
Monday 15 November 2010
as a consequence of this
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.
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.
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.
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.
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.
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.
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
10..70
Monday 15 November 2010
We’ve seen hourly billing rates in the range of $10 to $70
($58)
Monday 15 November 2010
We used to bill at 58, once
($30)
Monday 15 November 2010
Now because we’re new, we’re at $30
everybody claims they do...
Monday 15 November 2010
Almost all vendor websites will claim the following things...
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.
so you picked a vendor
Monday 15 November 2010
making things work
Monday 15 November 2010
Here a few things that you should ensure you’re doing to increase chances of success
NEVER
Monday 15 November 2010
toss requirements over a wall
NEVER
Monday 15 November 2010
it’s likely you will come back in a month and get nothing
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...
feedback loops
Monday 15 November 2010
daily standup
Monday 15 November 2010
Do a daily standup
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
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.
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.
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.
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
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.
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
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
tdd, rich domain models, and skinny
controllers at $10 per hour?
Monday 15 November 2010
</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.
<future>
Monday 15 November 2010
not much happens online
Monday 15 November 2010
in India, relatively little happens online
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
cheap
Monday 15 November 2010
today businesses opt for the cheapest software
competition fuels change
Monday 15 November 2010
but we’re already seeing new companies and services emerge that are disrupting this pattern
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
good software makes you more likely to
succeed
Monday 15 November 2010
demand is rising
Monday 15 November 2010
so we’re seeing a rising demand for quality software, locally
in five years,local demand will
exceed foreign demand
Monday 15 November 2010
ruby is ideally placed to cater to this
market
Monday 15 November 2010
100% OSS stack(cheap)
Monday 15 November 2010
and India is a very price sensitive market
rich ecosystem
Monday 15 November 2010
tons of libraries to do almost anything
excels at rapidly building web apps
Monday 15 November 2010
ruby is superb for rapidly iterating over and building out webapps
culture of quality
Monday 15 November 2010
ruby’s ingrained culture of quality makes for more robust, maintainable code
</future>
Monday 15 November 2010
?http://twitter.com/ponnappa
http://twitter.com/niranjan_p
Monday 15 November 2010