Category Archives: In Depth

ShopSocially focuses on retailers with new offering “SocialConnect”

(Pune-based Startup ShopSocially, whose launch was covered on PuneTech last year has recently been in the news again for their launch of SocialConnect, a product for online retailers to easily add social shopping features to their existing e-commerce site. Suneetha talked to Samir Palnitkar and Sunil Arora of ShopSocially, and this article starts with an overview of ShopSocially (again), and then goes on to their latest offerings, and future plans.)

Buying a camera or a laptop and looking for some advice? Referrals seem to be taking over shopping decisions now more than ever, and the web is a key player in this activity. It’s this concept that ShopSocially has leveraged successfully by integrating the concepts of online shopping and facebook. Samir Palnitkar and Sunil Arora talk about how ShopSocially has come on the online social shopping map. Samir Palnitkar, an alumnus of IIT-Kanpur, is the President of ShopSocially and Sunil Arora, an alumnus of IIT-Kharagpur is a Founding Member who now looks after the technology aspects of the company.

Sam says it all started with a thought about harnessing social networking. Jai Rawat (CEO of ShopSocially) had spent several years in the ecommerce and online shopping space. As social media channels such as Facebook and Twitter were becoming popular, Jai realized that social recommendations via Facebook and Twitter would become a key traffic and revenue driver for e-commerce. These thoughts were the foundation behind ShopSocially. In the offline space, we tend to consult friends before making a buying decision. Why not do the same in the online space? That led to the idea behind ShopSocially set up in 2009.

You just need to register a free account with ShopSocially and shoot your shopping questions or declare your impressions on the platform. Why waste countless hours researching stuff and reading anonymous reviews? Of course, this works best when you have lots of ShopSocially Friends. Your Facebook friends automatically become your ShopSocially Friends when they join in. You can also earn badges or become ‘Shopping Gods’ depending on the intensity and frequency of your activity.

And how does it work for a retailer?

“Retailers can integrate with ShopSocially’s social commerce platform to harness the tremendous power of social recommendations. ShopSocially helps turn every purchase into a conversation and a social endorsement driving significant ‘friend referred’ traffic back to the retailer site. Retailers can get 2% to 6.5% incremental sales by integrating with the ShopSocially platform.”

ShopSocially has evolved quite a lot its model. It started off as an end-user site. Then they realized that the ShopSocially platform was highly attractive for retailers who wanted to socially enable their websites. So they launched Social Connect, to allow retailers to easily plug in to the ShopSocially platform. SocialConnect allows the retailer to add social features into the existing e-commerce platforms. Specifically, after a customer has purchased something, they are encouraged to share this purchase with their facebook friends (i.e. recommend this item to their other friends).

In addition, ShopSocially also automatically creates a new “Shoppers” tab on the company’s facebook fan page, where website where prospective customers can check whether any of their existing facebook friends have bought anything from this merchant, and if yes, what they’ve been buying, and what the reviews are.

ShopSocially started working with retailers in a fixed fee model but soon realized that it was easier for retailers to work with a performance-based or a subscription-based model; so quickly changed their pricing to meet the needs of retailers. Samir quotes an experience here. “We were thrilled when one of our retailers saw an increase of nearly $1 million in revenues per year by integrating with the ShopSocially solution.”

By now, I was getting convinced that it was all limited to the web user, but no, ShopSocially is already seeing beyond that parameter. Samir tells me that ShopSocially is as relevant for a customer outside the web precincts. “Yes. Social recommendation is how we buy most of our products, whether online or offline. In the near future, ShopSocially plans to bring product sharing to mobile devices. That will allow shoppers to share offline purchases with friends.”

So what about India specific plans? Sunil Arora says “In the next few months, we will be rolling out our solution in India. We expect retailers to embrace ShopSocially really quickly. Currently, ShopSocially is the only company in the world that offers a comprehensive social commerce suite for retailers. There are other competitors, but no company offers a suite that integrates with the most common user touch points, order confirmation page, Facebook FAN page and order confirmation email. Check this out here http://shopsocially.com/partners

Social networks such as Facebook and Twitter create a convenient way for shoppers to share their purchases with friends. Social networks have made sharing simple. While ShopSocially uses other media such as Google and Email, Facebook and Twitter play an important part in the ShopSocially strategy. Technology wise, ShopSocially has an exceptionally talented team that has built a world class platform on some of the best technologies in the world, including MongoDB, Redis, Celeryd, Python, Ajax, Javascript and others.

So what is the future map?

“ShopSocially will continue to add other social components that benefit retailers. These components will increase sharing and drive incremental traffic to retailer sites. Another dimension is integration with popular shopping carts such as Magento, Shopify and osCommerce. ShopSocially will continue to make integration simpler by offering pre-integrated plug-ins for various shopping carts. We feel that ShopSocially has the opportunity to become a global billion dollar company. We do not need a large team (maybe < 100 people), but we will continue to handpick the brightest minds to work on the exciting problems that we are solving daily.”

The Basics of Game Development – for programmers

(This is a live-blog of a talk Girish Dhakephalkar of http://ShoonyaGames.com gave at TechWeekend #9 on Game Development.)

This talk is an overview of what exactly is involved in game development – from the point of view of a programmer.

These are the major components of game development.

Game Platform

A game platform is the hardware-software combination on which a game runs. These are the major game platforms:

  • Console (e.g. Xbox 360, Wii, PS2/PS3).
  • Handheld
  • PC (Windows, Mac)
  • Mobile (iPhone, others)
  • Web Browser Based
  • Arcade Machines (i.e. the dedicated game play machines you see in video-games parlours in malls)

The platform makes a big difference to the kind of games you can build. For example, consider the consoles. Here the hardware is fixed. This is good because a game is a very optimized piece of software. So the more you know about the hardware, the more you can optimize, and the better will be your gameplay. (Compare with a PC game where it can be played on PCs with vastly different hardware capabilities. Then you end up programming to the minimum requirements, which is sub-optimal for the higher end PCs.)

Game Development Team

A game development team consists of the following roles:

  • Artists – 2D/3D artists and animators
  • Game Designers – Level designers, Gameplay designers, UI designers
  • Programmers – Graphics, Gameplay, AI engine, Physics, Networking, UI, Tools
  • Audio – Sound effects creators, music composers
  • Testers (Pune has a lot of game testing companies)
  • Special mention: The Crossovers – Technical Artists, Team Leads, Tester-Producer, etc.

Not all kinds of games require all these roles. A “big” game is a huge production, pretty much like a movie, and will hence need all these roles. Smaller games can do with fewer.

Interesting points: The Physics Engine in a game is a piece of software in a game which essentially enforces the laws of physics (as they exist in the game world). When you throw an object, how it flies through space is determined by the physics engine. When you fall, what happens to you, how much you get hurt; if you kick a door, will it break. Such things are determined by the physics engine.

Networking is needed in online games. Specially, an MMORPG (massively multiplayer online role-playing game) has hundreds of thousands of people playing simultaneously, and the various players are interacting with the game system, and with each other. All of this networking has to be managed at the game servers (which are in the cloud) and the game clients (which are installed on the users PC/console).

Game Development

There are two broad phases of game development.

First there is “content creation”. This includes things like creating the characters, animations, levels etc. This happens offline, before the game is “released”. The tools used are Maya/Max, Photoshop, Sound creation tools, and Game design tools. The other big chunk of program in a game software is the “runtime”. This is the server and the engine which interacts with the user and renders each frame of the game, and controls the game play.

The fundamental difference between animation and graphics in games and anywhere else is the “realtime” nature of the rendering. When doing animation/graphics for a movie, everything is computed beforehand, and it is simply displayed/rendered at runtime. However, with a game, this is not true. You need to keep gathering input from the user (for example, the current position of the user), and change the animation appropriately. So, the animation needs to be auto-created at runtime based on the inputs, and this needs to happen at 30+ frames per second.

Going below 30+ frames per second is just not permissible – the game will not feel smooth. Hence, the only thing you can compromise on is the quality/resolution of the graphics. Hence, in terms of pure graphical output, a pre-rendered video is always going to have better possibilities than what is possible in a game.

In any case, in most games, lots and lots of optimization happens to be able to render high quality graphics at 30+ FPS, using the best possible software and hardware combination. Thus, most games will try to use the graphics cards of the hardware to the fullest extent possible. All modern graphics cards are programmable in the sense that common graphics operations (like shaders) can be offloaded to the graphics card. The game engine will have sophisticated software that pushes as much work as possible to the graphics card.

The Game Runtime is broken up into two big parts. First there is the basic engine, which can be thought of as a framework for building games, and has building blocks like rendering, animation, physics, networking, sound. Another major feature of an engine is that it allows easy creation of different kinds of games, characters, levels, and general purpose scripting.

Thus, the idea is that there is a generic game engine which is not necessarily tied to any specific game, and on top of this, various different games can be built by the game designers. Typically, the same game engine will be re-used by a company to build and release many different games.

A game engine will typically come with “game creation tools” which are separate pieces of software which allow you to “author” games. Typical workflow: an artist uses tools like Maya/Photoshop to create the basic content, and the level designer of a game will use the game engine tools to import the basic content into the game. You might create a character in Maya,

Examples of game engines: CryEngine (Crysis, Far Cry, Aion: Tower of Eternity), Unreal Engine (Unreal Tournament, Unreal3, Gears of War. http://udk.com is available free for non-commercial use), Source Engine (Half Life, Counter Strike Source), Unity, Torque (Casual/web-based gaming).

Components of a Game Engine

  • Graphics renderer: all the computer graphics calculations (including ray tracing, lighting, refraction, reflection, etc). Crysis (the game) looks very good because the CryEngine graphics engine is very good.
  • Animation system: Define how your characters move. This includes defining the walk cycle (i.e. one full step of the character walking, which is looped to show a walking character).
  • Scene graph: A level in a game is a huge 3D (or 2D) space, with lots of things – characters, objects, lights. All of these need to be defined and instantiated. These need to be held in memory while the game is playing. Knowing what objects are where, and keeping track of them in memory is the job of a scene graph. The renderer shows you the view of what is currently visible to you, while the scene graph keeps track of everything that is “nearby”, and is the one who calculates what is and is not visible (and should hence be sent to the renderer).
  • Physics: As described earlier, the physics of the game world. When things are thrown, what is their trajectory. If something hits something else, how much doe it bounce. Compute the mass, the force, the acceleration, and apply the Newton’s laws (or another set of laws, if the game world has different physics than our own).
  • Networking: This most programmers should be familiar with.
  • AI: This is what actually defines how different characters (the computer controlled ones) behave and react. Note that you’re not always trying to create reality, or “human” behavior. All you want is a fun experience – not necessarily realistic.
  • Audio: Sound effects, and voice-overs.
  • UI: The interface for the game. Including inputs, options, etc.
  • Scripting: While the basic engine is programmed in C++, for defining what happens in a game, a low-level programming language like C++ or Java is not an ideal language to define the “gameplay.” For this, a scripting language like Lua, or Python is used. Or, like Unreal Engine, the engine might have its own scripting language. Compiling a game takes a long time (more than half an hour for a big game), so you definitely don’t want to write your game logic in a compiled language and require a full compilation every time you make a minor change.

Who would be interested in Game Development

If you want to make a career in game development, these are some things to think about:

  • You need to be interested in games, and should have some knowledge of games. That will make work more interesting
  • You should have played, and analyzed a variety of games – that way you know and understand what are the different possibilities out there
  • You should like working in a team. A game development team can be 100s of people, all working together to produce a single game. And if you’re not really a team player, you will not be able to function properly.
  • Good communication skills. A game development team has people from many different teams, with different backgrounds, and if you’re not good at communication, especially written communication, you might run into problems.

Once you’ve become a game programmer, you’ll find yourself using these skills a lot:

  • Mathematics!!
    • Linear Algebra: matrix operators, vectors, quaternions
    • Co-ordinate systems (remember your geometry?)
    • Trigonometry – basics, like 10th/12th std. level
    • Laws of physics (laws of motion, angular velocity/momentum etc).
  • Programming
    • C/C++. .NET, C# for tools. Scripting languages (python, lua).
    • Object-oriented programming.
    • Writing optimized code

But here is the biggest reason why you should get into game development:

  • Game development is at the cutting edge of technology. All the latest and best technology is used in games first, and only slowly and later does it trickle down into other fields of programming. Game development is the F1-racing of programming.

Links

Lookup these links for some further interesting reading for games.

Hiring Technical Writers for Start-Ups

(This article is a guest post by Mugdha Vairagade. See the end of the article for more information about Mugdha.)

If your start-up is considering hiring technical writers to document its products or services, then read on. Having a technical writer onboard to prepare professional and well-rounded documentation is important, when:

  • you have a major release of a product or service, targeted at large number of enterprise or end users
  • you are offering APIs or frameworks to other developers for further development
  • your product has frequent releases requiring extensive Release Notes and Readme files
  • and so on…

This article tries to put together the points you need to consider and the actions you have to take to hire technical writers for your start-up. This article provides advice relevant to start-ups, because a start-up’s hiring needs and budgets differ from those of an established organization.

This article assumes that you are hiring technical writer(s) for the first time, and your start-up does not have anyone onboard with documentation know-how.

  • First, you need to determine what type of documentation your product or service requires. Here are major documentation types, along with examples of the applications they are suitable for:

    • Online Help: Documentation published online. Suitable for enterprise application documentation, where the documentation is extensive and is to be made available on the corporate intranet. For example, Help for ERP systems.
    • Application Help: Context-sensitive documentation integrated with an application. Suitable for desktop applications, where users need to access context-sensitive help for specific application area. For example, Help for Microsoft Office applications.
    • Print Documentation: Printed or ready-to-print documentation. For example, Installation guides for servers, mobile phone user manuals.
    • Wiki: Documentation published as wikis. Suitable for internal and collaborative documentation. For example, MediaWiki Help
    • Videos: Suitable for task demonstrations and walkthroughs. For example, Dropbox demo

    The documentation type tells you what tools and skills are required to prepare the documentation.

  • Identify the documentation tools you can provide to the technical writer. As already explained, the tools to use are determined by documentation type. The candidate should have mastery of these tools.

    Commonly-used proprietary documentation tools have hefty license fees. However, these tools are reliable and come bundled with support. Some examples are Adobe RoboHelp, Adobe FrameMaker, and Author-it.

    However, if you have budgetary constraints, you can opt for any suitable Open Source and free documentation tool. These tools, albeit with fewer features, are as capable of authoring and managing documentation as the licensed tools. Some examples are MediaWiki, OpenOffice Writer, and Wink.

    Note: If your documentation tool is uncommon, then your technical writer may require some training to learn using it.

  • Most likely you’ll hire only one technical writer, given budgetary constraints. In this case, you need an experienced candidate who can take end-to-end responsibility of any documentation project. A technical writer, who has two to four years of experience working in minimum two full project lifecycles, fits the bill. Also, that technical writer should either have expertise in the documentation tool you chose, or should be able to quickly learn using the tool.

    Tip: You can take in entry-level technical writers as trainees in return of stipend and/or experience certificates, depending on the volume of documentation required. These trainees can work in supervision of the experienced technical writer you hire. Contact the technical writing institutes in your city that are looking for “live projects” for their students.

  • After determining documentation type, tools, number of technical writers to hire, and their experience level; write a job description based on the information. The job description must clearly define the requirement (domain knowledge, skills, experience level), what responsibilities a hired candidate will have in your organization, any training you will to provide after hiring.

    A well-written job description is crucial in gaining a potential candidate’s attention and confidence.

  • Share the job description over social network sites LinkedIn, Twitter, Facebook etc. to attract potential candidates. Also, proactively search for the technical writers, whose profiles match the job description, and invite them for the selection process. This will significantly cut down the time you’ll otherwise spend sifting through CVs provided by placement consultancies. LinkedIn groups and Twitter public lists of technical writers are great places to go looking for candidates and checking out their profiles. You may want to focus on city-specific groups like “Technical Writers in Pune, India”, if you need to recruit only the local candidates for speedier on-boarding.

    Note: Set the candidate’s expectations right at the beginning. Tell them that your organization is a start-up. Brief them about your product/service, the documentation tools you’ll provide, whether they’ll get to lead small teams (of trainees), and what they’ll learn if they work with you. This way you’ll be able to exclude any candidates who are not comfortable working in such an environment.

    Tip: Consider hiring women technical writers with requisite experience, who are returning to work after a gap. They can bring in the documentation expertise at a lower cost, in return of flexi-time or part-time arrangements. They are also less likely to job-hop. Find listings of women technical writers seeking flexi-time jobs here: http://www.fleximoms.in, http://www.littlewins.in.

  • Organize on-campus tests for short-listed candidates. In the tests, ask the candidates to write on a topic relevant to your product/service using the documentation tools you specify, within a stipulated time (usually 2-3 hours, depending on complexity of the topic). Check the resultant writings for grammatical correctness, structure, and succinctness.

  • Editing skills are crucial in technical writing. An experienced technical writer is able to edit own documents and those prepared by others. The on-campus test can include one or more editing assignments. Alternatively, you may invite only the candidates with good performance in writing test for the editing tests. Here are some editing tests for your reference:

    You can search for more editing tests online.

  • Your technical writer must have basic understanding of copyright and intellectual property laws. To test this, allow the candidates online research during the writing assignment, and check whether they copy content verbatim from other websites.

  • Being a start-up, you may not have a documentation style guide or documentation template in place. If so, during the interview check whether candidate has knowledge of industry standards of documentation style, such as Microsoft® Manual of Style for Technical Publications and The Chicago Manual of Style.

    An experienced technical writer should be able to prepare a documentation template with professional look and feel from-the-scratch. You may give test assignments to candidates to check these two points. You can find few examples of documentation templates for your reference here.

    Note: If you plan to use any readymade templates bundled with your documentation tool, are using Wiki, or have plain-text documentation (such as release notes, Readme files), then you can leave out the test for document template.

  • After hiring, ensure that your technical writer saves all her work in a centralized repository with version control system. For documentation in huge volumes, use a content management system. Almost all documentation tools support integration with such systems, making the technical writer’s job easier. The benefits of such arrangement are twofold. Documentation versioning is useful for keeping track of updates for multiple releases. Also, if the technical writer decides to leave your organization at any point of time, you’ll have access to work they finished with the update history. This will help another technical writer to start where they left off.

These points sum up the major considerations you need to make while hiring a technical writer. If you have any more questions about technical writing or hiring technical writers, you can reach me at mugdha at techatom dot in.

About the Author – Mugdha Vairagade

Mugdha is a senior technical writer with over 9 years of experience and software development background. She has authored numerous well-appreciated articles and white papers on IT-related topics.

Mugdha presently works with a Telecom product development company based in Pune, India. There she documents Ordering and CRM products.

For more details, see Mugdha’s website and her LinkedIn profile.

Event Report: IndicThreads Conference on Mobile Application Development

(This is an event update about the IndicThreads Conference on Mobile Application Development that was held in Pune last week. We already published one article related to a couple of the the talks at that conference. This article, a more comprehensive update, was posted by Atul Nene on his blog, and is re-published here with permission.)

The good folks at IndicThreadsHarshad Oak and Sangeeta Oak, organized the IndicMobile conference. The venue and arrangements were very good and the set of speakers top notch. The choice of topics was varied enough to be comprehensive and yet very relevant and amenable for deep enough dives. Overall, a great interaction and learning opportunity that I and my colleagues enjoyed. I also enjoyed live tweeting along with SaurabhPuneLiveMukundVishvesh. Here are my notes from the conference. They are longish, but then it was a two day affair, and I have tried to be brief.

Anand Deshpande, Persistent, Keynote Address
As expected, there was deeply thought out articulation from Anand on the future of the software space. Mobile + cloud is ‘it’, he said. Economic sense is driving everything on the cloud and that, combined with the all pervasive mobile technology will rewrite the software world, as we develop and use it today. He referred to the Harvard Business Review C.K. Pralhad and R. A. Mashelkar paper and pondered that more will be made available for less, for the many – elucidiating Gandhian principles. He made a core point about the data being separated from the App.

I like Anand’s ‘cows and milk’ analogy: focus on milk, why care about tending cows ? Applied to software, focus on developing and using software (App), not building the cloud. But – to take the analogy further – what control one has on chemically adulterated milk ? Its very difficult to even identify that. And, what about reliability and security and so on on the cloud ? Or is there a business case for the ‘organic software experience’ ? We as software product developers will have to figure it all out.

Rohit Nayak, Cross-platform mobile development: choices and limitations
Nice coverage of cross platform mobile development tools. I didnt know there was no garbage collector on the iPhone while there was one on the desktop. Titanium can be used for building cross compiled native apps on various platforms. It also has a good reference application that can be used to test all kinds of interfaces of the device you are building for, as well as sample code ready to be used. MoSync and PhoneGap were also covered. All three were demoed. He warned that tools can be out of step with device styles and new devices. He also suggested that a mobile web app could be the route of choice for maximum platform coverage. I noticed mere mention of MeeGo, but after all, its too new as of this writing. [See MeeGo related previous post on this blog.

Romin Irani, Mobile Web Applications using HTML5
Romin went over the new stuff in HTML5 – semantic elements, forms, audio video embedding, location, and so on. He pointed out that ‘native app like’ experience was possibly via use of local storage, graphic functions and media support. Is it possible that webkit advances render native app development obsolete ? After all, lot of commonly used JavaScript functionality were being included in HTML5. He mentioned that HTML5 would reach ‘recommended’ status by 2022! I’m sure, Holy Photons will guide us there through the paradigm shifts of 2012 et al. 🙂 I believed that an HTML app won’t give a native experience on the device but much to my delight, he demoed HTML5 features in a cool looking app with really nice look and feel. An engaging session with great examples of varied browser support.

Hemanth Sharma, Adobe Flash Platform for Mobile Development
Hemanth covered the various Adobe tools. Interestingly, none of the attendees present had developed for the platform so far. He pointed out that while designing for multiple screens, especially small, knowing the screen resolution was not enough and that the physical dimensions, the orientation and pixels-per-inch (PPI) were crucial. Amongst many other things, he mentioned DeviceCentral as a useful tool to test for devices that support flash. While iOS does not support flash, its cool that Adobe has ActionSript3 cross-compilation for iOS – it generates a native iOS application. He demoed real fast development of an app that gets twitter trending topics. His live demo broke by a whisker – must have kicked himself, mentally – he then showed us previously built code. Still cool. I would have loved stats (performance and so on) comparing native apps with similar functionality. All-in-all, a compelling write-once-run-anywhere-on-air story by this Adobe evangelist. Need to seriously evaluate the platform.

Balagopal K S, Deep dive into Application development for Nokia Technology Platforms
Bala had the difficult task of keeping us awake after lunch. He spoke all about the various platforms one can develop for, for Nokia devices, including the Symbian, Maemo and MeeGo. And of course all about Qt. I wasn’t expecting a Nokia representative to pronounce Qt as ‘quetee’. Everyone knows its ‘cute’, pun not intentionally intended 🙂 He revealed that 83% of users downloaded apps rated 4 and 5 (of 5). Shows how crucial it is, to build a high quality app that includes a great user experience. He advised to design for the user, not the technology, and consider the emotional engagement of the user with your app. And some more tidbits and tools and resources. Given that Qt is the development platform of choice on MeeGo, and a lot of Qt development is done in Python, I wonder why C++ is the language of choice for Qt/Meego. Its like going retro, no?

Pradeep Rao and Dilip Sridhar, BlackBerry Development Platform
BlackBerry just released the Torch and that has the BB6 platform. They have tieups with advertisers and an API that developoers can use in their apps. RIM does 60% revenue share with the app developers. BB SuperApps are native apps that are always on and connected, proactive and notification driven, highly contextualised, designed for efficiency in terms of network usage, battery life and so on. The Theme Studio and Theme Builder lets you make themes easily. The Playbook is coming. This platform is one to watch out for. Lately, BlackBerry devices have started delighting more and more number of users, notwithstanding their funny ads, and they have a powerful development platform plus increasing marketshare to entice developers.

Navin Kabra, Understanding the Touch Interface
Have you noticed how, the moment you start discussing something related to design, that hovers closer to art and makes the audience remember their most delightful and very frustrating moments with technology, everyone just tunes up their attention to the level of communion. Holy Photons ! This is exactly what happened in Navin’s session. He declared: “Touch will take over the world”. He made many excellent points, one being that using a mouse is a learned skill while touch comes naturally and that every app developer irrespective of whether he will develop for the mobile platform or not, will need to care about touch, simply because touch based devices will be the most commonly used devices going forward.

Also, a piece of text that is large enough for you to read is not necessarily large enough to touch – you will know this if you browse the web on your touch phone. Touch can be so easy that our spinal cord should be enough to do processing and give our brain some rest – everyone could do with that, I suppose. He showed a very interesting design of a touch keypad that can be used singlehandedly to browse the web because it has most of the frequently used functions on convenience buttons. He also touched upon – pun intended – the problems with touch, user perception of what is good and bad response time, caution of not overdoing it and perhaps most importantly, that developers wanting to design for touch must use a touch only device for a sufficient period of time !

I really liked the mindmap style (including the navigation) for the presentation. Made a mental note to make one this way at the next oppurtunity. Abhinav (an attendee) made an excellent point about designing in such a way that, with all the touch he can get, the user is still able to efficiently ‘blind type’, assuming he also has a physical on-device keyboard at his disposal – touch and type should not go out of sync. Really interactive and great talk on how to design for touch. And some informative follow-on interactions around stylus vs. fingers, resistive and capacitive touches, and handwriting recognition, the Palm (now Access) Graffiti et. al.

I personally feel there is huge potential for handwriting recognition or at least the Graffiti on the mobile platform – too many potential users who know native, local languages are currently ignored and can be empowered to communicate for low costs, in ways that come naturally to them.

Venkata Ratnam V, Introduction to bada platform & Samsung’s multi-platform strategy
Venkata explained Samsungs dual strategy with Bada (means the ocean, and does not have roots in the Hindi ‘baDaa’ i.e. big, as someone said to me) being for the low end devices while the other mobile OSes that they sell devices with, are for the high end devices. Looks like a large set of attendees were Android lovers and didn’t buy the Bada story but Venkata said ‘Dont grudge us our own mobile OS’. Its difficult to argue with that! He also made a wonderful observation: Customer (end users) expectations are very, very high. They want features on the phone that they may not use, but if the device doesn’t have them, they feel its handicapped.

One can develop for Bada with the combination of C++ and Eclipse, plus a web toolkit. There is also a memory leak checker bundled along with the developer toolset. As others, Samsung has a lot of other pieces of the mobile puzzle being put together in their own way. ‘In-App Purchase’ – is this new ubercool feature being bandied about. IIRC, Apple, Nokia, Samsung have it, others will want to catchup. Venkat also made a great point about user psychology – it’s easier to have an app in the store that is installed by the user and which then stays on the device and tends to be used more. This app can then of course use the web as needed. But its very difficult to have the user point his browser to a website from his device. Point to be taken ! Good session by this evangelist: funny slides, cheerful demeanour, solid defence.

Vikram Pendse V, Microsoft Windows Phone 7 Platform
Vikram Pendse’s overview of Win Phone 7 platform, architecture, development tools, demos and quirks was nice. He did a good job of explaining the Microsoft perspective for WP7. MS wants a consistent hardware strategy across vendors: ARMv7 Cortex/Scorpion or better, and decent combination of GPU, memory, display, capacitive touch, and sensors (GPS, accelerometer, proximity). There will be 3 buttons – Start, Search, Back. For developers, there is .NET compact framework and Silverlight. The OS supports ‘prioritised’ (not concurrent) multitasking of Apps. Libraries include cloud integration for Azure. He demoed apps to showcase various capabilities – graphics, app bar, music, UI navigation. As also a profiler. And pretty pictures of devices: Dell Venu Pro, HTC HD7, HTC Surround, LG Quantum, Samsung Focus. And some game screens.

MS story looks sketchy at best, and we tweeters had fun ! So WP7 won’t copy and paste. Surprised ? You shouldn’t. Remember C&P has moved to the iPhone last year?! There is no migration plan for apps written for WinCE 5/6. You gotta rewrite, in a different language! Romin noted: what Android calls “Intents” …. Microsoft calls “Launchers and Choosers”. Saurabh noted that WP7 is a fancy looking toy, but only for end user, developers will have to wait for more support and perfection. I agree – the UI looks really cool for end usage. Vishwesh: MS was dead after WM6.5 and now, with limited support for everything on WP7, they are … a zombie? The marketplace seems to be the weakest (non-existent yet ?) link. Too many restrictions imposed by the OS. The audience was wondering if all MS wanted to sell was under-USD-30 devices! Good fun 🙂

Rohit Ghatol, Getting Started With Android Application Development
Rohit began well. He gave some background on the platform, showed a list of devices in the market and asked: Do I really have to sell Android? The audience didn’t think so anyway. He also was the first person to do a live device demo in the conference. He covered stuff efficiently – Building Blocks of Android (Activity, Service, Content Provider, Broadcast Receiver, Notification Mgr, Alarm Mgr), the Dalvik VM, the DEXs and the APKs. He was swift through building an App and covered lot of details in short time. Froyo (API v8) brings the much needed enterprise security features to Android, while GingerBread and Honeycomb come later to focus on tablet features.Developer.Android.Com is a very well documented site and a great resource to learn at. We also discussed some could-be-better stuff – one is tablet support, another is that Android market does not provide flexible payment options, sometimes you can make more money by making the app free and include Google ads! Rohit had a nice conversational style, good use cases, employed simple stepping through the development process on a well done deck.

UnConference
I liked this flexible approach. The audience identified pertinent topics for an open discussion and we had scintillating set of discussions on 4 topics. Difficult to capture all learning and speakers, but I hope I’ve got the gist.

Abhinav, Mobile Virtualization: Can we run multiple logical phones on one physical phone ? There are multiple applications. 3 years ago, you ran your PC at 1GHz, today you run your handset at that speed. In terms of device capability, virtualization seems plausible. Clouds will only separate the data from the device. What if you want to use your corporate mobile and your personal mobile on the same physical handset, for convenience ?

Saurabh, OpenGL: Useful for graphics and game development. Optimal use of hardware resources. Common library across platforms, however, support varies across platform. Simple games like ‘Bejeweled’ are being used more over serious games that need a console, simply because they are more available, like while waiting for the doctors appointment.

Vishwesh, Apps for the Indian Market: Firstly, is there an Indian Market? Consumers have to use apps developed for the western market. Where’s the Indian Content ? Pricing is a challenge. Prices are converted from USD to Rupees, needs to be thought differently. Rural market, huge but not addressed. Difficult to monetise. We don’t even SMS in local language yet. Amar Chitra Katha – available on one provider when it needs to be ubiquitious. Cash-On-Delivery is the preferred payment option for Indian Consumers, and this needs to be used for selling Apps. Microfinance has the potential to be in top-ten-app charts, but there aren’t any apps! And then there are too many platforms! Mobile Apps should connect to the physical, real world of the End User. It’s only then that they will be used

Dr.Lavania, Tele-Health: What is the best way to reach 24×7 touch and feel health services to rural areas, given that mobility is the only ubiquitious technology in villages! Apps that degrade from smart to dumb phones are needed. What low cost solution can we have for villages that are ‘over the horizon’ of connectivity?

Anand Hariharan, Performance in Android: Tips and Techniques
“Good Design is the practice of Subtraction” – Mark Anderson from the Good Design blog. Anand suggested we keep performance in mind right when you are desiging the App. Design, Measure, Identify, Improve : thats the mantra he gave us for performance extraction on mobile platforms. Speed, responsiveness, robustness, good behaviour (wrt battery usage and working well with other Apps) – all these done together make an App with good performance. Intensive CPU/battery usage, UI freeze (jankiness), long periods of percieved inactivity, actions that are not cancellable – any of these make an App bad, and it runs the risk of uninstallation from the users device! Apps should be designed to work well over varying net speeds. Recommended practices and style guides of respective platforms are important also for performance aspects. Like on the iPhone, its a good idea to show the image of your App, during startup, while the App loads – this improves user perception on response time. Android has a useful guide called Designing for Performance

Anand had specific advice – dos, donts – for Android apps in particular and Java apps in general. Do lookup his presentation on the conference site, it has a lot of depth and coverage – a handy reference for all developers, I’d say. Fluent talk, and I thought, Holy Photons – worth emulating!

Romin Irani, Power Your Mobile Applications On The Cloud
Romin has written a book on Google App Engine and you can download it for free. GAE is feature rich and free, has enough resources for trying out apps. He did a quick run through basics, and did a live demo – write, test, deploy! Simple, klaar, not cloudy at all. 🙂 You can code in Python or Java. Cloud in general and GAE in particular has great potential for mobile space. You could have the same cloud app serve multiple phone apps or even multiple kinds of clients (thick, thin, remote, local, and so on …). Romin mentioned a handy resource for information on about 15,000+ devices ! Checkout WURFL.

All presentations uploaded to the conference page as the talks got over. Pleasant green behaviour on part of organizers – free saplings were on offer for those who care. See the Press Report in DNA. An intense and thoroughly enjoyable conference with a lot of take-aways for me. Hope you have enjoyed reading about it.

About the Author – Atul Nene

Atul has a Masters in Computer Science from the University of Pune. His areas of interest are Technology in general and Software in particular. He studies Indian classical music, is a nature lover. He builds embedded products and Mobile Applications for the iPhone, Android, Symbian and BlackBerry platforms. Atul was 2008 Employee-of-the-Year at his workplace, and recipient of “Project Management Excellence Award” (for his team) by PMI, Pune Chapter.

Software Careers in India – The Next Decade

(This is an article by guest author Yogesh Pathak. Yogesh is founder of Path Knowledge, a consulting, advisory, and research firm based in Pune.)

The last 2 decades have been wonderful for the software industry in India, with a terrific contribution to India’s economy and aspirations of it’s middle class. This article reflects (in short) on these 2 decades, provides a perspective on how the next decade could be, and implications for careers.

1990-2000

This was the first real ‘growth’ decade for India’s software industry, though the industry’s pioneers (e.g. TCS) had been around for a while. It was a golden decade for careers in the sense that demand for skilled manpower consistently exceeded supply, salaries were always in the top quartile (relative to other professional careers), and companies experienced tremendous growth. The growth of the PC platform, the client-server revolution, and early stages of the Internet revolution, with bubbles like ERP and Y2K to boot, all contributed to IT hypergrowth globally, and since India was a part of it, we benefited hugely from this. Virtually all of India’s global contribution happened in software services, not products.

2000-2010

This was also a growth decade, though more so for the larger companies. In some ways, the big 3 offshore companies (Infy, Wipro, TCS) perfected the art of scale-up while leaving many of their SME competitors behind (which anyway grew handsomely). As India experienced more global integration, so did it’s software industry. Body-shopping gave way to true offshoring. Some decent product companies emerged. Indian IT’s technology time-lag with US vanished. On the negative side, the impact of two global downturns (2000-02 and 2008-09) was felt directly in India’s software circles. Careers in India’s software industry had to be charted a little more carefully through this decade (unlike being handed on a platter). This was because higher supply of skilled manpower created better resource availability, and also because companies focused on fresh graduates to keep their costs down. A lot more BE/MCA/BCS/MCS or other such programs in CS/IT were launched providing more quantity of graduates, but not necessarily better quality. Companies had to actually increase their investments in training. The product startup phenomenon emerged in early part of the decade at various IT cities in India, and became much more visible in the later part, thanks to the web 2.0 bandwagon and a general growth in entrepreneurship. Whether this phenomena generates true economic output remains to be seen. Overall, this was still a decade of happy, secular growth for companies, as well as employees.

The next decade (2010-20):

The next decade could be different and interesting not the least because of following reasons. These are not claimed to be authoritative predictions but more like indicative trends and observations.

  • The IT platforms we are familiar with, are undergoing churn at a higher velocity. It’s cloud and virtualization at the back-end and mobile, tablets, cameras, sensors, and other futuristic gizmos at the front end. This impacts IT business models, their software needs, their development platforms, and so on.
  • The cost of software development continues to go down. This is due to falling prices of hardware, the efficiencies due to virtualization, the growth of open source, more startups (read: cheaper products), and a generally high supply of IT graduates, especially in India. Due to this, globally, ideation and product development itself stand to be commoditized, putting a stretch on how companies will differentiate themselves. Many may give away their products for free while not fully figuring out alternative sources of revenues like ads, services, revenue shares, and so on. This has implications for the entire ecosystem. e.g. In case of valuing enterprise software product companies, real monetizable customer base (and future revenue streams from them) will matter far more than the IP/uniqueness of the product.
  • For all sorts of products, IT and non-IT, product development cycles will shrink. This puts pressure on development teams and demands high amounts of efficiency, innovation, and automation. This creates opportunities for tools, testing, and solutions companies.
  • Some opportunities for new products include: reduction in energy consumption across all forms of IT, security, data organization and analysis, and personalized healthcare. e.g. As IT becomes pervasive, finding its total energy consumption footprint will become an increasingly complex problem.
  • The value associated with post-graduate degrees in Computer Science/related fields continues to decline, because you can always pick up “hot” skills in the industry if you are motivated and thus increase your market value. Formal education will matter less and less. The phenomena of bright programmer kids dropping out of school to do jobs/startups will happen in India on a wider scale.
  • However, for those interested in R&D, post-graduate education will continue to serve as a great formal introduction to the method of research and the span of their research area. Knowing how to do R&D may not be enough — how to commercialize it will matter equally.
  • Large enterprises, the mainstay customers for IT services companies, will become more demanding. They will want IT development to be more predictable (like manufacturing) in quality and costs. This will need more process/tools innovation among their vendors and also increase automation. Growth in automation and new tools may eliminate many IT plumbing, BPO, and KPO project opportunities, putting pressure on services revenues, though this will tend to happen gradually. Large IT/BPO services firms will need to cut a lot of fat among their billable and non-billable resources, especially if they can develop a smart cadre of leaders to run their projects and service lines. Human-based BPO in particular will soon become a commercially unattractive business sector.
  • ‘Early and rapid skills acquisition’ will become important for students and fresh graduates if they want to survive in this industry. Downturns will be more pronounced and more people will lose jobs when that happens. So graduates will need to plan careers carefully and figure out the entire bouquet of skills (not just tech skills) for them to grow in a company. At the same time, due to more R&D, product development, and entrepreneurship happening in India, opportunities for graduates will increase. As always, entire new sectors will also emerge and they will need IT (Think of uploading photos to Facebook as a space tourist 🙂

About the Author – Yogesh Pathak

Yogesh Pathak is the founder of Path Knowledge, a consulting, advisory, and research firm based in Pune, and works in providing the following services to clients:

  • Venture capital fundraising advisory and strategic consulting to startup companies
  • Knowledge services to global clients: Business analysis, technology and market research, financial analysis, etc
  • Management consulting services to clients in India and globally

For more details, see the Path Knowledge website.

Rebooting PuneTech

Regular readers would have noticed that PuneTech has not been updated in a while. We're are back now.

Allow me a few minutes today to talk at length about the past and future of PuneTech. The executive summary is that PuneTech is coming back with some changes, but hopefully nothing that will change the overall experience significantly. Feel free to skip the the rest of this article – it talks mainly about why the change, and what the changes are going to be.

Basically I (i.e. Navin) had taken an unscheduled break from PuneTech for the last month or so while I was trying to figure out my priorities. In the last 6 months or so, I realized that I had become rather busy with too many different activities and realized that I wasn't doing a good job of many of them, I was always behind on my work, and had started "dropping packets." I realized that this situation could not continue for too long and something needed to be done.

Specifically, as regards PuneTech, this means that I cannot spend as much time on PuneTech as I used to spend earlier. Amit and I have been doing PuneTech for more than 2-1/2 years now. PuneTech has grown in a lot of ways, reaches lots of people, and we've done lots of experiments, some of which failed, but some have succeeded spectacularly. We're proud of what we have achieved, and we will definitely keep it going. However, one of the things that we haven't managed to figure out how to do, is to get other people writing articles regularly for PuneTech. Yes, we've had the occasional guest authors, we've also re-posted from blogs of other Punekars, but that remains the exception. In general, it takes too much of an effort to get someone else to write an article. For me personally, this is one of the biggest problems, because it means that I end up writing most of the articles that appear on PuneTech, and this used to take up a lot of my time. What made me doubly sad was that there are so many interesting stories about companies and people doing tech work in Pune that need to be told – but haven't been told because I don't have the time to write them down. Some of them have been sitting in my head for more than an year, but I haven't managed to get it out because of lack of time.

Regular readers of PuneTech will be aware that PuneTech is a completely non-commercial activity. We don't make any money in any form from PuneTech and we don't intend to. Which meas that we have full-time day jobs and we can only work on PuneTech in our free time – because we love doing so. A corollary of the non-commercial-ness is that we don't spend too much money on PuneTech; that means no hired writers, no hired low-level admin folks, etc. I run the website, Amit runs the PuneTech linked-in group, and we do a lot of meeting people, connecting people, encouraging and helping other activities in the background. All of this happens as and when we get time. And sometimes it doesn't happen at all. Such is life.

So, what's the fix?

I think I can significantly reduce the time I spend on a PuneTech article by essentially making you, the readers, do more work. This is what I'm planning to do:

  • From now on, articles are likely to be much more raw, much less polished. I'll be spending less time re-writing articles, finding spelling mistakes, and structuring the overall flow of the article. I'll pretty much spit out the information I have, or the thoughts I've gathered. So the overall structure of the article is likely to be a little less coherent. But I'm hoping that even in "ex-tempore" mode, I am a good enough writer that the articles will still be good enough for most of the readers. For example, this article has been written in this ad hoc style.
  • Much fewer links and images in articles. In my opinion, inserting hyperlinks to relevant information in articles does add significant value, but takes up a lot of time. So, for now on, I'm not putting links except in a few, necessary cases. For the rest, you'll need to start using google yourself. Sorry. And no more images, in most cases.
  • More quick-n-dirty, one paragraph articles. Often I try to wait until I've gathered enough information about a topic to create a good full-length article. This takes up time, mental bandwidth, and many smaller pieces of information get lost because they never amounted to more than a paragraph. For a while, I'm going to change my tactics and start posting shorter pieces, which have less information content, but are still useful. This will result in an increase in the number of PuneTech posts. I'm hoping to be able to do that without significantly damaging the signal-to-noise ratio of PuneTech. So, the current plan is to try this for a few months and then solicit feedback from the readers as to whether it is an overall positive or a negative. If you get PuneTech via email, then you'll continue to get one email per day, but each email might contain multiple articles – so keep that in mind and scroll down till the bottom of the email before marking it as read. Those following via RSS will see multiple smaller articles showing up during the day (hopefully). If you're not subscribed via email/rss, what's wrong with you? Please subscribe!!
  • The PuneTech wiki is officially deprecated. One of my dreams when I started PuneTech was to create a wiki for tech information about Pune which would be updated by people from the community. However, I never was able to crack that – and the wiki never really took off. Sure, there have been some good pages that we managed to create: like the Pune User Groups and Organizations page, the Top-ranked Websites in Pune page, etc. But those are few and far between. So, the PuneTech wiki, which has anyway crawled along anaemically for a while is now officially put in coma. The wiki will continue to exist, and the existing pages will remain, but we're no longer putting any effort into it. Oh well. One of the experiments which failed.
  • The PuneTech calendar is, we believe, one of the experiments that worked really well, and we'll continue to keep updating it. But it is work, and we would like to ask our readers to help us out here. It would really reduce our workload if you could add events to the upcoming PuneTech page directly. The instructions for adding an event are given on that page, and if you add the event to the PuneTech group (as given in the instructions), it will automatically show up in the PuneTech calendar. (Yes, we know that the calendar has not really been updated in a while, but we'll hopefully fix that in a few days…)

That's all for now. Let the experiment begin. If you have any suggestions, or other feedback, please let us know in the comments below.

Should businesses in India innovate, imitate of adapt technology?

Entrepreneurs, investors, government agencies, domestic companies & MNC executives in India need to think beyond “hi-tech” ventures and creation of IP and should focus instead of adapting existing technologies for Indian needs, points out Kaushik Gala in a new essay he published on his website. Kaushik is a Business Development Manager at Pune-based startup incubator Venture Center, so he does spend a lot of time talking to and thinking about all the players of our technology and startup ecosystem mentioned in the first sentence of this paragraph.

Kaushik Gala, Business Development Manager
Kaushik Gala, Business Development Manager at Venture Center occasionally writes essays on issues related to startups and small businesses in India. Click on the photo to see more of his essays, and his website

The whole article is definitely worth reading, and we give here a few excerpts from the article to whet your appetite:

So, will hi-tech entrepreneurs & startups drive economic growth & wealth creation in India? Consider this assertion by economist John Kay:

Advancing technology is the principal determinant of economic growth for the twenty or so rich countries of the world. However most of the world is well inside that technological frontier. For these countries, prospects of economic growth depend little on technology and principally on advances in their economic, political and social infrastructure.

Over the two centuries of rapid economic growth in rich states, the pattern has been for one or two countries to join the group of advanced states every decade or two. In the last fifty years or so these new members of the rich list include Italy, Finland and Ireland within Europe and the first Asian economies (Japan, Hong Kong, Singapore) to operate at this technological frontier.

Later, he points out that there are three kinds of tech startups in India: 1) Technology innovators (who are creating new IP at the cutting edge of science & technology), 2) Technology imitators (who are reverse engineering technology from elsewhere and implementing a copy here), and 3) Technology adapters (who take a foreign technology, and then adapt it to Indian conditions. This usually involves significant changes, and there’s usually a key piece of (non-technology) innovation required to make it successful locally).

He gives this example of technology adaption:

My favorite example is Sarvajal. They sell clean drinking water – but with many twists:

  • They’ve developed a (patent pending!) device called Soochak which combines existing water purification technology with cloud computing.
  • Their innovative ‘distributed’ business model uses pre-payment, franchising, branding, etc. to make it profitable to sell relatively affordable water to remote rural areas.
  • Success for Sarvajal is as much – or more – dependent on understanding the psychology of rural customers and village entrepreneurs (franchisees) as it is on the technology.

Kaushik ends by saying that while all three avatars of technology enterprises are required for wealth creation in India, being an adopter/adapter in India offers far more opportunities to excel.

Read the full article. Highly recommended.

Enhanced by Zemanta

The Rise and Fall of Google Wave

(In this guest post, Markus Hegi, partially-Pune-based CEO of partially-Pune-based company Colayer, laments the death of Google Wave, and points out that the concept behind the Wave is right. Google should have re-launched a new, improved Wave, he feels, because the world does need a paradigm shift in business communications. This article is a shortened & modified version of a post published on ex.colayer.com)

Google Wave
Google's revolutionary new communication and collaboration platform Wave is dead. Did it deserve to die? Markus Hegi thinks not. He believes that sooner or later, the world needs a Wave like system. Image via Wikipedia

3 days ago, Google announced that it would stop the development of Wave and would stop supporting it by the end of the year. Even though the buzz about Wave and the (visible) progress of Wave was low for the last few months, the shut down is surprising: I would have expected a re-launch, a change of the architecture, integration with gmail – anything, but not a complete halt – The concept behind Wave is right and ahead of its time – and Google could have been a leading player in this space!

When I looked at Wave for the first time right after the announcement one year ago, it struck me, how similar the concepts were to what we were working for years with Colayer. I started Colayer in 99 – suffering myself the mess of email communication. As a travelling business consultant I was convinced, that this can not be the way we will communicate in future! This is fundamentally wrong! – I mean: the basic idea of SENDING information on the web is wrong! (You GO TO and ARE ON Facebook, twitter, yahoo – you don’t ‘download’ it.) Google Wave addresses exactly these same issues.

We were excited to see, what approach Google would take to implement the new paradigm of online communication – But also realized quickly, that this product in this stage would not be usable for 3 main reasons:

  1. The Technical Architecture was too heavy and complex
  2. The Operability – The way to operate the tool was limiting
  3. The Notification – the way the users would be notified about updates in their many waves.

If you would use this product in a real world scenario with heavy communication, it would not work! – But Wave was at its very start. We thought Google would quickly realize the problems and implement solutions for it – and with their market power, Google would be able to initiate the paradigm shift in online communication.

But after the Wave launch, it seemed that innovation stopped. Yes, there was development, improvements & many extensions were released. But the above 3 problems were not addressed. They couldn’t be solved through improvements or extensions, but needed fundamental shifts in the product design – which never happened. And as many users seemed to loose patience too, Google pulled the plug for poor user adoption after only one year.

What went wrong? – Gartner has a valid point: “Startup innovation” has simply no place in a large enterprise software company. Well, this is not exactly what Gartner writes, but this is essentially the meaning: Either you are in the business of breaking & paradigm shifting innovation (Startups), or you are serving a large base of enterprise customers – Both together is almost impossible, because there is no breaking innovation, without messing up with your customers. After Wave was launched, even though it was still tagged as ‘beta’, the team could not just say to its 100’000 users: “you know, we just realized that the architecture has a fundamental problem – lets start it all over again …!” – which we, in a small company did several times …

Maybe another problem of Wave was, that Google choose the wrong market: Wave was intended for the broad consumer market, as well as for enterprises – But the paradigm shift happens elsewhere first: If you observe today’s kids and young nerds, you can imagine, how the next generation of businesses will use online communication: Email for them is ‘lame’ and just used for communication with outsiders, older people and the ‘conservative’ business world. Why would you need email anyway in a world of Facebook & Foursquare?

After 10 years, we are still in the beginning of the massive paradigm shift of online communication. I am eager to see, who will join the journey next!

About Google Wave

Wave is a web application for real-time communication and collaboration.

(See one of the most popular videos explaining the basic concepts of Wave)

Announced in May 2009, Wave attracted a lot of attention for a couple of months. The project was stopped by Google after just a little more than one year for poor user adoption.

About the author – Markus Hegi

Markus Hegi founded Metalayer (now renamed to Colayer) 10 years ago. The Colayer platform is a software technology to create collaborative web sites.

Colayer is a Swiss-Indian company with headquarters in Zurich, Switzerland and development center in Pune, India. Markus ‘commutes’ since 10 years between Zurich and Pune and spends almost half of his time here in Pune. See his linked-in profile, or follow him on twitter.

About Colayer vs Google Wave:

See an overview of articles about Colayer vs Google Wave on colayer.com.

Enhanced by Zemanta

How to build a high quality engineering team – Excerpt from Shirish Deodhar’s new book

(Recently, Shirish Deodhar, a well-known figure in the Pune technology and startup community, published a book, From Entreprenurs to Leaders, which makes the point that while the last 10 years saw the rise of several billion dollar software services companies in India, the next 10 years will see the rise of billion dollar software product companies from India. The book explores the dynamics, challenges, and opportunities at all the different stages that these companies must pass through.

The book uses a number of India software companies as case studies, many of them from Pune. The Pune case studies included are: ProFound Technologies (now defunct), Career Vidya Labs, Ixsight, Kale Consultants, CompuLink, Persistent Systems.

Book cover for From Entrepreneurs to Leaders by Shirish Deodhar
This book by, Shirish Deodhar, Pune-serial-entrepreneur, aims to provide guidance to the next generation of founders who will build India's software product companies.

We have reproduced here (with permission from the publisher, Tata McGraw Hill) an excerpt from the book. Here Shirish talks about how to build up a high quality engineering team in early stage companies – basically, those companies that have gone past the startup stage, and now have revenue between 2 and 20 crores. At this time, the company has to move past the founders and few early engineers to a team with the right roles and responsibilities defined. This excerpt gives advice on how to do this specifically tailored for the Indian context.)

High Quality Engineering Team

Do you want a collection of brilliant minds or a brilliant collection of minds?
R. Meredith Belbin

Good ideas become great products with the right engineering team. It starts with the technical leadership. Initially, this might have one or more founders. A larger company may have a Director or VP of Engineering responsible for product development activities.

Smart engineers being what they are, they only look up to someone who is like a ‘God’ for them. This means the engineering head has to be knowledgeable about the product and technologies, a highly capable software architect, innovative, adept at resolving low level technical problems and good at motivating people. In a bigger company, the person will be less hands-on and more experienced at managing people (engineers, clients, company management) and logistics of product development.

Like an orchestra that requires a mix of instruments, the team should have the right combination of engineers. In the beginning, the ideal combination is a product architect and designer and a team of mid-level and junior engineers with required skills, high aptitude and right attitude. The composition will change as the company evolves. Start-ups first need innovative, experienced and independent developers. Then, one adds people who are good at getting detailed work done with some supervision. Later, junior developers and those with different skills such as testers and support engineers are required.

Teams need a few smart ‘techies’ who are great at conceptualizing new ideas, implementing them the first time, and resolving complex problems that may come up. But you should not have too many of them as they get bored easily. The rest should have solid temperaments, and be good at systematically executing assigned tasks to high quality. The high performers of both kinds, innovative or solid, have to be nurtured. This should not be at the expense of others, since ultimately it is teams that win games.

The test of a great team is a sense of common purpose combined with healthy respect for diversity, and the ultimate reward is a winning product.

Growing the Engineering Team at VERITAS India

I faced the challenge of building a strong engineering organization after the acquisition of my first company (Frontier Software). In February 1999, I became responsible for VERITAS Software’s India subsidiary. VERITAS in US had grown rapidly to $200 million, 2000 employees and many products. However, the India team consisted of 40 engineers in 2-3 teams, which was relatively insignificant in overall numbers. I was assigned the task of transforming the Pune subsidiary into an integral part of the global organization within three years.

VERITAS was in the technically challenging niche space of storage software. The India subsidiary had been looking for senior engineers with domain expertise in storage and strong technical skills in Unix systems. These skills were hard to find, and hence the team had grown slowly. The task was relatively easier for other products such as data protection, which needed expertise in Windows and Unix middleware, UI development, Java and C++. All teams wanted test/QA and automation engineers. Finally, experienced engineering managers were critical for the new product teams.

In India, it was very difficult to find experienced engineers with a product background and who were still technically strong. The Indian software services industry was growing at phenomenal rate, and computer science graduates with experience were in short supply. Companies encouraged technical people to become project managers after 3-5 years of experience. This in turn led to a belief that the career growth required transitioning from technology to management. This was fine for services, but exactly the opposite of what product companies needed.

In this scenario, we adopted a pyramid-style staffing approach. To create the foundation, we went to the IITs, IISc, BITS Pilani and top 5 engineering colleges in Pune. We pulled out all stops to ensure that we were among the first 3 companies to be invited for campus interviews, so that we could hire the best graduates. VERITAS was not well known in India, so we made presentations highlighting the remarkable growth and technical achievements of the company. Each campus was visited by ex-students and few senior managers. We offered attractive salaries and stock options. At the IITs we focused on M-Tech (Computer Science) students. They were temperamentally more mature, some had previous work experience and, unlike the B-Techs, did not aspire to go abroad.

Our tests were difficult and interviews were rigorous. This created a ‘techie’ image for the company, and the best candidates wanted to get in. We recruited over 75 engineers each year, for 3 years in a row (2000-02). The middle layer, which required senior engineers, took the longest time. Initially, it was filled with lateral promotions from existing teams, and selective outside recruitment. VERITAS growing reputation as the fastest growing global technology enterprise, and our relatively high compensation, helped us cherry-pick some good talent from all over India. Over time, many of the outstanding M-Tech campus hires grew into the senior and lead engineer roles.

The top of the pyramid required engineering managers. The criteria were 12+ years of experience at product companies, strong technical skills, high emotional maturity, and good people management capabilities. We did not insist on storage or systems expertise.

This strategy of relying heavily on campus hires had significant risks, and was questioned by many. To make it work, we promoted the concept of ‘each one, mentor one’. Experienced engineers guided one or two freshers besides managing their own work. It demanded extra effort from the seniors, but they delivered. By late 2001, most of the campus recruits had become star contributors, delivering value far in excess of what we had anticipated. Many had also raised their eyebrows, when we decided to hire managers with no storage or systems background. But, they too were excelling in managing delivery, communication with US, and maintaining high performance and motivation within their teams.

In four years, the India subsidiary had become strategic to the company, with nearly 500 employees in 16 product teams, representing 22% of worldwide engineering. At a company meeting, the CEO commented on VERITAS Pune as an outstanding engineering location, which created a competitive advantage for the company. On campuses and in the Pune IT community, we were widely considered to be the preferred employer.

Smart Strategies at Small Companies

You don’t have to be a well-known or a high paying company, to get the best talent. The pyramid approach is also valid for small product companies. You need great product architects and people managers at the top, few competent technical leads in the middle, and a talented pool of engineer with 0-3 years of experience. The ratio between levels should be around 1:6.

Bulk of the hiring in India is still for services companies. But the product culture is beginning to seep into the psyche of software professionals. The most coveted jobs are at subsidiaries of global product organizations. The younger generation is also willing to join small Indian product ventures because they know that the work there is often more exciting than at large services firms. A career food chain exists, with engineers preferring well-known companies. A product venture will find it easy to hire engineers from those lower in the food chain – smaller companies (product or services). Hiring from large services firms is also feasible with more and more professionals aspiring to do something more creative than an endless series of IT projects.

Indian product companies can also bring in capable senior talent from global product subsidiaries, where they often face a glass ceiling effect. At captives, as 100% subsidiaries are called, most high level product roadmap and architecture decisions are taken at headquarters. The teams in India are responsible for implementation. This gap is partly because India teams lack access to, and the knowledge of, customer requirements. Hence the top talent there is itching for greater empowerment and opportunity to shape a complete product. Salaries at multinational subsidiaries are quite high. But some seniors may be willing to take pay cuts and join for a reasonable combination of salary and equity.

Like with customers, you must market your company to prospective hires. Komli1 has done a good job at this. The founders themselves are very accomplished, with degrees from Harvard University and IIT. Later they were joined by the former CFO of eBay India. As part of the hiring effort and branding, Komli organized an Algorithm writing contest (‘AlgoGod’). This created good publicity, especially in the IITs, from where they hired eight engineers in their first year (2007). Their employee policies are generous, including unlimited vacation (they trust their employees to know when they need a break), health coverage, and stock options.

Reprinted by permission of Tata McGraw Hill Education Private Limited. Excerpted from: ‘9780070680708: DEODHAR: FROM ENTERPRENUERS TO LEADERS: Building Billion Dollar Software product Companies from India, Rs. 350.00’. Copyright © 2010 by Tata McGraw Hill Education Private Limited, All Rights Reserved.
footnote1: Since the writing of this book, the division of Komli that Shirish referred to in the excerpt above has been spun off as Pubmatic. -PuneTech editors.)

About the Author – Shirish Deodhar

Shirish has over 25 years of software industry experience in US and India, and has incubated and led several IT companies through rapid business growth.

His two previous companies merged with global majors – In-Reality Software with Symphony Services Inc. and Frontier Software with VERITAS Software (now Symantec Corp.). Subsequently, as head of their Pune subsidiaries, he was instrumental in scaling revenues and growing the team size to over 500 employees in 3.5 years each.

Shirish did his B-Tech (EE) from IIT Mumbai, followed by a Master’s degree from USA. He has a US patent, several excellence awards, ten technical papers, and a book titled ‘From Entrepreneurs to Leaders’ published by McGraw-Hill.

Do a do-it-yourself Masters degree in CS with Parag Shah

(This article is a guest post by Parag Shah and first appeared on his blog. It is reproduced here with permission. Parag is a senior software engineer, who has his own one-person software company. In addition, he is also very interested in utilizing new media technologies such as blogs, podcasts, and screencasts to create a personalized, self paced, learning environment. He is in the process of creating mentoring services that use new media technologies, for helping software developers improve their programming skills. In this article he talks about how you can get for free the same education that a student of a Masters degree in the US could get. He is planning on going through it himself, and hopes you will join him.)

Click on this icon to see all PuneTech articles related to tech education in Pune
Click on this icon to see all PuneTech articles related to tech education in Pune

Since my formal education, a lot of advances have taken place in software development. I have been able to keep up with a few with regular reading and practice. But a lot of this learning has been a bit random, and as a result a bit dissipated as well. I feel like I want to engage in continuous learning, in a more organized manner.

Over the years there are several core concepts which I have forgotten because I have not been able to use them in my regular work. I feel like relearning those concepts.

I think the volume and content of both these can constitute a masters course in Computer Science. But I do not want to go back to school. Not because there is anything wrong with school – I had a great time in grad school. But here’s why…

I don’t want to go back to school because I want to define the courses I want to learn, and not pick up from what’s offered.

I don’t want to go back to school because I want to be able to learn at my own pace, which at times may be slower than 1 course per semester.

I don’t want to go back to school because I do not want to spend a fortune learning stuff which I can learn myself using free resources.

I don’t want to go back to school because I would rather create online/social credentials than get a school certificate.

I don’t want to go back to school because I want to demonstrate that a person can not only get knowledge but also credentials if they engage in disciplined self-study and leave learning trails on the Internet.

So this time I am doing a DIY (Do-It-Yourself) masters in Computer Science. so I can refresh things I have forgotten and learn new technologies and concepts which have gained importance in recent times, in an organized way.

I did a Masters in Computer Science more than a decade back. Since then, Internet, communication technologies, and social networking, have made it possible for someone to do a similar program all by themselves, using open courseware, and social learning.

By doing this program, I am not only planning to enhance my own knowledge, but am also hoping to show how one can get a Master’s education worth of knowledge, and credentials, by self learning, and without spending a fortune. Here’s a very brief statement of purpose.

My DIY Learning Process:

I have created a learning plan which outlines at a high level the topics I want to learn. I will study one or two topics at a time, and at a manageable pace, given other work commitments.

Once the topics to learn have been identified, I will identify learning resources, forums, and mentors for that topic.

A very basic study plan is to study the material, and make notes of my understanding, as well as questions and thoughts, I get in my mind as I am learning. I will make these notes available on a special blog. This blog will serve as a personal knowledge base (I can refer to it in the future), as well as a learning trail (for proof of study and understanding).

All the homework I do while I am taking a course will be made available in the public domain. I will either post it on my blog, or if the homework involves coding, on a public open source repository such as Github. I will also do one or more projects to practice the entire body of knowledge as a whole and publish that too in the public domain.

I will also create presentations of what I learn, and make them available in the public domain.

I will connect with mentors who are experts in the topic I am learning. Depending on their time availability I will request them to help me identify gaps in my understanding, and validate my knowledge.

When I have doubts, I will ask questions on Internet forums. If my questions are not answered satisfactorily on the forums, I will refer them to my mentors.

Please visit my learning plan for further details.

Establishing Credentials:

A person can have several reasons for learning. One is for the knowledge (either for the joy of knowing something, or for more practical application of the knowledge), and another for establishing credentials, so someone else may entrust us with work which requires such knowledge. A self learned person may have the knowledge, but may lack credentials to prove it. It is also possible for a person studying in a silo to think he has grokked what he just learned, when in reality he may not have understood the matter properly. To be able to provide proof of knowledge as well as to validate my learning with other practitioners, I plan to engage in what can be loosely classified as social learning.

I will do the following to document my learning and to engage with the community of practitioners, in the hope of validating my knowledge and establishing credentials for what I learn:

  • Answer questions on forums
  • Blog my study notes, and clearly articulate my takeaway from all the lectures I view, or text I read
  • Create presentations and post them on YOUTube, or other video sharing services
  • Publish homework on open source code repositories such as GitHub, etc
  • Request my mentors to quiz me to help me find gaps in my understanding of a topic. I will publish the quiz as audio/video and request the mentor to post their feedback in the public domain
  • Take quizzes and tests wherever possible and economical

So I am leaving these learning crumbs on various places on the Internet, but I need something to bring everything together. Something which can serve as the focal point, or a lens into all my learning. I created a wiki site to serve as the focal point.

Have you been meaning to learn something yourself? Perhaps you can do your own DIY course in whatever interests you. Here is a lens into my DIY experiment.

About the Author – Parag Shah

Parag has an M.S. in Computer Science from the University of North Carolina at Charlotte, and over 12 years of industry experience developing software and several years experience training developers in Java, and software design principles. Parag’s current obsession is to show that it is possible to do a DIY masters in Computer Science using open courseware and social learning principles. Check out his experiment at http://opencs.wikidot.com.