Sunday, March 8, 2015

Tips on Better Effort Estimation in Agile Development

Work, Complexity & Efforts

Clients, bosses, customers and stakeholders care about how long a project will take. They don't care about how hard we have to think to deliver the project, except to the extent that the need to think hard implies schedule or cost risk.

While doing Agile Estimation, we assume, in general, the right person for the job will do the work. The effort is influenced by complexity, risk, and uncertainty.

Complexity is a factor to the extent it influences effort. Complexity on its own is irrelevant.

IEEE [3] defines software complexity as 
“the degree to which a system or component has a design or implementation that is difficult to understand and verify”.
It is often more of a psychological problem than an algorithmic one.

Characteristics of complexity

DO NOT UNDERTAKE TASK BREAKDOWN UNLESS YOU ARE 100% CLEAR ON REQUIREMENTS.

Rate the characteristics on a scale of 1-10 [1 indicating minimal complexity and 10 maximum]. If any characteristics scores 5 or more than 5, further breakdown of activities, risk analysis must be done.

Third Party Stakeholding
------------------------

1). What are the stakes involved?
2). How much interaction do you perceive?
3). Will they be involved in Design, Implementation or Testing?

Tools
-----

1). Is there a precedence of a similar task?
2). What is the level of confidence in the software tool involved?
3). Is there a Help available on demand?

Integration
-----------

1). What is the extent of dependency?
2). Are the integration points known in advance?
3). How much stubbing can be done?

Reviews
-------

1). Do we have subject area experts in the Team?
2). Will a prospective reviewer need some time to prepare for reviews?
3). What is the availability of the prospective reviewer?
4). What is the content of the work to be reviewed?
5). Will a face-to-face review help in quality/time gain?

Scalability
-----------

1). How much is the anticipated Nonlinear increase of usage?
2). Can the Tools chosen can handle the scaling required?

Testing
-------

1). Can the tests be automated?
2). How much can be covered via Unit Testing?
3). What help can be obtained from others?

Security
--------

1). How many of the known Security Checkpoints apply?
2). What is the expected rate of new findings?

Performance
-----------

1). Is there an existing benchmark?
2). What deviation is expected?

No comments:

Post a Comment