Archive for September, 2009

Why Product Development today needs a Product Engineering Platform?

September 25, 2009

[Note: I seem to be landing up on many of my articles which I had written in my pre-blogging days. Few weeks back I had posted another one titled “QA Tester vs. QA Engineer vs. QA Architect“. Once again, rather than having it cold-stored on my file system, I am posting it here with the hope that it might be useful to the wider community.

As a background on this article – this was written when me and my team were in process of conceptualizing the need for an integrated engineering platform in GlobalLogic because of the increasingly different product development landscape today. The motivations and need listed in this article finally resulted in the evolution of what today is referred to as GlobalLogic Velocity. It also won the “InfoWorld Top 100 Innovation Award” for the year 2007]

Main Motivation – Art of Product Engineering Today

There is no doubt today that teams are becoming increasingly distributed. Also the art of building products is rapidly changing now, more than ever in the new world of Web 2.0 or SOA. Product Development is now less upfront and more emergent. Requirements are driven more driven by Black-board, IM, or Wire Frames. Product Development today needs to be more collaborative and collective. The testing process for products is more continuous rather than at the end of the cycle with the practice of Test Driven Development. End users have also started playing a key role in this testing process. Table below provides a quick comparison of how the art of building software products has changed. As tough as it is to practice this in a uni-location team, complexity is much higher in a distributed team.

Then Now
Primary Collaboration Mechanism Mails, face-to-face, one way media (documents, etc.) Web, Sticky Notes, Wiki, IM, Black Board, Wire Frames
Source of Innovation Industry Technology Leaders Users, Customers
Release Cycle Months, Years Weeks, On Demand
Feedback Mechanism Market Research, Surveys, User Group Study, Customer Support Online, Continuous, Community Contribution
Customer Engagement Style Controlled, well-defined Spontaneous, Chaotic
Development Process Upfront design Less upfront, more emergent
Product Architecture Closed, Grounds Up Open, Built to extend, Reuse
Product Development Culture Centralized, Departmentalized, Linear Approach, Individual Heroics Distributed, Highly Collaborative and Collective, Partnership-based
Product Testing Internal, Dedicated Test Teams, Ownership-based, End of Life Cycle Continuous, Test Driven Development, Users as testers
Development Tools Heavy enterprise oriented, expensive, complex. Lightweight, Simple, Free, fast.
Product Engineering Art – Then and Now

One of the thing which becomes clear from the above comparison is that product development is just not about core product knowledge, but also about about understanding the design and the product engineering processes. The different phases of a lifecycle engineering are becoming increasingly more collaborative and knowledge intensive. Thus a product representation must convey additional information/knowledge that answers not only “what” question about a product engineering but also “how” and “with what” questions.

Product and Stakeholders Dynamics in an Organization

Another factor which governs the product development is the way internal department structures are modeled within the organization. Typically there is a Product Management group which interacts with the end customers and prioritizes the business requirements based on the market needs. Program Management has the responsibility of prioritizing these requirements internally along with the roles and responsibilities. Program Management also needs to bridge the gap which typically exists between the business side and the technical side. Product Development Management then takes the requirements and converts that into a working software. Quite occasionally, organizations also have Product Delivery Group which is finally responsible for delivering the software to its users. Figure below represents such dynamics within a product organization
Product & Stakeholder Dynamics in an Organization

Product & Stakeholder Dynamics in an Organization

While the distribution of product development work across departments helps in work categorization, it is also important for Management to have one view of the state of product development. This becomes much more complex when the entire product development is spread across geographies or time zones. Hence there is a need for an efficient integrated platform which aids the complete life cycle of the product.

Any Product Engineering Platform should be an integrated set of applications, systems, repositories and tools used by Software Product Engineering teams which would facilitate -

  • Integration of technology/applications
  • Integration of the business/engineering processes
  • Integration of information and knowledge
  • Integration of people and organizations units
Any Product Engineering Platform (including ours) should be able to facilitate the above characteristics.

[Note - Partial credits to the table titled "Product Engineering Art - Then and Now" mentioned above goes to an article which I had read on the internet. Unfortunately I am not able to locate or find the reference to it now and the old link has now disappeared too. If anyone has any reference to the same, would be great if you could point it out.]

Now this is an interesting idea, Sirji!

September 16, 2009

Few days back Washington Post reported about an interesting exercise conducted by MIT Researchers in the city of Seattle – “Researchers track 3000 pieces of Seattle trash” (Registration may be required). Immediately made me think – what an idea, Sirji!

I will let you all read the details of the exercise in the article. However, in summary, this exercise is about tracking where does different types of trash land up once it is tossed out of the house. The assumption behind this study is that we would probably look at our trash in a different way if we had some sense of what finally happens to it. This potentially might affect some changes to our habits of reusing or recycling. Many of us (including myself) today are blissful by the ignorance of how our trash finally affects the environment. May be this exercise might stir us to think in a different way.

I am looking forward to the findings.

[Update, Sep 17, 2009] New York Times also carried a story on the same topic today with lots of new details. You can read it here – “Following Trash and Recyclables on Their Journey“. (Registration may be required)

QA Tester vs. QA Engineer vs. QA Architect

September 11, 2009

[This article was collectively written by few of my colleagues and myself few years back when we were in process of structuring the QA Organization framework. I landed upon it today while I was going through some of my old notes. A lot of collective experience and brainstorming had gone into it. Publishing it here with the hope that it might be useful to a wider community.]

Background:

Our organization’s target customers are typically Independent Software Vendors (ISV) and Application Service Providers (ASP). For such typical partners, Software Product Engineering is an exercise in managing complexity. The complexity exists within the software design itself, within the software organization of the company, and within the industry as a whole. It can span multiple technologies and often involves multiple sub-disciplines. Software specifications tend to be fluid, and change rapidly and often, usually while the SDLC is still going on. Software teams also tend to be fluid, likewise often changing in the middle of the design process. Hence it is important that the team has to have the ability of making decisions under constraints of limited time, resources, and knowledge. This is where the notion of Engineering holds its value.

Engineering is more about how you do the process than it is about what the final product looks like. Programming and the build/test cycle are central to the process of engineering software. We need to manage them as such. The economics of the build/test cycle, plus the fact that a software system can represent practically anything, makes it very unlikely that there are any general purpose methods for validating a software design.

Considering the above the Engineering aspects and the non-engineering aspects of Software Development needs to be identified. Also, it needs to be recognized that there are specialists who are well-versed in doing either of the tasks. These specialists typically originate on the basis of their educational path or as in many cases – the aptitude. At the same time it is important that the expectations of the capability of the individuals needs to be well-understood by all the stakeholders. Any mis-match in terms of capabilities and expectations, typically tends to adversely affect on the final outcome of the SDLC delivery.

While this applies to all the domains of SDLC, this exercise is being done for professionals who are involved in the Quality Assurance (domain). The goal is to categorize these professionals based on their inherent capabilities (and hence the expectations set on them)

Assumptions

  • The table below characterizes three different roles. These roles are similar from the functional perspective (i.e. Quality Assurance), however are different from capabilities and expectations perspective.
  • While the table below does not suggest a career roadmap, it can help individuals in terms of career aspirations.

Comparison of Roles:

QA Tester vs. QA Engineer vs. QA Architect

QA Tester QA Engineer QA Architect
Function – Strong in test execution. Function – Test planning, Test Design and execution. Function – Define approach to test entire systems
Write and execute test cases – may not be coverage driven. Requirements driven testing. Prepare test plans, develop test cases and execute tests with a focus on coverage. Design, plan, execute, monitor, improve testing process for a testing engagement.
Determines Quality. Good to answer – did you find any bugs? Engineers Quality. Good to answer – what is the quality of the product? Provides answers to -

  • What are the quality attributes and goals of the product?
  • What should be the test strategy, methodology and test tools so as to ensure product quality?
Linear thinkers, low capability of analysis and re-usability of efforts/resources. Logical thinkers. Ability to resolve issues using abstraction. Capability in analysis/predictions/improvements. Analytical and creative. Systems thinking and quantitative/statistical thinking capabilities.
Requires a defined environment. Typically are weak in finding solutions in ambiguous/constrained environments. Can reconcile conflicting constraints. Able to define the environment.
Low process oriented capability. Process and metrics/measurement driven. Defines standards, guidelines, methodologies, metrics.
May not be cost sensitive (time, effort, monetary, etc.) Cost sensitive Cost sensitive
Good for UI Testing

  • Regression testing
  • Portability testing
Good for System/functionality testing

  • Performance testing /Automation
  • Independent validations
  • Domain testing
  • Programming skills orientation
Good for defining, planning and managing for test engagements.
  • Ability to understand the goals of an organization and suggest a test architecture.
  • Able to suggest alternative approaches and benefits of the same.
  • Ability to suggest improvements to process and technology areas for a test system.
  • Ability to define the framework for testing.
  • Ability to analyze risks and provide mitigation plans.
  • Ability to analyze test requirements and provide a solution in terms of test approach and design, suggested tools etc.
  • ability to design the entire test life cycle processes.
  • Capability to lead and co-ordinate a team of analysts for testing engagements.
  • Software development skills.
  • In touch with new methodologies and tools for software testing.
  • Ability to design, plan and execute and monitor a testing process.
Typical involvement is in later stage of SDLC Best to have them involved in complete SDLC Cycle. Best to have them involved in complete SDLC Cycle.

Psychology of Consumers During Consumption of Products or Services

September 7, 2009

Personally I am no student of Psychology, however have always found this subject and its associated reads quite fascinating (I have similar fascination for two other subjects – Law and History – although those are also not my main area of expertise).

Last week I read an interesting article on what kind of psychology drives the consumption amongst we human beings. The article titled “Conceptual Consumption” by Dan Ariely and Michael I. Norton was a fascinating read on this subject in which they break the psychology of consumption into two distinct parts – the Conceptual Consumption followed by the actual Physical Consumption. They argue that it is the Conceptual Consumption which typically drives the consumer towards the Physical Consumption, especially in the modern times.

The notion of how human beings finally consume anything physically is increasingly getting driven how they consume the same thing conceptually first. Increasingly what we buy and consume is simply not the actual thing, but also the idea which is embodied in that thing. The way we relate to this idea – either positively or negatively – finally results in the consumption i.e. the physical consumption. As an example – I have to believe that Consumers are buying ‘green‘ cars like Honda Prius for more varied reasons than just that it gives a better mileage i.e. there is a strong Conceptual Consumption which is driving the final consumption of these cars.

For me this article provided lots of interesting learnings which I am trying to summarize in brief below  -

  • Advertisements or Marketing do set up Consumer’s Expectations with the product. These expectations can finally influence or supersede the actual physical consumption of the product or the service – both positively or negatively. People tend to seek confirmation for their beliefs – and any mismatch in the expectations and actual behavior of the product or the services – can potentially be disastrous to the product or the service.
  • Our concepts about a product or a service also drives the consumption experience too. If we think about the product favorably, our experience of the consumption is also going to be favorable only. For the same product, if our initial perception of the product has a negative bias – the experience also can be unfavorable.
  • The placebo effects in consumer behavior: Human beings – for reasons unknown – demonstrate this peculiar behavior where they tend to derive a better consumption experience because of totally unrelated associated factors. The study of students who bought the energy drinks at discounts performing worse than the students who bought the drink at full price seems to be very interesting.
  • Goal and momentum seems to have a positive impact on the physical consumption. As pointed by the paper, researchers have shown that just to consume a goal and with a push of initial momentum, consumers when faced with goal-evoking marketing promotions have increasingly shown to vary their consumption behavior in a positive manner. The authors point to the research where consumers responded more favorably to loyalty cards requiring ten purchases (and having two already purchased) than to the loyalty cards which required just eight purchases.
  • Equally true is an interesting corollary of the above point. Desire to consume a completed goal seems to have reduced consumer’s typical physical consumption. What does this mean? As an hypothetical example – consider that for the consumers whose typical average spend is about $4, receive a coupon of a dollar off for a purchase of $2. Authors point out that in such cases, consumers seem to have purchased much below the typical average spend. If the consumer had a goal of $4 worth of purchase while the loyalty card goal was much below than that, it looked like the consumers did not have felt the push for the goal and hence the consumption seems to have been affected in a negative way. In such cases, the goal-evoking marketing promotions typically tend to affect adversely.
  • Consuming Fluency: The easier it is for the consumer to consume it conceptually, better is the value which a consumer estimates on a product or a service and equally better is the final physical consumption. As an example, the author quotes the study where consumer investors seem to have valued and consumed stocks with fluent (or pronounceable) ticker names more than the ones which were not.
  • Non-fluency: Once again, as a corollary to the above point, as the fluency of consumption conceptually reduces, the physical consumption also reduces. Consumers seem to defer making choices on the consumption in order to avoid conflicts or regrets arising because of the decision.
  • Consumers have shown tendencies to sacrifice or be dissatisfied with their physical consumption to an extent when exposed to wider range of varieties initially. Even then studies have shown that consumers will increasingly seek variety possibly because of social pressures. This is an example where the consumers are willing to indulge in conceptual consumption more even if their experiences with physical consumption of the same product has been not to the mark. Same is true when the product or service itself has many features.
  • Forgoing Physical Consumption: If the consumers have truly enjoyed the consumption of a product or a service, there is a very good chance they would forgo another chance of consumption of the same service in order to safe-guard the memories and the possible fear that the future experiences may not be as good as the previous one.
  • Any thoughts or memories of contamination affects the physical consumption of the product or the service in a negative manner even if there is no actual contamination of the product or the service. The authors give an example that even a tightly bottled drinks briefly in contact with a sterilized cockroach can affect the final consumption of the drink.
  • There are several scenarios where consumers have preferred to choose negative physical consumption for the sake of getting a positive conceptual consumption experience. Mountaineering, bungee jumping, etc. are some examples of such scenarios.

As part of current job, I have to think a lot about various kinds of products and services which could potentially catch the eyes of new sets of customers and hopefully get consumed too. With that in context, study of this paper has been fascinating exercise for me to understand how best to serve different types of end-user preferences. If we were to think about it, almost all of us in our profession are producing something which is going to get consumed by someone else. If we can all understand the philosophy behind consumption, there is a very good chance that we all can deliver our services/work in a much better manner.

Thoughts and comments are most welcome.

[Update, October 5, 2009] If you like the above article, check out another interesting article on similar thought process titled “Advertising on the Brain” by Greg Satell. It talks about how advertising works neurologically on human beings.


Follow

Get every new post delivered to your Inbox.