Software project evaluating practice is tricky, highly complicated. Evaluating is helpful in working out the core project constraints. It begins with a rough estimate, then continues with a detailed estimate.
This article highlights widely-used methods, types of evaluating, explains their difference, shows how mentioned techniques are applied at our company.
Reveal valid reasons of taking assessment
- Specifying if the benefits outweigh the software development cost.
- Making tradeoffs of the scope by prioritising product aspects.
- Determining how to distribute resources.
- Giving reliable promises.
- Understanding the certain project constraints.
Robust techniques to boost the accuracy
Analogy-based technique. It is applied at the beginning when current product does not have enough information. It is fast, relatively simple, comparatively accurate way with the main message to compare current features to previous similar ones.
Three-pointed technique. It is time-consuming method applying to define the estimates. O is optimistic, P is pessimistic, R is Real. The formula is provided below:
(O+P +(4 X R))/ 6
Bottom-up technique. It is a time-consuming, accurate, expensive form; is applied when there is enough sufficiently detailed information.
Expert Judgment technique. An experienced software engineer should be asked to define efforts. Accuracy will depend on the background and knowledge of the expert.
Parametric technique. Relatively easy method basing on quantitative assessment; cannot be applied without necessary past data.
Project Simulation technique. It is applied to imitate the level of uncertainty; helps to create a model of likely turning out process by returning a range of possible answers.
Decision-making technique. Relying on working with a group of people who share of knowledge, experience for taking assessment.
Delphi Method. Grouped technique for making a decision by interacting group of experts. Judgments summary is provided by all participants namelessly.
Planning Poker technique. Used by agile teams to estimate efforts through game-based way.
DDI Development strategy of evaluating
Companies apply a wide range of methods to evaluate their efforts to create a product. Our team uses detailed, rough estimates to value the work that should be done.
Informing, orienting to a sum of money that should be reckoned on, outlining the stages of project creation are the core purposes of this type of estimate. All gathered data are presented in a document.
1. Eliciting requirements
The crucial moments to know before starting the assessment:
- future product concept;
- target audience;
- resolved problem/problems after having been implemented.
A basic vision of the future software product, its features, functionality are assessment project outcome. All project data are added to a document and calculated.
Primary prototyping model is created for showing the UX/UI, and limited functionality from the perspective of basic requirements received from the client.
It helps in understanding user specific requirements that may not have been considered by developer during product design. Creating the prototype allows to assess the developer proposals, to try them out before implementation.
3. Determining features
Mentioned above document is turning into the work breakdown structure for assuring the team has one opinion with our client regarding the current project. Several methods are combined to achieve precise estimates:
- Analogy-based technique is used for assessing the main constraints if a preceding software product contains analogic features as the current one.
- Expert judgment is applied if our team has not implemented features that are required at the current moment. An expert or experts take an assessment relying on the background.
4. Technologies and tools
Our DDI Development team suggests efficient technologies, frameworks, libraries that will suit to the current digital product. We also offer tools or services we have a great experience with.
5. Details Confirmation
The outcome of estimation is reviewed, accomplished; then the documented final estimation of the project is sent to the client. If the scope exceeds committed budget, effective ways will be offered by our experts to present the key project concept.
The following approaches are used within detailed estimation process: screen-oriented, feature-oriented.The first one is based on defining, evaluating elements of functionality to be implemented. It is considered as an inaccuracy method because some logic can be unnoticed. Feature-oriented method is used at our company.
1. Decomposing features
Bottom-up method is applied while decomposing according to the structure:
Epics -User Stories - Use Cases - Features
The outcome is elaborated document containing detailed breakdown.
We get an elaborated document with the detailed breakdown of work, estimated duration of each feature. Creation time is evaluated based on analogical, expert judgement, statistical methods. Then calculate the time based on minimum and maximum values with arithmetical average function. There is an example below:
2. Adding extra activities
An example shows the duration of feature development. Additional activities such as UX/UI design, Graphics Design, QA, Requirements Analysis, Project Management Tasks should be added to gain an understanding of the project.
3. Final reviewing
Document with final estimation contains all work packages while creating process. There is an example of estimation below:
Various techniques, coherent approaches are critical for software project estimation at every phases of project creation. The process helps in identifying possible complexity, planning the flow of work.
Our company takes care of every client, applies force to help all them in understanding how their ideas transform into digital solution, how successful and markable the product will be after being launched.