Project Estimation Techniques for Software Development with Template

Once after the NDA Signed by both the parties we do start Requirement Analysis. Requirement Analysis is the initial phase of System Development Life Cycle. Depending upon the information we collected during Requirement Analysis, it helps to Design the System. During Requirement Analysis phase generally Customer provides Referral Documents or Helpful Videos or Referral Links or Block Diagrams. These all to make your vision clear. Let us focus back into the Subject “Project Estimation Techniques for Software Development”.

Assume that we are going to Create an Estimation for a “User Management Module”. Here refer to my analysis a User Management Module required a Login page, Register User page, Forgot Password, Forgot Username, Search User page or Edit User page. Like this list out all the pages and functionalities you like to divide.

There are applications using which we can Create an Estimation but still today there are more than 80% program managers uses MS Excel to prepare an Estimation.

To start with Open an Excel file and Create the following tabs.

  • Summery
  • Estimation
  • Assumption
  • In Scope
  • Out of Scope
  • Software Required
  • Artifacts Used

Summery

Rename the default tab to “Summery”. In this page create a table with the rows Requirement Understanding, Build Efforts, Efforts, Contingency & Total Efforts after Contingency. In “Requirement Understanding” put how many days you spend to understood the System. “Build Efforts” will depend upon Tab 2 (Estimation). Keep it as a Formula Field. From “Estimation” tab just display the total days against build efforts. Efforts in nothing but the Sum of Requirement Understanding and Build Efforts.

Estimation

This is the primary page. Here first list out the pages and functionalities you required to estimate. At the above Define an impressive title. To make your job easier here let me come with some Column names. In your estimation tab create columns for Items, Format, Complexity, Build Efforts, Review Changes, Breakpoints, Browser Testing, Integration efforts, Quality Assurance and Comments.

First list out the pages your required to design for Client Application. For an example for a User Management System I required pages like Login page, Register User page, Forgot Password, Forgot Username, Search User page or Edit User page. For large scale project it was noticed under pages you have multiple jobs to do. In this case create sub-functionalities for pages. Then below in a separate table declare the functionalities additionally you required. Few example of additional functionalities are Validations, Animations, Graphs, Writing an Algorithm or Calculations. Additional if you want to estimate for Database related job. Create an another table with list Database related jobs.

Now define the Formats for items. I mean in a user management system the above pages are HTML format. In your case it may differ refer to your System. But my intention to tell you define the file type here. Complexity is one more major item in estimation. By looking this data you can easily predict which job is how much time consuming (depending upon the Complexity). Complexity is basically three types Low, Medium and High. Depending upon the job type decide Complexity level. In my Case for Register User page I can keep Complexity “High” while for login page I can define “Medium”. For Normal HTML pages like Forgot Password or Forgot Username I can keep the Complexity “Low”.

Build Effort is nothing but the Time you required to Complete each Job. For an example to design a login page I can assign 2 days or 16 hours to one man power. The next column is “Review Changes”. Make this column as a formula field. According to Build effort set an excel formula with percentage to Calculate time you required for review changes. Apply Similar technique for Breakpoints, Browser Testing, Integration Efforts and QA.

In Comments you can write any additional information provided by the Client. For an example in Login page if my Customer wants to implement Strong password. This is the best place to noted down.

Assumption

In this tab present a future view which related to project work. As an example our employees working for only skills HTML, CSS, JS, JQ and AngularJS. Against this my Assumption is “Design Team need to provide PSD’s”. To do Responsive web pages we can define “Will do Responsive web pages using latest CSS Framework BootStrap“. Always with your assumptions add customer attractive unique quality you can provide.

Assumption example of a UI Estimation

  • This Estimation has been done for the pages only. Screens layout PSD or related image files need to shared in the Prototype by the design team.
  • Depending upon the breakpoints provided by the design team we will make pages Responsive for those resolutions. Depending upon the requirement we will choose the Responsive Framework.
  • Breakpoints to be provided by Design Team.
  • Breakpoints estimated for 1200×768 (Large Desktop), 1024×768 (Desktop), 480×320 (Mobile Devices), 728X1024 (Tablets).
  • Browsers supporting IE 9 & Latest versions including Mozilla Firefox & Google Chrome.
  • Only front-end UI Interactions will be handled involving JS/jQuery functionality.
  • Visual designs PSD for desktop and target devices would be provided by Design Team.
  • Images to be provided by Design Team.
  • Style Guide/Design Specifications to be provided by Design Team.
  • Fonts will be provided by Design Team.
  • Software or IDE for development purpose will be provided.
  • Re-estimation will be done based on future designs complexity post to roll-out from design team
    Any new page/template creation shall be re-estimated again if at all it impacts the work.
  • Any iterations to the designs for which the HTML is created shall be re-estimated again if at all it impacts the work.

In Scope

Every System has some limitation. That why this Column is. Estimation works like an agreement of deal. What you committed in your estimation your required to meet that. So in this tab define the things clear what your organization is going to do for their application. Let’s discuss a Case Study, As the lead of a UI development team while estimating some UI development stuffs I can define few Scopes as “We will do HTML5 and CSS3 developments”, “Validations and Client Side Animations we will take Care” or “Will edit images”.

In Scope example of a UI Estimation

  • Responsive Web Design for targeted breakpoints using Media query.
  • We will do HTML 5 and CSS3 coding followed by Global Guidelines or Customer Specific Guidelines.
  • To reduce unwanted load from Server we will handle Front-end Interactions like Form Validations or Client Side Animations using Client Scripts.
  • Browsers supported – IE9 & latest versions including Mozilla Firefox, Google Chrome & Safari.
  • Image Slicing from PSD. PSD need to provide by the design Team.
  • Client side Validations using JavaScript or Jquery.
  • Desktop, iPad and iPhone support with standard resolutions for iPad and iPhone devices.

Out of Scope

Designing a Software is required many hands together. Customer is unknown about technologies. He understood his requirements and always expects more. In this case it is wise to define “Out of Scope”. Out of Scope defines the limitation.

Out of Scope example of a UI Estimation

  • Server Side Scripting like PHP or ASP.
  • Image Creations using any image editor.
  • Search Engine Optimization.
  • Grid Operations like Sorting, Pagination or Filtering.
  • Back-end Operations for Storing & Retrieving Data (e.g. SQL).
  • Dynamic Components Creation or Customization.
  • Web Accessibility.
  • Multilingual Facility.

Software Required

To meet Customer demand if you required any additional software or hardware mention that here. Prepare a table with columns Software/Hardware, Version, Duration, OS it Supports and Comments.

* Duration – Here it indicates the time you required to use that Software.

Artifacts Used

In this tab in a mention the referral documents or links or materials you used to design estimation.