Choosing Technology To Include In Software Design

Posted on DotNetBlocks See other posts from DotNetBlocks
Published on Mon, 29 Aug 2011 00:54:00 -0500 Indexed on 2011/11/11 18:21 UTC
Read the original article Hit count: 300

How many of us have been forced to select one technology over another when designing a new system? What factors do we and should we consider? How can we ensure the correct business decision is made?

When faced with this type of decision it is important to gather as much information possible regarding each technology being considered as well as the project itself. Additionally, I tend to delay my decision about the technology until it is ultimately necessary to be made. The reason why I tend to delay such an important design decision is due to the fact that as the project progresses requirements and other factors can alter a decision for selecting the best technology for a project.

Important factors to consider when making technology decisions:

  • Time to Implement and Maintain
  • Total Cost of Technology (including Implementation and maintenance)
  • Adaptability of Technology
  • Implementation Team’s Skill Sets
  • Complexity of Technology (including Implementation and maintenance)
  • orecasted Return On Investment (ROI)
  • Forecasted Profit on Investment (POI)

Of the factors to consider the ROI and POI weigh the heaviest because the take in to consideration the other factors when calculating the profitability and return on investments.
For a real world example let us consider developing a web based lead management system for a new company. This system can either be hosted on Microsoft Windows based web server or on a Linux based web server.

Important Factors for this Example

  • Implementation Team’s Skill Sets
    • Member 1 
      • Skill Set: Classic ASP, ASP.Net, and MS SQL Server
      • Experience: 10 years
    • Member 2 
      • Skill Set: PHP, MySQL, Photoshop and MS SQL Server
      • Experience: 3 years
    • Member 3 
      • Skill Set: C++, VB6, ASP.Net, and MS SQL Server
      • Experience: 12 years
  • Total Cost of Technology (including Implementation and maintenance)
    • Linux
      • Initial Year: $5,000 (Random Value)
      • Additional Years: $3,000 (Random Value)
    • Windows
      • Initial Year: $10,000 (Random Value)
      • Additional Years: $3,000 (Random Value)
  • Complexity of Technology
    • Linux
      • Large Learning Curve with user driven documentation
      • Estimated learning cost: $30,000
    • Windows
      • Minimal based on Teams skills with Microsoft based documentation
      • Estimated learning cost: $5,000
  • ROI
    • Linux
      • Total Cost
        • Initial Total Cost: $35,000
        • Additional Cost $3,000 per year
    • Windows
      • Total Cost
        • Initial Total Cost: $15,000
        • Additional Cost $3,000 per year

Based on the hypothetical numbers it would make more sense to select windows based web server because the initial investment of the technology is much lower initially compared to the Linux based web server.

© DotNetBlocks or respective owner

Related posts about Development Methodologies