Tuesday, August 30, 2011

Needed: Split Personality Software Developers


Not sure how many will agree,  every one of us is a born tester. Any idea how?  We all consume products and services and while doing so we evaluate, test, validate and review the product or service. There is a tester in all of us who will come to the fore when our money is at stake, when we buy or when we consume something. Developers are no different in that they have the tester in them as well. But often the tester doesn't come and take the center stage while developing for the customer.

We typically see many small software development projects that require one or 2 developers. What's the need for a separate, full time tester when the project doesn't involve the integration of many modules/components or the integration of the efforts of a big number of developers? Assume you are hiring the services of a electrician on a hourly basis. If he brings a tester with him to test the work he did and asks you to pay for the hours of the tester, will you pay for that? Then why do we do the same to the hapless customer?

Does that mean we need to fire most of the testers? Certainly not. The answer lies in the professional ethics of developers and testers

I am a developer

  • Software development is my profession just like doctors and attorneys.
  • I am not entitled to basic testing services by other professional testers, for the modules that I am developing
  • But I am entitled to their services for better understanding of the customer perspectives, validating the functionalities and product reviews
  • I will write unit tests, whether my manager asks me or not, whether my customer pays me or not
  • I am not done until I write the unit tests that cover all the meaningful portions of my code
  • 85% of the bugs in my modules were found by me
  • When I test my module, the tester inside me takes complete charge of me.
  • When I test my module, I become a ruthless tester and an over ambitious customer- it's very difficult to tackle the tester and satisfy the customer
  • I fail miserably in my profession whenever a third person points out direct bugs in my code

I am a tester

  • Software testing is my profession just like doctors and attorneys
  • I am the guardian of my customer's interests within my organization
  • I am the whistle blower for my customer, even if it goes against my organization
  • It's not my organization that pays my salary but my customer
  • If the module released for testing contains numerous direct bugs then I don't raise them as bugs in the bug tracker, but I refuse and stop testing the module. I return it to the developer. I don't believe in wasting time
  • When I test any module, the customer inside me takes complete charge of me
  • When I test any module, I review the product just like the end user. I am not looking for bugs since I am confident of the quality of the module released for testing
  • I find only 12~13% of total bugs but that are very crucial, could not have been found out by the developer and provide the cutting edge and competitiveness to my customer

By now you would have got answer to the question whether we need to fire the testers. How can you fire the representatives of your customer?  How can you fire the customer-designates?  How can you dismiss your customer's interests?

So a tester is always needed, not to find the unit testing bugs but to be a part of the customer's business, to increase the returns to the customer, to provide the competitive edge to the customer and most importantly to take care of the customers of your customer

Monday, August 22, 2011

ITIL V3: A must for people who work in IT

This weekend I did the training and exam for ITIL V3 Foundation. Exam is not even close to PMP both in terms of complexity and seriousness. So let's forget the certification part of it. 

I was very much impressed by the content,  best practices and their recommendations for IT services delivery. I came from a background of application development and maintenance and not even production support for those applications. The framework gave me the total perspective of  IT services landscape  and made me realize how smaller a portion that I am representing as a part of the whole IT services life cycle. 

  • I got a better grip of the multi-year, multi-million dollar IT services contracts that our top companies are signing with customers. I was amazed when I saw an anonymous,  normal IT services contract (SLA) that usually runs for 6000 pages.  The trainer told me the biggest contract that he worked on ran into 66000 pages. So far, I have seen and designed only application service contracts either for development or maintenance  which run into few pages and the biggest must be 100 pages.
  • I was critical of our big IT companies who execute these end-to-end service projects for their lack of innovation in comparison to US technology giants. But in the training I understood even organizing and managing such  projects is not a peanut and requires a lot of imagination and innovation.  Under the pressure of stringent SLA elements and penalty components, they need to ensure the availability of IT services for all the geographical locations and divisions on a 24X7 basis
  • I understood the importance of Service Desk, previously I was thinking them as some form of call centers. Service Desks are the interface between the customer and IT service provider. People working in service desks are not mere call takers, they play a crucial role in enhancing the customer satisfaction levels. Service desk teams are the role model for all other teams when it comes to optimal resource utilization. They are the best resource utilization planners.
  • I was able to understand the complete life cycle of the service, starting from strategizing for the offerings to seeing that our offerings are put into operation.
  • It was amusing to note that every new project that you get is because of some request for change by some one in some organization. All our software projects are a small part of the change management process of some organization

So my recommendations for the IT people

  • When you complete 5 years of experience, go for the ITIL V3 foundation course. Try to locate where you are serving in the long service value chain. Compare your company processes and ITIL best practices for your area. If possible, try to optimize it.
  •  In one year time, try to do the right ITIL intermediates- either from the life cycle stream or capabilities stream. Try to complete 4 or 5 intermediates in 5 years time. (1 per year)
  • When you become 10 years experienced, you must be ready for Service Delivery Manager position, then you should be able to manage your service lines across the life cycle. When you complete that exam, you become an expert.

Personally I believe with PMP + ITIL (as applicable to you and your company) + 6 Sigma black belt, You are an invaluable asset to your organization and your market value enhances by leaps and bounds. Good Luck.

Tuesday, August 16, 2011

Consolidation of Mobile Industry: Good or Bad?


On the breaking out of news of Google acquiring Motorola, I was wondering whether mobile industry is going through the same phase once enterprise ERP market did- big fishes swallowing the smaller ones and finally as a consumer you have very little choice.( Now there are only 2 note worthy enterprise ERP vendors- SAP and Oracle with Microsoft Dynamics being a distant 3rd.)

After the Google's take over of Motorola, news (or rumors) that's doing the rounds is Microsoft acquiring Nokia and Blackberry. This is a very bad news for other mobile device makers.

What is the meaning of open source, if Google itself owns and manufactures a device that uses Android OS? OK, Google has promised that it will honor all its previous open source commitments. But think of Samsung or HTC, they need to compete with Google (Motorola) using the same Android OS. You may argue that Samsung or HTC can customize Android and give more value adds, but who can customize it better than Google itself?

Though 35+ device makers who depend on Android have made a statement that they welcome the deal, it's highly unlikely that they like whatever Google has done. With this trend, I guess finally there will be only 3 or 4 vendors and smart phone choices available for consumers

  • Apple /iPhone
  • Google/ Motorola devices
  • Microsoft/Nokia devices
  • Blackberry (if not swallowed by Microsoft)
  • HP/Palm (any one using that?)

Players like Samsung would have understood by now, the risk of depending on only one source for mobile OS. They should either develop their own software platform or perish. History teaches us that one company cannot be good at both hardware and software (with the exception of Apple).

This consolidation has both pluses and minuses. On the positive side,  vendors will vie with each other to introduce new features. In fact there may be ground breaking innovations because of better integration of knowledge between the hardware and software communities (Can we attribute Apple's success to this factor??)

On the negative side, your device will become obsolete every 4 or 5 months, you may be threatened with service stop notices for your 'old' device, your spending on mobiles will increase. A few people may forget the fact that mobile is a basically device that is used to talk to someone.  So you may need to remind often 'a rose is a rose is a rose'

All this started because of the nasty patent war between Google and others (read 'Microsoft' and 'Apple'). Attention, dear biggies- you are being respected for your original patents, not for the bought-out ones with your ugly money power

Tuesday, August 2, 2011

How traditional IT service delivery models will be affected by cloud and mobility?

Cloud and Mobility are 2 disruptive technologies that are expected to play havoc with the traditional IT delivery models. Though almost everyone accepts there will be impact, still one is not sure of the magnitude. This post explores the impacts of these 2 technologies on the lives of traditional  IT service organizations and the IT professionals and how they need to tweak their service offerings and capabilities to survive in the changed technological landscape

Cloud adoption is yet to become the main stream because of barriers like security, regulatory/compliance regimens and bandwidth constraints. But still  it is generally expected that operational efficiency and economy of scale that cloud brings to an organization will ultimately drive all the IT managers to switch to cloud at some point in the future not far away.  Most surveys confirm that cloud adoption will be significant by 2015 and will become the main stream by 2020.

The question is very natural that how the traditional IT service companies are going to be affected- what are the opportunities and threats?

Threats

  • Companies that provide remote infrastructure/network maintenance services for enterprises are going to be affected by the very large, state-of-the-art cloud data centers. Owning big cloud data centers is generally thought to be big boys' play turf. Though the top 5 Indian IT companies have the financial might to play this game, we should not forget the fact that this is a very niche technology area and Indian companies are mostly app developers rather than technology creators
  •  With very large data centers, one gets the ability to manage hundreds of servers at a time. Most of the admin works are done by the semi-technical cloud customers themselves through the self-service console .  Also big servers will replace a number of small, physical servers using virtualization.  Job cuts/re-skilling of existing administrators will happen in this area.
  • Companies that provide application maintenance and management will be affected though not as directly as the infrastructure service providers. This is little bit tricky. With multi-tenant application model, I expect there will be a general resistance to the custom change requests and enhancements. Hence companies that earn through enhancements and bug fixes will have decreased revenue which may ultimately affect developers.
  • Low revenue turn out is expected in the application manageability services too with patching, resource throttling etc. will move out of the hands of traditional players
  • My extremely pessimistic mind says there will be low demand for application development services too as there will be increased pressure on the IT managers  to use the existing popular vertical solutions on the cloud. With cloud is something like the app store of Apple Inc., social concepts will come into play.  A very good application on the cloud will be freely promoted by the users feedback and the word spreads fast. Currently there are multiple software vendors (ISVs) providing the same or near same solution. There will be a cut in the number of such providers because either you need to be a pioneer in the domain (think 'Apple') or you need to have a big differentiator in terms of customer benefits. Most probably the applications will be competing at the global level rather than at a local level
  • Packaged application service providers will also face similar threats as the custom app developers. There will be resistance to customer specific customizations.
  • Apps developed using legacy technologies will die fast as they may not be compliant with the cloud. In the anxiety to get into the cloud and enjoy the competitive advantage, there may be rash decisions towards dumping legacy apps. This will affect the legacy, but rare skilled developers
  • With mobile, IT managers will be extremely careful in choosing what features their app is going to provide as resources are a constraint with mobile devices. Hence generally I expect a normal PC application would shrink when it becomes mobile which is a bad news for application developers. Usability and resource utilization will become the differentiators for applications and packaged products rather than the diversity of features and depth of functionalities

Opportunities

  • More and more legacy applications will dumped resulting in either cloud compliant re-development from scratch or re-engineering to fit the cloud. This will be a big opportunity for traditional application developers
  • There will be demand for applications that integrate with social networks like FaceBook and Microsoft Live
  • There will be demand for applications that integrate with popular cloud applications like Google Apps or Office 365