Subscribe by Email


Showing posts with label Decisions. Show all posts
Showing posts with label Decisions. Show all posts

Friday, July 27, 2012

What are different characteristics of agile planning?

Two critical areas in software engineering are:
1. Estimating
2. Planning.
They are difficult and error-prone. These activities cannot be avoided.

The purpose of planning is to find an optimal answer to the overall product development question of what to build. The answer incorporates features, resources and schedule. It is supported by a planning process that reduces risk, uncertainty, supports reliable decision making, establishes trust and conveys information.

Planning is an ongoing iterative approach. It is an effort to find an optimal solution to the overall product development question of "what should we build?"

A good planning process supports:
1. Reducing Risk
2. Reducing Uncertainty
3. Supporting better decision making
4. Establishing trust
5. Conveying Information

A good plan is one that is sufficiently reliable that it can be used as the basis for making decisions about the product and project.


What is Agile Planning?


- It is more focused on planning than the creation of plan.
- It encourages change, results in plans that are easily changed.
- It shifts the focus from plan to planning.
- It balances the effort and investment in planning with the knowledge that we will revise the plan throughout the project.
- As the user needs are discovered, our plans are affected and hence changes become necessary.
- Plan are needed that are easily changed. Therefore, planning becomes more important that the plan.
- Changing plan does not mean a change in date.
- Plan can be changed without changing the date by:
            1. dropping a feature.
            2. reducing scope of feature.
            3. adding more people in the project.
- Agile planning is spread more or less evenly across the duration of a project.



Thursday, June 28, 2012

What is meant by decision table testing and when it is used?


Heard of decision table testing before? This concept is rarely heard since it is not used by the testers very often. This article is focussed upon the decision table testing and when it is used. 

"Decision table testing proves to be a very handy software testing methodology which comes to the tester’s rescue whenever a combination of inputs is to be dealt with and different results are produced". 

To understand this concept you can take example of two binary inputs A and B. You will get 4 different combinations of these two inputs which will produce 4 different results based up on whatever operation is performed on them. If you observe some of these outputs to be the same, then you can select any of them and the output which is different for testing. 

With a small number of inputs you won’t realise the importance of this testing technique since you will feel like using a normal testing technique. But with a large number of inputs, the significance of the decision table testing becomes quite clear. The below mentioned expression gives the possible number of combinations of the inputs:
2^n,  where n stands for the number of inputs.
Let us take n=10. The number of possible input combinations comes as 1024! 

What is Decision Table Testing?


- Decision table is actually a table that showcases all the different possible combinations of the supplied inputs along with their corresponding outputs. 
- Decision table testing is one of the black box testing techniques. 
- This testing technique is widely used in web applications however; it has got limited scope when it comes to equivalence partitioning and boundary value analysis.
- In boundary value analysis and equivalence partitioning, the decision table testing can be applied only in specific conditions.
- Mostly, decision table testing is used for testing rules and logics. 
- Sometimes, it is also used to evaluate complex business rules. 
- These complex rules are broken down in to simple decision tables. 

Advantages of Decision Table Testing


Below mentioned are some of the advantages of the decision table testing:
  1. With decision table testing you get a frame work that facilitates complete and accurate processing of the rules and logics.
  2. Decision table testing helps in the identification of the test scenarios faster because of its simple and accurate tabular representations.
  3. Decision tables are quite easy to understand.
  4. Decision tables require less maintenance and updating the contents is also very easy.
  5. With a decision table you can verify whether or not you have checked all the possible test combinations.

What portions are defined for decision table testing?


- Out of all the black box testing methods, decision table testing is quite rigorous. 
- But nonetheless, decision tables provide quite a compact and precise way for modelling a complex logic. 
- Below mentioned 4 portions have been defined for a typical decision table:
  1. Stub portion,
  2. Entry portion,
  3. Condition portion, and lastly
  4. Action portion.
- “Rule” is the column in entry portion and indicates which actions are to be taken for the condition that is indicated in the condition portion of the table.
- In some decision tables all the conditions are binary, such kind of decision tables are called “limited entry decision tables”. 
- On the contrary, if the conditions have several values, such a table is known as “extended entry decision table”. 

There is one disadvantage of decision table testing: 
It is very difficult to scale up the decision tables. 


Sunday, June 3, 2012

What is release planning and what is the need of release planning?


Release planning forms a very important part of the whole software development life cycle and from the term itself you can make out that it is related to the release of the software product.

What is a Release Plan?


- A release plan is drawn up during the release planning meeting. 
- The purpose of the release planning meeting is to lay out the overall project plan. 
- The release plan is further used to plan the iterations and schedules for the other processes. 
- For every individual iteration, a specific iteration plan is designed keeping in mind the specifications of the release plan. 
- It is important that a balance should be maintained between the technical aspect and the business aspect of a software project else the development conflicts will arise and the developers will never be able to finish the software project on time. 
- So, to get a better release plan it is important all the technical decisions must be handled by the technicians and all the business decisions are taken up by the business people. 

How to draw a proper release plan?


- To draw out a proper release plan, it is important that these classes of the stake holders co- ordinate properly. 
- In order to facilitate the co- ordination among these two, a set of rules has been defined for the release planning.
- With these rules it has been made possible that each and every individual involved with the project is able to state his/ her own decision.
- With such a way, it gets easy to plan a release schedule to which every one can commit to. 
Otherwise, the developers will find it difficult to negotiate with the business persons. 
- The essence of the release planning meeting lies in the proper estimation of all the user stories in terms of the ideal programming weeks. 

What is an ideal programming week?


Now you must be wondering what an ideal programming week is. 
- The ideal programming week is defined as how long one can imagine regarding the implementation of a particular user story if there was nothing else to be done. 
- Here by nothing else we do not mean a total absence of the other activities! 
- It only means the absence of the dependencies and extra work but presence of tests.

Factors on which a release plan depends are:


- The importance level of a user story is decided by the customer itself.
- He/ she also decide how much priority is to be given to which user story regarding its completion. 
- There are two factors based up on which the release plan can be drawn:
  1. Scope or
  2. Time

Role of Project Velocity in Release Planning


- A measure called the “project velocity” helps with the release planning. 
- This measure proves to be a great aid in determining the number of the user stories that can be implemented before the last date of the completion of the software project.
- Or in the terms of the scope, the project velocity helps in determining the number of user stories that can be completed. 
- When the release plan is created according to the scope, the total weeks of the estimated user stories is divided by the project velocity to obtain the total number of the iterations that can be carried out till the due date of the project completion. 

Philosophy Underlining Release Planning


The philosophy that underlies the release planning is that the quantification of a software product can be done by the below mentioned 4 variables:
  1. Scope: It defines how much work is to be done.
  2. Resources: It states the number of the people available.
  3. Time: It is the time of the release of the software product and
  4. Quality: It defines how good the software is. 


Facebook activity