Archive for the ‘Technology Outsourcing’ Category

Software Development Life Cycle (SDLC): Why Small and Medium Businesses Should Make an Effort to Understand it

Posted by: R. Bokhari | Posted at: June 22nd, 2010 | Posted in Technology Outsourcing

The field of Software Engineering is relatively new and introduction of scientific approaches for software development has been a recent phenomenon. As software use proliferated in late 70s and early 80s, and as programming languages evolved from assembly languages to higher level procedural and object oriented languages, software development experts in industry and universities started looking for ways to improve quality and reliability of their products. The result was introduction and refinement of Software Development Life Cycle (SDLC) and other formal development methodologies that were based on SDLC.

Today most of the big corporations and military organizations either follow industry standard processes or their slightly modified versions to guide their internal development. Rational Unified Process (RUP) is an example and is one of the most widely used development process, though more and more companies are experimenting with Agile Process that promotes faster development cycles. Readers can search for SDLC on the web to get more details on different stages of SDLC and the importance of each phase. While big corporations recognized the importance of SDLC and adopted it early, the Small and Medium Businesses were not really aware of the changes. The reasons were obvious. Either they were too small to need any automation that software brought, or if they needed any software they bought it off the shelf rather than developing it internally.  Understanding SDLC was not really of any use to them. The exception to this was any SMEs that were specifically developing and selling software to other companies.

However, the technology landscape started to shift earlier in this decade and more affordable software development platforms started becoming accessible to SMEs. We covered the popularity of open-source technology stack in an earlier blog and how it helped SMEs adopt new web based software. SMEs are now increasingly using web based applications and mobile applications to run their daily operations. In this environment where more software systems are becoming part of their business operations, it is becoming important for SMEs grasp the importance of Software Development Life Cycle and why they add value to their business.

It is important to note that most SMEs still are not developing their own software. They do not have internal development resources to do so but they are increasingly partnering with outside providers to develop internal systems. Understanding SDLC principles will better equip them to select and sustain better relationship with their outside software development partners. They would better understand different phases of development and what to expect after the provider finishes each of these phases. Completion of each phase can formally require a document that would need to be signed off by both parties. For example, if the provider mentions that it has finished the testing phase, then the customer can ask for formal documentation, such as written test plans, that would indicate that thorough testing has been performed and the results have been added to those test cases. In addition, SMEs would also better comprehend what their responsibilities are in making these software projects a success.

Documenting requirements would force them to think hard about what exactly they want in their product. Discussing test plans would also make SMEs aware of the importance of formal testing, both on the provider side and also on the customer side. We have seen, quite a few times, when SME owners driven by cost or time pressure, insisted on rolling their projects or changes to their existing systems to production environment without going through their own acceptance procedures. While life as an SME owner can be chaotic, it is imperative that they grasp the importance of following processes, since these processes will actually reduce chaos in their operations and will serve them better down the road.

Moreover, SDLC, is not a technical document – rather it’s a process document. So, as such, it is not a very technically challenging read and most readers should be able to understand the basic concepts of phased approach to software development. Time and effort they put in understanding SDLC would definitely be a worthwhile investment for their businesses.

Moving to the Cloud

Posted by: A. Gohar | Posted at: May 18th, 2010 | Posted in Technology Outsourcing

Wikipedia describes Cloud Computing as “Internet-based computing, whereby shared resources, software and information are provided to computers and other internet enabled devices.” It is an internet based delivery model, through the “cloud”, that allows home and business users to easily access hardware and software capabilities remotely over the internet.

Companies, wherever feasible, have always tried to offload non-core operations to outside providers who could run them with better cost base and efficiency. Big companies, long time ago, got away from generating their own electricity and started consuming it from the electric grids. Further advancements in technology have kept pushing the envelope of what companies can outsource to outside providers. Today every major industry relies on a chain and tiers of outside providers and suppliers that help to optimize the operational efficiency and lower the cost.

Benefits

Cloud Computing is continuation of the above trend. It represents a significant refinement of the delivery model which takes advantage of better technology and faster internet to provide computing services for companies that are charged based on consumption and hence provides better economics for these companies. Today these companies can procure computing power in a scalable manner and without significant upfront cost.

Potential Issues

It is inevitable that going forward more and more companies would be looking to Cloud Computing for their hardware capacity and software services needs. Therefore it is critical that companies are aware of potential issues of this delivery model and have risk mitigation strategies in place to address them.

  • The data security issue – all of the data will be hosted on the servers of the service providers. This change, by itself, is enough for companies to think twice before moving their operations to cloud.
  • Trust level – how much a company trusts its provider is the key to how fast the cloud adoption would proceed.
  • Service Level Agreement (SLA ) – whether Service Level Agreements would support the business objectives of the companies.
  • Internet Connectivity – whether internet connectivity is stable and fast enough to support securing cloud services over the internet.

Things to consider

Like every technology and business transformation endeavor, the shift to Cloud Computing has to be planned carefully. Below are some points to consider when planning a switch to Cloud Computing.

  • Review your business strategy and make sure that it is compatible with Cloud Computing model. For example, a company that processes financial transactions may not want to give up control of their data and server operations since a breach could be fatal to their business model.
  • Review the license agreements and user manuals before subscribing to any service. While bigger companies would always perform this due diligence, the smaller companies some times get locked into the contracts without reading the fine-print.
  • Make sure the provider has proper backup plans of your data.
  • Verify where the servers are physically hosted, where the data is stored, and what level of certifications and storage policies are being implemented on the provider side. The physical location of the servers could impact the regulatory requirements and in some cases the speed at which you receive the computing services.
  • Understand the pricing structure before subscribing with any cloud provider. Different kinds of pricing models are currently being used by providers like per user cost model, total usage cost model, and fixed weekly/monthly cost model. Make sure you do your home-work and select the model that will cost you the least while meeting your requirements. Also find out how feasible it would be to switch from one pricing plan to another.
  • Make sure that the provider allows data export out of their systems. It is critical for you to maintain back-ups of your data on your side and also be able to switch to another provider if needed.

Switching to Cloud Computing model represents a significant change of direction for any company but is not the best option for all of them. Knowing what issues to consider and how to address them would help you decide whether this is the best move for your business.