Archive

Archive for the ‘Life at Aditi’ Category

Risks of unplanned Work – Pros and Cons

May 7th, 2010

How can an unplanned work have pros?
Well, in one of my recent project, I faced a situation where I had to decide if I can accommodate an unplanned work. This unplanned work got stimulated due to technical reasons as the senior tech member of the team pointed out to a code base that needed refactoring. To find out more, read through this blog and do put forth your comments and thoughts…

Have you managed a long running product development project in a co-engineering mode where the team is highly experienced enough to understand what is good for product? Yes, you read it right ‘product’ and not project. Very recently, while I was handling such a project, we had a release that required code refactoring as one of the unplanned task. I had a small debate with this high caliber tech person. The whole explanation ended with one strong sentence. He said, ‘You can never convince the business owners to have a feature with 50-75 story points for code refactoring work.’ For a moment, I thought, ‘this is true’ and checked with him multiple times if this had any impact on the schedule. This highly dedicated tech person was not going to budge, he openly challenged that before the beginning of QA phase, he would complete the refactoring work.

From my experience, I know: “The business owner wants new features to be developed and they only look for value for money. The time to market new features is so important that, they would never agree for such change request.” However, I decided to discuss this with my SPOC (single point of contact). I knew my SPOC to be a highly technical person who understood this product/domain very well. We did not succeed in convincing for this refactoring work, but all my SPOC said was if you think there will be no impact on schedule, you are the PM and you decide ‘what is best for the project’. I knew he was also under pressure to meet the timelines. After hearing this response, we came back and thought to drop this work. But this techie was adamant and said come what may, he will work on this. This left us with no choice but to accommodate code refactoring work. We decided to leave everything on this techie who would ensure to take things to closure.

Are you thinking Agile?
With technology enhancement and experience, people become more knowledgeable and do hit a code section that requires code refactoring? Should we take up such unplanned task? As a general project management philosophy, I would not have encouraged any unplanned work. But in this case I felt why not? These are small value-add that will take the project/account to new heights. Shouldn’t we think product, why should we always limit ourselves with frozen requirement, why can’t we be agile? Will this gold plating bring success; all such queries were bothering me?

Team Dynamics and Assumptions…
The team size of 30 members including devs and QA at the ratio of 2:1 was working on this project. The functional manager and 2 other devs were working from Onsite(US). The spec was frozen and we had pretty aggressive estimates. On top of this, like any other project, there were unknowns, assumptions, impediments and risks to be looked into. So we started working on new feature development and all our prime focus was on this. Meanwhile this techie was refactoring the code base. The number of new features that were being developed was good enough for QA to focus on this testing. There were few assumptions from the code refactoring work that if we test all the new features thoroughly, we would have covered all areas of the product.

Go, No-go decision?
The dooms day arrived and it was time to go live. We had shared the list of known issues and discussed each one of these before we decided to go-live. Production Servers were down over the week-end and we had smooth deployment. It was time for the business owners to sign-off when the biggest shocker mail was sitting in our inbox, next morning. There were few changes in the core product which is bread and butter for them.

A look into Production bugs…
These changes/bugs may sound simple and one may tag them as P2/P3 issues, but this would have had major impact on all their customers. They were:

  1. The order of information published in the core product got changed
  2. The number of results were different (Later we found the previous version had bugs and this was actually fixed now)
  3. There were missing links which use to direct the user to the web version
  4. Location missed displaying the city name. It just displayed State names.

The entire product team and the business owners were pissed off and we got our morning dose from both Client and management. And the techie working on this claimed this as actual requirement and pointed towards some unassigned product backlog items and discussions. These were never prioritized and were lying in backburner.

What went wrong?

  1. Lack of Test Strategy: Assumption that testing all the new features will ensure stability of their core product went wrong.
  2. Communication Failure:
    1. During code refactoring work, the changes in functionality was taken up. This was not discussed with PGM (Program/Functional Manager), PM or the test team.
    2. Leaving all aspect of code refactoring changes on single person and not extracting information was another failure.
  3. Code walk through of Architects or senior techies in the team was missed

Root cause analysis…
You must be thinking this blogger has gone nuts. Even after knowing such high client impacting bugs were introduced; how can there be a pro to it? If you notice the root cause for this problem, it is not pointing to delay rather it is pointing towards unplanned testing strategy, communication failure. Knowing that this code base is related to their main product; we should have strategized dedicated testing. If these bugs were caught 2 weeks prior to go-live date; we would have fixed this. A code walk-through of technical architect, peer code review would have helped.

What was missed in the process was communication with key stakeholders such Test Manager, Functional Manager, Project Manager. This led to gaps and late finding of unforeseen bugs during the Go-live phase. One week later a patch was released to address these issues. An excellent product with all new features integrated went live. All the hard work and effort to build the new features went in drain and I felt sad for the team that they did not get the appreciation for the amount of features they had built in such a short span. This was a big learning. Yes, what could have been a major successful release became a disaster.

Dos and Don’ts…

  1. Do not believe in assumptions – isn’t that simple?
  2. Track your assumptions and have one round of check to ensure these assumptions are right.
  3. Note down your additional communication channels and have a plan to communicate.
  4. Knowing client’s business and their core product, the team including this techie should have touched base regularly.
  5. Irrespective of who is coding, have walk-through of code. Peer review would help.

Simple, isn’t it? What a hard way to learn this!

How to get a buy-in for such unplanned work from business owners?
Ideal situation in such scenario is to build a strong case study around this and show dollar value or revenue loss due to bug fixes, patchy code base. This will help business owners understand the need of code refactoring. May be QA team needed an additional 1 week of testing effort. Such black holes will exist in the code base and tech team along with PM & PGM should build a strong case to get buy-in from business owners. Yes, PGM’s must also be included as they are usually based out in Client’s location and can convince better. If we can show the value loss in terms of revenue or effort; it will be understood and prioritized. Even if first attempt fails, try again and wrap your learning’s and present it in such as way that everyone atleast understand this. It would definitely be ideal to work on a task that is planned.

So, share your thoughts/comments….Did you find this article interesting? Do you agree with me? Do you disagree with me? What else could have been done proactively to ensure success?

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • description
  • LinkedIn
  • Live
  • MySpace
  • Slashdot
  • Technorati
  • TwitThis
  • description
  • E-mail this story to a friend!
  • Print this article!

Shrinath Inamdar Life at Aditi, Project Management

Apple Safari gets Bing Search

January 28th, 2010

Historical move by both Apple and Microsoft to work together ripples the Online Mobile Search market. Google enjoyed the default search status so far with Safari browser. As the Google’s focus in Mobile is changed dramatically and came up with its own OS and mobile devices, it is fast becoming a serious competitor for iPhone core business. Microsoft actively looking for all possible opportunities to win some ground in Mobile world trying to grab this and initiated discussions with Apple to make Bing as the default mobile search engine.

What this simply means is Microsoft Bing becomes the market leader in Mobile search. Stats say that Google enjoys 86% of mobile search whereas Bing is mere 11%. The key here is major chunk of Google search requests coming from iPhone. Microsoft already has Bing search iPhone app which has more futuristic search options such as location based with voice commands etc. On the other side, Google betting big on its Android platform and Google’s history clearly says the way they emerged as number one web search engine after disassociating their search engine with Yahoo. History repeats in Mobile?

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • description
  • LinkedIn
  • Live
  • MySpace
  • Slashdot
  • Technorati
  • TwitThis
  • description
  • E-mail this story to a friend!
  • Print this article!

Sreenivasa Rao Pilla Life at Aditi

SaaS Application Database design approaches

June 3rd, 2009

One of the concern areas for any clients (tenants) in using any SaaS model application is “Data privacy”. “Data Sharing” option would really help the tenants, provided the application database design approach is fool-proof and build the confidence amongst the tenants.

SaaS (Software as a Service) is a model of software development whereby a provider licenses an application to customers (subscribers or tenants) for use as a service on demand. SaaS based applications are multi-tenancy not multi-instance application architecture.

“Data Storage”, “Data Synchronization” and “Database Maintenance” are three key focus areas from the deployment perspective. I came up with the following 3 database design approaches and optimized them to make the best out of each.

1.  Individual databases servers:
The best way to isolate the tenant’s data is to deploy the tenant data in separate database server. This approach is it is easy to extend the existing database to meet tenant’s customization requirements. Flip side of this approach is its high cost of hardware inventory, licensing cost per hardware, and maintenance. Few tenants’ who requires a high degree of data isolation (physical) and are willing to pay more can opt for this design approach.

2.  Shared database servers with Individual Schemas:
Tenant specific schemas would be created in the same database server and access rights permissions are enabled in such a way that a tenant can access only the resources (tables, stored procedures etc) in their specific schema. The key advantage of this approach is lower cost and support a virtually unlimited number of tenant’s databases. This approach will improve the performance of the application as we can work around a solution to effectively utilize the connection pooling. Even though the tenant’s databases are in different schemas in the same server, we can use the following technique to maximize the performance in DB connection. The following code is in C# (Microsoft .Net platform) and I am sure we can do the same with other languages as well.

1) objConnection.ConnectionString ="Data Source=MSSQL1;
InitialCatalog=FunnelDatabase; Integrated Security=true;";
2) objConnection.Open();
3) objConnection.ChangeDatabase(”Tenant1″);
4) objCommnad.execute ("storedprocedurename");

The point # 3 in the above code is important. An initial connection to the database server has been established to FunnelDatabase. However, before executing the stored procedure / SQL statement, line #3 is changing the target database to Tenant1. By doing so, we are still utilizing the initial connection string and hence using the same connection pool for all the target databases.

3. Same Database with Same Schema:
All tenants’ data resides in same schema and share the same set of tables. But, a tenant identifier can be added to the primary key (composite key). A key challenge in this approach is it is not customizable at tenant level and rigorous testing required to gain the tenant’s confidence for data security and data privacy. Barring the above concerns, this is the best among all three approaches in terms of cost and maintenance. Even in this approach, we can establish some degree of data isolation by using some of the advanced techniques such as “Partitioning methods“, which allow physical data separation of each tenant’s data across physical devices while providing simplification of maintenance due to shared table definitions.

Let us talk about deployment strategies with networking options in our next blog.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • description
  • LinkedIn
  • Live
  • MySpace
  • Slashdot
  • Technorati
  • TwitThis
  • description
  • E-mail this story to a friend!
  • Print this article!

Sreenivasa Rao Pilla Life at Aditi

Demanding times ahead

June 26th, 2008

Yes it is getting hectic and the recruitment team is bustling like a beehive.  At present “Hyperactive” would be the word that describes us best.  We need to recruit Sharepoint Architects, .Net Evangelists, Test experts, Project Managers  and the list continues. It is just not about recruiting but recruiting within  a short period.   This for sure keeps us on our toes and not to mention that it makes work life very interesting.

There are always challenges that we face in finding the perfect fit.  Hiring the right kind of talent never comes easy, particularly for niche requirements.  The market is full of competition and there are plenty of jobs to choose from.

At Aditi we believe in building innovative products and solutions.   We look for candidates who dare to think differently and act quickly.  This is important because technology changes rapidly  and we need to hire  people who are not only comfortable with technology but who will keep themselves apprised.

If you happen to know somebody who fits the bill  give us a shout.  Please do visit our website for more information  on our current requirements -www.aditi.com

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • description
  • LinkedIn
  • Live
  • MySpace
  • Slashdot
  • Technorati
  • TwitThis
  • description
  • E-mail this story to a friend!
  • Print this article!

ShubhaShree Shetty Life at Aditi

Life @ Aditi

March 27th, 2008

 This is my ’second innings’ at Aditi and I bet that says how much I enjoy being here!  Life does comes a full circle, and here I am; Back after a span of  6 years.  I left Aditi as wonderful place to work — vibrant, creative and fun! and found it the same fun hangout as I left. But make no mistake, fun and talent go together here. You can’t throw a stone here in any direction and miss somebody who is a party animal, yet can cook twenty minute code brownies in five minutes!

Life of a recruiter is never dull, each day unfolds different experience.  Many people wonder what keeps the recruiter busy.  Trust me sometimes there are not enough hours in the day. We are meticulous unlike the urban legend around HR, and you will be surprised to find various type of activities that need our constant attention.   Typical day at office – scan mails and then prioritize my tasks for the day.  Primary activities are talking to candidates, sourcing, scheduling interviews and yet find time to meet stakeholders (in this case the hiring managers ) to gather new requirements.  A recruiter is required to wear many hats – that of a counsellor, listener, brand ambassador as you might know not all hats fit the same. The most important aspect of this job is to build trust with the candidates and this takes time and patience.

So what does a recruiter expect from a candidate? Since we are an ever growing company which is run like a charged-up startup, we prefer folks that can work without much structure, be flexible to change direction at a moment’s notice and make great things happen. If you speak l33t, that is an advantage. It takes an Aditian couple of seconds to prove that an IIT + T equals zero. How long does it take you? If you are in the ballpark, lets talk.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • description
  • LinkedIn
  • Live
  • MySpace
  • Slashdot
  • Technorati
  • TwitThis
  • description
  • E-mail this story to a friend!
  • Print this article!

ShubhaShree Shetty Life at Aditi

OPD with SaaS –The Core Competence of the NxtGen

February 27th, 2008

It’s a dream come true to have a company of my own and the day is not for away, the horizon is at my hand’s reach and this world waits to witness the success of a new Entrepreneur and his Entrepreneurship. Yes, if I get funded for a Start-up Product Company – The concept that I would bet on is unanimous– its OPD(Outsourced Product Development) complemented with another emerging model called SaaS(software as a service) and any technology that makes this endeavor reach to customers and organization, that envy to make this world a better place to live in.

The one-liner to my dream come true is - An OPD provider with SaaS modeling. Yes, and if u ask me to put this techie crunch in a simple way, I can rephrase this to something like, having a sandwich. Yes, the bread on either side is the OPD and the masala inside is the SaaS, I am very sure that once, people have this combination, they will feel the taste and realize what difference it can make to their meal. My friends, don’t forget that you are in a fast-food world, where u don’t find time to eat your meal with great leisure in a hotel lawn, but to have sandwiches, burgers, pizzas on the drive. This is an era where even the tortoise have adopted running fast, to win the race of market capitalization and customer satisfaction (The old granny’s story of hare & tortoise has gone obsolete with the fast changing time).

To make my stand crystal clear, and the reason why my firm will combine the power of OPD and SaaS, I wish to drill down the technical aspects of these powerful weapons (Emerging Markets) which will rule the software industry in the years to come.

My first stand of justification, as why I would prefer to root with Product development rather than being a services company is, I “Think Product”. Yes, software and any application for that matter, is all about “Generics” that would cater the needs of a wide variety of users, whereas application /service oriented approach will be “custom-built” for a single organization or targeting a set of users only. Moreover with application development it is just enough, if the functional requirement of the client is met, but for a product to sustain in the market and to met the ever changing needs of different customers, it has to be well architected with a solid and robust framework, to support building new features on top of it for attracting the customers with newer versions and enhancements. This is the most challenging part of “Product Development”. Myself being a product developer and an emerging entrepreneur, I would like to take up industrial challenges and want my co-owners (the emerging Technology Evangelists of my Dream) to stand by me in winning customer satisfaction.

Why OPD:

The advantages what the ISV (Independent Software Vendor) enjoys when their product development is given to a OPD provider are,

1. Release multiple versions of their product with newer enhancements every year.(Helps them to sustain in the competitive market)

2. Crashing the product road map by releasing newer versions well ahead of planned dates (Quick to Market), there by capturing new markets and business.

3. Helps focus more on product management and leave ample time in ideating newer products (foreseeing emerging markets).

4. Minimizing their development cost.
So, my company being an OPD provider, I will be granting all the above advantages to my client (ISVs) there by winning his goodwill and revenue.

Now, let me come to my second weapon, the most powerful of all, and the reason why I need this to win customer satisfaction. Before getting functional on this, I wish to share my thirst on why and what for, I wish to start a firm of my own. Yes, the lifeline of my dream is to “Have, What you Want”. Henceforth the slogan of my company is “We Deliver your Desire”. The time has come for each of us, an individual or an organization for that matter, to have what they want and own what they wish. No one will be forced to buy an elephant just because he/she desired to have one pleasant, memorable ride on top of it. All you have to do is pay the cost for one pleasure ride and enjoy yourself. I hope this little example would have given a brief note on my second weapon – SaaS (software as a service). Readers please don’t confuse this term “service” with the one that I was opposing in the being of my post. The term “service” in this context, altogether holds a different meaning. Here the service refers to a part of functionality that can be used independently. In the above example Elephant is the Product, which can offer multiple services like

a) A pleasure ride.

b) A mode of transport.

c) Helps to move massive trees and logs from one place to another.

d) A symbol of pride and prestige (a Jumbo welcome to their guests –The King’s way).

So it’s with the person to choose his need out of the product. You can own one, if you require all the services all the time, or just make use of the needy service at the needed time by paying the cost for the usage, it’s as simple as that.

Why SaaS:

Also known as On-Demand software or Web delivered software, which is hosted by vendors and accessed over the web.

SaaS focus more on what the customer wants rather than what the vendor can provide.

SaaS rules out the scope of ownership and procurement model and provides scope for outsourced and subscription services model.

This method of software delivery eliminates the risk and large expense associated with a system purchase and the cost of maintenance of hardware and huge servers at the end-user level.

SaaS model is mostly centered on MDA – Model Driven Approach, which offers customizable product that can be easily upgraded as technology changes.

As we have seen the advantages of both the models - OPD and SaaS now let me justify

Why Both:

To give life to my ideology and make my dream come true, I wish to start a firm which combines both the models (OPD and SaaS) and serve the world with better prospects and greater opportunities. I firmly believe that, this combination will be a trend-setter for the aspirants to follow upon.

With this new product development model, I not only serve my client (ISVs) with a single unit of product what he asked for, but with an end-product which compose of multiple loosely coupled components which can serve their end-users as independent services, based on their need.

This model will open up new opportunity for the end-users and will provide them freedom to choose between the either of

1) To acquire the entire product in order to enjoy all the services the product is capable of. Or

2) Just make use of the service that is needed to him by offering the cost for the level of usage.

This freedom of choice paves way to newer paradigm and will take technology to the deepest level, to the common most man and address all his needs, thereby making this world a better place to live-in and grow rapidly.

This paragraph is not to indicate the end of my post, but here to address you, about the birth of a new entrepreneur, beginning of a fresh software era, growth of the world to a greater horizon. That day I will walk with great pride, prestige and privilege; for which I know,

“I have promises to keep, And miles to go before I sleep”

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • description
  • LinkedIn
  • Live
  • MySpace
  • Slashdot
  • Technorati
  • TwitThis
  • description
  • E-mail this story to a friend!
  • Print this article!

Sethuram Ragunathan Coffee House, Life at Aditi

ADITI Blogs

January 12th, 2008

ADITI Blogs – A New initiative from ADITI Technologies – The software product company powering world class products. Now, technical fellows behind the scenes are planning to share their thoughts with the rest of the world. Well, we are not here to bother the world by Me-Too Blogging or throw ironic comments on rest of the world – rather we are planning to talk about that Nitty Gritty technical things that inspire us and could possibly inspire rest of the world for common goodness.

The objective is simple – we are trying to add more common sense to technology and build mature software’s. During this course we would like to share what we have learnt and hear back from rest of the world.

“…Thus… ADITI Blogs is born…”

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • description
  • LinkedIn
  • Live
  • MySpace
  • Slashdot
  • Technorati
  • TwitThis
  • description
  • E-mail this story to a friend!
  • Print this article!

Logu Krishnan Life at Aditi