Subscribe by Email


Showing posts with label Feedback. Show all posts
Showing posts with label Feedback. Show all posts

Wednesday, December 9, 2015

Getting feedback from customers - appointing a champion within the team

In the previous post (Exposing team to customer feedback), I talked about how the team benefits from exposure to customer feedback and the problems that customers face in their regular workflow. In this post, I will take a specific point about the logistics of doing this and how to ensure that the team does not drop this concept of interacting with customers for getting their workflows, primarily through interacting with the customer support team.
One of the ways of ensuring that the process remains ongoing, that the team does not get tired of seeing these problems with customers in their workflows (from experience, it has been that direct ongoing interaction with customer support to get information about problems can get depressing to the team, just hearing about problems and more problems), that there is a controlled system of working this feedback into the schedule of the team members. Managers of these software teams do get involved, but it cannot be a manager driven, command ruled interaction with the customer support team.
One way of ensuring that the team remains involved with the customer issues, including with the customer support team, in a controlled manner, is by deputizing somebody from the team to handle this interaction and figure out the parameters by which the team would operate. The person who does this works with the customer interaction team (primarily the product support team in most cases), works out the schedule of such interaction, works out the prioritization of the issues that are thrown up about customer workflows, and tries to work out a system whereby problems are highlighted, as well as positive customer workflows feedback or any direct appreciation from the customers about the product or the development team directly (this needs to be genuine feedback, not something that is created to keep the team in good spirits; you would not believe how many times positive news is massaged to make the team happy).
This entire plan of what the person is expected to do, as well as a slight reduction in the work schedule of the person in order to give them time to handle this additional work of customer support interaction is something that would emphasize to the team the importance of this work. In addition, the managers should atleast have some critical items from the customer feedback that are meant for incorporation into the product, again emphasizing the importance of feedback from the customers. It would be ideal if the person who is appointed the champion gets some prioritized items and presents this to the team and the product manager.
The role of a champion for this effort is something that should be offered to the team, to any member of the team who wants to work on this. Even though the managers might have somebody in mind for this, they should let somebody else do this work unless the mismatch is too high. The position can be rotated at a regular interval, say maybe every quarter so that more people get exposure to this role and also more exposure to feedback from customers. 


Thursday, August 29, 2013

How can traffic shaping help in congestion management?

- Traffic shaping is an important part of congestion avoidance mechanism which in turn comes under congestion management. 
- If the traffic can be controlled, obviously we would be able to maintain control over the network congestion. 
Congestion avoidance scheme can be divided in to the following two parts:
  1. Feedback mechanism and
  2. The control mechanism
- The feedback mechanism is also known as the network policies and the control mechanism is known as the user policies.
- Of course there are other components also but these two are the most important. 
- While analyzing one component it is simply assumed that the other components are operating at optimum levels. 
- At the end, it has to be verified whether the combined system is working as expected or not under various types of conditions.

Network policy has got the following three algorithms:

1. Congestion Detection: 
- Before information can be sent as the feedback to the network, its load level or the state level must be determined. 
- Generally, there can be n number of possible states of the network. 
- At a given time the network might be in one of these states. 
- Using the congestion detection algorithm, these states can be mapped in to the load levels that are possible. 
- There are two possible load levels namely under-load and over-load. 
- Under-load means below the knee point and overload occurs above knee point. 
- If this function’s k–ary version is taken, it would produce k load levels. 
- There are three criteria based up on which the congestion detection function would work. They are link utilization, queue lengths and processor utilization. 

2. Feedback Filter: 
- After the load level has been determined, it has to be verified that whether or not the state lasts for duration of sufficiently longer time before it is signaled to the users. 
- It is in this condition that the feedback of the state is actually useful. 
- The duration is long enough to be acted up on. 
- On the other hand a state that might change rapidly might create confusion. 
The state passes by the time the users get to know of it. 
- Such states misleading feedback. 
- A low pass filter function serves the purpose of filtering the desirable states. 

3. Feedback Selector: 
- After the state has been determined, this information has to be passed to the users so that they may contribute in cutting down the traffic. 
- The purpose of the feedback selector function is to identify the users to whom the information has to be sent.

User policy has got the following three algorithms: 

1.Signal Filter: 
- The users to which the feedback signals are sent by the network interpret them after accumulating a number of signals. 
- The nature of the network is probabilistic and therefore signals might not be the same. 
- According to some signals the network might be under-loaded and according to some other it might be overloaded. 
- These signals have to be combined to decide the final action. 
- Based up on the percentage, an appropriate weighting function might be applied. 

2. Decision Function: 
- Once the load level of the network is known to the user, it has to be decided whether or not to increase the load.
- There are two parts of this function: the direction is determined by the first one and the amount is decided by the second one. 
- First part is decision function and the second one is increase/ decrease algorithms. 

3. Increase/Decrease Algorithm: 
- Control forms the major part of the control scheme.
- The control measure to be taken is based up on the feedback obtained. 
- It helps in achieving both fairness and efficiency. 


Monday, July 29, 2013

Project Management - Writing down the issues as they come to you ..

One of the most difficult items that would come up during my experience as a project manager was about collating issues for later use. For example, there could be an issue with a team member in terms of their productivity, or issues with a vendor about their quality standard, or even responsiveness to an email sent for a query, and so on. There are numerous items that pop up like this during the course of a project, and the project manager has to resolve then on an ongoing basis. This is the typical life of a project manager.
However, I found that even though these items were resolved on a regular basis, the lack of capturing them in a detailed way made things difficult later. One of the prime examples of this was about interaction with an external team. We went through a post-mortem with the team, after a cycle where the external team had caused us some amount of grief. There were deliveries that were not on schedule, the quality level of one of the deliveries was bad enough that the delivery was rejected (although to get to the point of rejection took a couple of testers a period of around 2 days, and we did not really want to spend this kind of time period for this delivery of an external component).
Similarly, at the end of the cycle (and sometimes during the period of the cycle) there would be the need for feedback on team members, typically other managers, based on the cycle and the quality of their work. However, in all these cases, there were problems. When you are going through a busy cycle, how often do you really remember what happened in specific instances; and there is a lot of feedback that you should not look too much in the past but look towards the future.
So what would you do ? I would typically keep a specific file that would list issues where I thought some later feedback is required or where I felt that the person to whom I was corresponding could have dealt with issues better and I kept the same file in a special folder, and also kept copies of the relevant emails on this subject in the same folder detail.
Not only did this help in driving specific issues through later post-mortem, but even for my study, where I was discussing these sort of issues to drive process changes or improvements, it would really help that I could recall specific issues, the conclusions, my feedback on whether there were specific improvements that could be made, and also had email to even correct people if they pointed out something that was different from what had actually happened (and you would not believe how many times something like this had actually happened).


Thursday, March 14, 2013

What is autonomic networking?


- The concept of autonomic networking follows directly from the automatic computing.
- The initiation of the autonomic computing was done by the IBM Corporation in the year of 2001.
- This concept has been brought in to the present world networking scenario in order to make the creation of self - managing networks possible. 
- Self managing networks are required for overcoming the complexity of the various networks (including internet) that is increasing at a very rapid pace. 
This is also necessary for the further growth of the networks i.e., beyond the network size that we have today. 
- Autonomic networking is a means for the management of the network complexity. 
- In future, it is quite a possibility that routers could not be configured directly. - A point will come when it won’t be manageable by humans. 
- Autonomic networking will also minimize the manual intervention to a large extent plus it will also cut down the dependencies on the operator. 
- NMS intervention will also be reduced. 
- A fully – fledged autonomic network is expected to be capable of the following:
Ø  Self – configuration
Ø  Self – protection
Ø  Self – optimization
Ø  Self – healing

- In traditional networking systems, the amount of configuration, monitoring and reporting to be done is very large and amount of routing is very less. 
- In the autonomic networking systems, things are just the opposite i.e., there is less amount of intent, feedback and reporting and routing is more along with the other operations such as discovery and autonomic interactions. 

In autonomic networking, there are 3 characteristics of the administrator interface:
  1. It is abstract
  2. Light weight
  3. Wide scope
- The increasing complexity of the network is viewed as a problem by most of the experts and that it might prove to be hindrance in its usability in the near future. 
- Number of PDAs, game consoles and smart phones is increasing day by day and these need an interconnection.
- Though such kind of pervasive computing adds features but it also increases the burden on the networking infrastructure that already exists since the number of tasks is so large that it is very difficult for humans to manage alone. - Another thing that adds to the problem is the cost of keeping a manual control on a number of devices in the infrastructure.
Another important aspect is the price of manually controlling huge numbers
of vitally important devices of current network infrastructures.
- An analogy to autonomic nervous systems is the autonomic nervous system
or ANS. 
- This system regulates all the functions of the body and its various organs.
- Autonomic network systems bear a close resemblance to the ANS.
- Autonomic networking is all about adding more intelligence to the network.
- A number of complex operations are required to be carried out such as admission control, authentication, billing, shaping, routing, policing, QoS prioritizing and video encoding for providing simple services to the customer. 

There are a number of problems in the way of network as mentioned below:
  1. The ever increasing size of the network.
  2. The heterogeneous nature of the applications and devices.
  3. Increase in the requirement of service quality.
  4. Increase in the user expectations.
  5. Ever changing requirements.
  6. Changing context
- Pre – defined context is kept in while designing networks with the traditional approaches. 
- Whenever there is a change in the context, it leads to more time consuming manual tasks. 
- Algorithms used today do not have the ability of detecting context changes and interpreting the policies. 
- Such manual management causes more loss and outages in the revenue of the organization. 
- In autonomic networking, the system itself optimizes the goals. 


Sunday, July 8, 2012

What types of documents one need for QA, QC, and Software Testing?


For every process, some documents are vital and in this article we have discussed about the type of documents required in the below mentioned three processes:
       1. QA or quality assurance
       2. QC or quality control and
       3. Software testing

First let us see what are these three processes? 

Quality Assurance


"Quality assurance is a process that involves implementation of planned and systematic activities in a quality software system or application so that all the quality requirements of the software system or application under question are met". 

It has also got the following attributions:
  1. Systematic measurement
  2. Comparison with a standard
  3. Monitoring of processes
  4. Associated feedback loop
  5. Error prevention
This whole process deals with two principles:
  1. Fit for purpose and
  2. Right first time

Quality Control Process


- It is a process involving a wholesome review of the quality of all the factors that have direct as well as indirect involvement in the production of the software or application. 
- This process is one of the best practices that are used for inspection of the software systems as well as applications. 
- The software products and artifacts are put through a visual examination.
- The developers or testers who are to examine the software system or application are provided with a list containing the description of the unacceptable software defects.
- The products and artifacts are visually tested and the defects are dug out and are reported to the management who are responsible for taking the action against software product release.
This process plays a great role in the stabilization of the software production process.

Software Testing


- Software testing is a self justifying term and is just like an investigation seeking out defects and flaws in software systems and applications. 
- All the stake holders get to know about the quality of the software system or application under test.
- Tools here used are nothing but normal testing techniques that are intended to dig out the bugs and errors. 
- This process verifies:
  1. Meets the requirements as stated in its documentation.
  2. Works in the desired way.
  3. Whether its implementation with same characteristics is possible or not.
  4. Satisfaction of the stake holders.
Now let us mention what all documents are required for all the above discussed three processes:
  1. First main document is the software requirements specifications document.
  2. Use  cases document
  3. Solution document
  4. Software design documents
  5. Test plan document: this document should contained detail description of the following:
(a)  Scope of the functionality the test case will test.
(b)  Expected outcome
(c)  Technique used
  1. Test cases documentation containing procedure as well as the obtained results.
  2. Business requirements documents
  3. Functional specifications documents
  4. Project member details documents containing information about the team members including testers, test lead, pm etc.
  5. Software testing schedule document.
  6. Traceability matrix: this document is used to check whether or not the test cases match with the requirements stated in the SRS.
  7. Documents which are specific to a particular organization for quality control.
  8. Discovery documents (only for quality control): this document states the business needs.
  9. Test reports
  10. Bug reports: this report includes all the missing, additional, wrong deviations in the functionalities or features of the software system or application.
  11.  Release report: obtained at the end of testing.
  12. Test scenarios
  13. Test case templates
  14. Test case form
  15. Logs
  16. Weekly status reports
  17. Test scripts
  18. Resolution
  19. Test bed
Business requirements specification (BRS) and software requirements specification (SRS) are a must for the quality assurance and quality control processes. 


Saturday, July 7, 2012

What are tools and techniques to monitor test progress?


Why do we need to monitor the test progress? What is the purpose of monitoring the tests we are performing? 
- The monitoring of the test progress is aimed at giving feed back and visibility regarding the test activities. 
- The information which has to be put under monitoring is collected either automatically or manually and this information might be used for making the measurements of the exit criteria like coverage criteria etc. 
- In some cases, metrics are also used to make an assessment of the progress being made by the tests against a very well planned project budget and development schedule. 

Tools and Techniques to Monitor Test Progress



Test metrics: These include the following:
-  Percentage of work done during preparation of the test.
-  Percentage of work done during the preparation of the test environment.
- Number of test cases run and not run.
-  Number of test cases passed and failed.
 Details of the defects.
-  Test coverage of code, risk and requirements etc.
-  A subjective measure of the confidence of the testers in the software product.
-  Dates of the testing phase milestones and deadline.
- Testing costs

1. Soon after you have drawn out your test plan, you need to constantly monitor the test progress along with the activities and time progress. 
2. Monitoring the time scales and the test activities together is termed as test monitoring. 
3. The purpose of test monitoring is to obtain a constant feed back.
4. The test monitoring makes all the test activities visible to the developers and testers.
5. The data that has to be monitored apart form being tested by counting the test cases can also be obtained using the sophisticated test management tools. 
6. With such sophisticated tools, it has also become possible to collect the data like an automatic output from another tool and that has already been formatted in to form of reports or data files. 
7. These data files as well as reports can be manipulated to present a flow of the test progress. 8. The above mentioned test metrics are usually used for tracking the progress of the tests towards the end of the testing phase which is marked by the validation of the test criteria.
9. Nowadays, test dashboards are in use because of their easy to use and understand interface which represents all of the relevant test metrics on single screen page and thus providing the maximum impact. 
10. This gained too much popularity in a short span of time since it saved a lot of time of the users who do not want to go through the large piles of data searching for just one key information they want. 
11. These test metrics are often presented in a graphical form.
12. While monitoring a testing process you need to look at the test progress through both a micro as well as macro perspective. 
13. The macro perspective involves determining whether or not the individual devices and servers are running smoothly as expected.
14. On the other hand, the micro perspective involves making sure that the customers experience pleasure while accessing and using your software system or product. 
15. These two types of perspectives can also be termed as the “engineering monitoring” and “business monitoring” respectively. 
16. Both these kinds of monitoring are equally important. 
17. Good testers always make it a point to monitor the progress of the tests they have put in to play on the software product. 
18. They do not consider their software system or application to be complete until and unless they have ran their software product through a couple of monitoring checks. 


Monday, May 28, 2012

What are strengths and weaknesses of Extreme Programming - XP?


The extreme programming is bound with some strengths and weaknesses that we are going to discuss in this article. Extreme programming was brought in to use during the era of nineteen’s. At that time it came to be recognized as one of the best agile software development practices and still holds the same reputation despite arguable views of its many critics.
Many different scale companies like small scale companies and large scale companies have been benefited by the use of this agile methodology i.e., the extreme programming. Over the years the extreme programming has guaranteed the customer satisfaction and has proved itself also. The software were delivered exactly they were required to be.

Benefits & Advantages of Extreme Programming


- The developers and programmers as well as the customers are empowered by the extreme programming so that everyone can confidently play up its part no matter at what stage the development process is. 
- The extreme programming has been well known for the spirit of team work it inculcates in the development environment. 
- Extreme programming as we know is an agile software development process based up on the releasing the software product frequently with every iteration of the development cycle. 
- Many other techniques like time boxing are also incorporated with the extreme programming to together make up a very efficient software development process.
- The extreme programming contributes greatly in the improvement of the productivity of the software.
- It also contributes in the introduction of the check points that facilitate the incorporation of the changes or modifications in the requirements at all the phases of the development. 
Customer is given a lot of empowerment in extreme programming. 
- This is so because it lies in the discipline of the extreme programming to maintain frequent and most possible effective communication with the customer. 
- Extreme programming as the term itself suggests that the process involves the beneficial elements operating at their extreme level.

All these positive points of the extreme programming are its strength. All these plus points make the extreme programming popular among its users.

Weaknesses & Drawbacks of Extreme Programming


Now let us discuss some of the weaknesses of the extreme programming since every process has some pros and cons. Critics have pointed out many potential drawbacks such as:
     1. Unstable requirements
     2. The user conflicts are not documented
     3. Extreme programming lacks an overall design specification

- The extreme programming has always been under arguments due to the above mentioned weak points.
- It has been claimed by the critics of the extreme programming that having a customer aboard can be a source of stress to some developers and programmers.
- Some have also mentioned this as a factor that can lead to micro management i.e., the whole development process will be governed by the customer who literally does not have any proper technical knowledge.
- In some cases, the requirements are expressed as automated acceptance tests instead of being expressed as specification documents. 
- In such cases, the retrieving of the requirements takes place through incremental.
- Some even believe that the extreme programming is meant for the senior developers only and that the developers with less experience or less knowledge cannot handle it.
- The lack of the detailed requirements documentation can sometimes lead to what is called the scope creep.  


Who benefits from extreme programming and how?


Extreme programming has been benefitting almost every one since its advent! Here in this article we are going to see who is benefited most from the extreme programming.
It enables the users to give sufficient feedback so that it can be further improved up on. It gets the whole team sticking around the project at hand and regulates effective development of the software. 

In extreme programming, whoever contributes in the development is considered to be an integral part of the whole team. The customer is considered to be the business representative here. The business representative is supposed to sit with the tem in their working hours and work along with them.
Very simple practices like planning and tracking are used to make decisions on what should be done in the next iteration and when it will be complete. The team is driven by the business values and the software is released in a series of small fully integrated releases only when they have passed some customer defined tests.
In extreme programming, the code is obsessively tested by the extreme programmers and developers who work together in pairs making an effort to continually improve the design satisfying the current development conditions. 
With extreme programming, the entire system can be kept in an integrated and running condition. The whole of the production code is written in pairs and worked up on together. The code is written in such a way that every one is able to easily grab the logic that has been implemented. 

Core Practices in Extreme Programming


The below mentioned are the core practices involved in extreme programming:
      1.   Whole team
      2.   Planning game
      3.   Small releases
      4.   Customer tests
      5.   Simple design
      6.   Pair programming
      7.   Test driven development
      8.   Design improvement
      9.   Continuous integration
     10.  Collective code ownership
     11.  Coding standard
     12.  Metaphor
     13.  Sustainable pace

Who all are benefited from extreme programming?


- By looking at these core practices one can easily see that the extreme programming takes care of all the aspects of the programming as well as of all the stake holders who are involved in the development process. 
- With the extreme programming the developers and the customers are able to see the exact picture of the software system or application and its work flow. 
- All the team members of an extreme programming team sit together and work up on the problem. 
It is beneficial for the whole development process to have a customer who is a real end user. 
- The main purpose of the customers is to define the customer acceptance tests which are then used to define the requirements and specifications of the system or application. 
- On the other hand the manager is considered to be responsible for the management of the external communication and the coordinating activities. 
- The contribution of every team member of the extreme programming team is unique in its own way and is the best that can be provided. 
- As such it is not necessary that only individuals with expert skills! But whatever they contribute is something special out of their abilities and skills. 

Two questions are taken care of in the extreme programming as mentioned below:
      1. What will be accomplished at the end of the due date of the software project?
      2. What is to be done in the next iteration?

These two questions are addressed by the following two activities:
      1. Release planning and
      2. Iteration planning

Above all,  the one that is benefited the most is the customer and after this comes the number of other stake holders. 


Facebook activity