Posterous theme by Cory Watilo

JSFoo

Saturday was quiet an eventful day.The first conference, first time I took a 4:40 AM train and the first time I went to Pune by train. All this because there is always more to learn out there.

And learn I did. As the name suggests, JSFoo is a Javascript conference which covered a wide range of topics from Node.js , WebSockets, Test Driven Development , Behavior Driven Development and how to handle errors better for Javascript. I also learn't how it is important to write unit tests even for Javascript. I never thought I needed unit tests for Javascript.

My favorite talks of the 6 that I attended has to be from Rakesh Pai and Sunil Pai. I enjoyed how they made their talk fun to listen to and had funny meme's in their presentation. We all like meme's don't we :)

Errorception was the product Rakesh Pai demonstrated and quite an interesting product it is. Helps you catch JS errors at the client end, in cases where the error's did not show up during your tests.

Sunil Pai, urged all front end developer's to "own the browser", write JS templates, use javascript MVC frameworks and write "unit tests" for all new features and bugs. His presentation slide is here http://www.slideshare.net/threepointone/amplify-your-stack-jsfoo-chennai-2012

My take away from the conference has to be to start writing unit tests and start using MVC frameworks even for Javascript. The web just got more exciting for me.

Done by Tomorrow

Client: When will it be done by?
Programmer: Give me a couple of days and I should have it ready.

Prospective Client: "Is this difficult to build? Have you built such an system before?"
Programmer: I haven't done it before, but I would assume this is easy to build

If you are a programmer, you have been part of such conversations before. You have made promises to your client or yourself to get a certain thing done, without having thought so much about the complexity of the problem or if you do in fact have the time to get it done tomorrow. 

I have had these moments, a lot last year while working on multiple projects. A requirement to build a simple Image gallery in PHP/MySQL would have me giving out a time-frame of 3-4 days. Would it really take 3-4 days? No, it would take me less time to build it. What made that timeline 3-4 days is the fact, that I had other things going on, which also needed attention while the Image Gallery was being built.

Most people I meet want things completed as soon as possible. Often their decision of working with you involves you having the required time to get things completed at the earliest. It's tough saying "no" to "can I get it back tomorrow" requests. The client assumes there is something wrong when you say it would take 2 days to add a simple feature. 

Communication, I have learnt is really important as I spend more time working through projects. Done by tomorrow conversations have now been replaced by "Done by {date}". The {date} I arrive upon, after having looked through the work involved that week and letting the client know that I have other things to attend to between today and {date}. It's important to have a good work-life balance. Burning the mid night candle cannot go on a long time.

Outsource

A few days ago, this website "http://www.dontoutsource.com/" made rounds on Twitter. What is this about? A company in America being "ripped off", by a company in "Mumbai, India". A case of project outsourcing gone wrong. I not sure what the guys on the other end have to say, but it does not look good for them, based on the data provided.

Being from India, such stories hurt. The picture painted being that "outsourcing" to India is a bad. I constantly read / hear about stories from people describing how they did not have a good experience, while working with a company in India. A missed deadline, not constantly being in touch, the end result not being satisfactory enough, the reasons pile up.

I only read about horror stories about things gone wrong while with companies from India. Do projects outsourced to  America, Russia, Canada, {insert any country} never go wrong? Or is it that I only read / click on stories which mention the word India? I am sure it's the latter which is true.

As the painted picture reads in the article and in the comments, not everyone in India is bad to work with. I personally work with and know companies here that do a excellent job at what they do. Sure, sometimes there are failed deliveries on deadlines, but then humans are bad estimators, be it India, America or any other country.

Your process of outsourcing work needs to be examined in more detail, than the country where you choose to outsource. How did you pick the particular company to work with? Was it based on the 'lowest' price quoted? Did you check their portfolio? Did you talk to their existing clients? Was there a trial run involved? How were they to communicate with? When you decided to outsource a $2,00,000 project, I hope you did all of the above and not just pick them cause they were the 'lowest' quote.

Turning to Page 26

I enjoy birthdays.Not sure when the fun wears off, I surely hope it lasts for a long time from now. Each year, it brings with it a different set of experiences and memories, which you later look back on and think, "it was good to be 25". I wish the fun never stops, and from my experience over the years it only seems to get better as the days go by.

2 days ago while talking to my sister, she asked if I missed college and would go back if given a chance. A few years back, I would have said "yes". College was fun, but I would not want to go back. Things that I learn't, people that I have met and the experiences I have gained, I would not want to un learn.

2011 has been a great year. From a list of few things I wanted to get done this year, most of them got accomplished. As with the previous year, I met a lot of new people, travelled a lot, learn't many new things on the web(coffeescript, ruby on rails, html5, responsive design, fuelphp) and started work on my own product(EvenPick). Some things which did not work out well : wrote less(the last post was in september 2011), did not start my own podcast, plans to launch a coaching program did not turn out well, did not launch the product I have been working on.

Visited quite a few places this year Dubai, Pune, Lonvala, Hyderabad, Delhi, Agra, Udupi, Bangalore, Pondicherry , Goa and Patna.

This year has also been a year full of good experiences. I stopped taking new consulting projects. A few things to focus on now, ensures I do them really well. Plus running a service business in India is not so much fun. Saw Formula One racing live, travelled by Delhi Metro for the first time, saw Taj Mahal for the first time, Dubai was beautiful and fun to travel around, Pondicherry's french colony is worth a visit and Patna is not as bad as many people described it to me.

I also worked alongside some really good people this year. Sahil Parikh, Komal Turkar, Mayur Makheri(have fun in New Zealand), Swati Dash, Himali Girkar, Sanat Hedge and Satya Gupta. I have learn't so much from each of them.

Interesting projects / applications I came across this year: Beanstalkapp, Gitbox, Stypi, Perfios, Instapaper, Pinboard, mlkshk.com and Pagodabox.

Looking forward to new experiences and travel in 2012.

Hope you all have a great day.

Not Enough

Internet and Web technologies are ever evolving. From me it began with people being able to host their own website with static content.Adding new ".html" pages and uploading these via FTP. Animated Gif images, blinking banners and <marquee>. Things have changed a lot over the years, so much for the better.

A lot has changed since then, you can now
     - Activate / Kill Servers instances as and when required using Amazon EC2
     - You can have a really web designed website, without writing any code using Squarespace
     - Real time document collaboration? Google docs makes it possible.
     - Need to setup a blog? Wordpress has you covered.

...there are many more examples of technological advances in the web, the list would be too long to cover.

We now focus towards making the web work better for consumers / users.Providing users with a better design / browsing experience is the end goal.

This also means that a role of a 'web developer' changes really quick. No longer is it sufficient to know just "HTML" or "CSS". There is "HTML5" and "CSS3" to learn. Rapid Prototyping, creating mockups and having basic javascript knowledge is now part of the requirement.

If you are a "web programmer", knowing basic "PHP" would get you a job before, but now you are expected to know a lot more.
     - Have you worked with MVC framework?
     - Can you make dynamic responsive web applications using AJAX?
     - How good are you at Javascript?Jquery / Prototype / Mootools.
     - How about adapting to a new framework or a new language? Django? Ruby on Rails?
     - Can you help us migrate to 'MongoDB' / 'Redis'?
     - Have you used GIT before?

There is more to learn each day, as the requirements of the consumer focused web changes. As a web developer / programmer, it is "not enough" to know just "PHP/ MySQL" or "HTML/CSS". It would be 5-6 years back, but not any more. The requirements are changing every month / year. Be ready to keep up.

These are exciting times.There is so much to learn.

Should you outsource your start up idea?

I have been asked this question a lot the last few days. Is outsourcing your Internet start up idea good? When should one do it? When should one build it internally? My answers below.

It is much easier to create a Internet based start up these days as compared to 2-3 years ago.A wide range of frameworks make it easy to get started,cloud based hosting,access to freelancers...etc.

Is your start up idea a fun project with no real intention of becoming a business?
Outsource.

Is the start up going to be your primary focus the next few months / year?

Are your technically sound to create the idea yourself?

Yes
Don't Outsource it. It's much harder to co-ordinate, tell someone else what you have in mind, how to picture the end product etc. Plus the idea will keep evolving,once you get started. The freelancer / outsourcing agency might not like this.Plus the time / cost expense would be quite high as compared to doing it your self.

Plus points of doing it yourself include, learning new languages, learning new ways of working, ways to motivate yourself, having fun, all of which will be quite useful moving forward. Outsource parts of product which you are not good at. For e.g Logo , Icons design, if you think you are not good at this.

No
Common advice on the Internet would be partner with someone who is technical. If you find the right person,that would be ideal.But it is often difficult to convince of your idea until you have a product ready to present. Something which the other person can see / use. In this case, Outsource the first version of the product.Once you find the right technical co-founder, he /she can continue from the finished outsourced work.

If you cannot find a technical co-founder and your idea has gained lots of users / interest, hire someone full time to work on the idea as against depending on a freelancer / outsourcing company. The reason I recommend this is because, freelancers / outsourcing agencies are usually involved in multiple projects at one time.Even though they might be a good resource to begin with, having a dedicated resource would really help the product.Someone who thinks / works on the product / idea full time,always benefits over someone who has 2-3 hours per day dedicated to spend on your start up.

I have programming / design knowledge,but I would rather focus on business development / idea
If you have the technical knowledge, put together a list of technical skills someone should have to develop work on the idea. Hire someone with the right technical knowledge required to create the idea. If finding a full time employee is difficult, look for independent contractors, who are ready to dedicate 2-3 months to create the minimum viable version of the product. It could be difficult to convince a programmer to leave a full time job to come work for a start up which barely exists. Independent contractor could do  the job of creating the product which then brings more people on board, once the requirements of your start up increase.

Good luck.

Why I don't pirate softwares

Piracy in any form hurt the person putting his / her effort into creating the product / service. I recently had a long conversation with one of my friends on why I pay for softwares even when I know I can get it downloaded off the Internet for free.

I use a few software applications.I used be the guy who had a lot of software installed on my machine for days when I might need them. I still often download new softwares to try out what's new in the space I am interested in.If I find myself not going back to the software the same week, I now un install it.

Softwares I use are part of my daily routine and help me get my things done.They assist me in doing my job better. Be it a music application which streams music or a Text Editor which adds to the coding experience, or a SaaS application which records my commits and helps deploy my code.

The tools I use, have people behind it,spending time / money in order to build / market / ship the application. If I spent as much time building a web application / desktop application, I would want to get paid for it.I am sure, if you put as much effort behind building a product / providing service, you would want to get paid too.

If a tool you use everyday,helps you get better at the job your perform, then please pay for the software.Money is a good motivation for the person / company to invest more time / energy to make the product better and release regular updates for bugs discovered.  Support the developer / company in helping build a better version of the tool.

“Manage the Temptation to Publish Yourself”

“I can’t stress enough how important it is to write bad songs. There’s a lot of people who don’t want to finish songs because they don’t think they’re any good. Well they’re not good enough. Write it!  I want you to write me the worst songs you could possible write me because you won’t write bad songs. You’re thinking they’re bad so you don’t have to finish it. That’s what I really think it is. Well it’s all right. Well, how do you know? It’s not done!”

I often dismiss the initial version of my designs.Important to remind myself that the product is not complete yet. A work is progress.

JUST WORK HARD : IT’S NOT HARD WORK

And that’s the key word: career.  Longevity.  The long haul.  What’s really good with building a career, leaving a legacy, and making a substantial mark on this world?  All the millenials want (and see) is point Z.  They don’t want to sit through and listen to B or C, or work Saturday nights on J or K, or wake up early on Sunday for P and Q.  They just want Z.  And when they can’t endure the pains, struggle, and valuable life lessons that a few years of Ds and Es take, they’re onto the next one.  Unfortunately, they’re missing the point.  It’s not about Z, it’s never been (C’mon Z’s a crappy letter anyways, all it’s good for is Zebra and Pizza).  A truly invaluable life is comprised of the journey: achieving and appreciating the entire alphabet.  The hard work is the trophy.

A really good article. A must read for every graduate / looking for a job.

What are you upto?

I have been asked this question numerous times over the last one and half years, and have had great fun answering to everyone who asked me this question. Common answers included

- I am educating myself about business, project management
- I am Batman
- I am a freelance programmers / interface designer.
- I am taking a break to travel

All of the above were true (other than the Batman part), I learnt quite a lot, the last year, worked on some great projects, with some great people and traveled across Southern India / Dubai / Sharjah. It was quite a great year, looking back now.

"What are you up to?", I still get asked this question very often.Somehow not having "a job" is a bad thing."Why don't you take up a job?", "I know Accenture is hiring, do you want to apply?" and more suggestions from people I care about always come through, but not many wanted to know what I wanted to do.

The EVIL PLAN!

Everyone needs a EVIL PLAN!  A year and a half later, I am ready with mine.

 - One of my new year goals was to "Work with awesome companies on great ideas", and I recently got asked to be part of one such journey in a start up. Will be sharing more details as things unfold. Excited to be part of an awesome team, working on a great product.

- Float Gravity Web Studio's. My business which is going to create beautiful / simple / useful web products.
I have already started working on the first product. You can read more about it on the blog

Really excited about the road ahead.