Saturday, October 16, 2010

Task 9.1

Meredith Levinson, a senior writer for CIO magazine published a podcast with a purpose of revieing best practices of software testing. She believes that the testing phase of software development is the most overlooked yet a critical success factor of a system development.
  1. Respect to your testers: Recruit testers that are experts in coding and system development. This ensures that the system developer would respect the skills of the testers and testers may test with precision and well mannered.
  2. Raise testers awareness of their value: Highlight the deficiencies early on and let the tester knows the value of the system to increase their dilligence and performance.
  3. Co-Locate testers and developers: Putting them together improves the communications which ensures that the system requirements are well known by both of them. This will avoid conflicting ideas and maximising testing results.
  4. Cross-train testers and developers: Cross training testers and developers with both developing and testing skills enables both groups to understand what it feels like to be in each other's shoes. This will make both groups to approach the system with broader understanding and improving the test results.
  5. Tell programmers to relax: There are always conflict between developers and testers. Programmers tend to have their ego get the best of them when testers come to find faults and bugs in their systems. Managers must give understanding to developers that it's the tester's job to find faults in the system and it's not in the developer's fault.
  6. Set up independent report structure: Do not let the testers report to other groups other than the project manager. This includes the developers.
  7. Centralised Test Groups: Centralising test groups ensure that testers learn the testing together with a standardised method.
  8. Dedicate testers to specific systems: Focusing one tester to a function ensures deep understanding to that specific function.
  9. Give testers business training: Testers could learn better on how the business works and gain better understanding on how the system should support the business.
  10. Involve business users in testing: Involving business users in testing phase will ensure that the system meets the specific business requirements. It also helps them to let the developer know about their learning curve of using the system.
  11. Involve network operations: This enables the IT department to plan the system implementation to enable the implementation phase to proceed smoothly.
  12. Build a lab to replicate the business environment: This ensures that any risks that may occur during the development can be easily rectified within the lab so that the actual business process is unaffected.
  13. Test in a lockdown environment: This to ensure that developers do not modify the codngs when Quality Assurance people are testing the system. This will ease on keeping track of the code changes when testing are conducted in an isolated condition.
  14. Test the old and the new: This to ensure that previous systems are compatible with the new one.
  15. Code Coverage: It is used to test all the code changes done by the developers to ensure that the system is running well to specifications before and after code modifications.
  16. Scan source codes for problems: Ensure that all the codings are bug-free.
  17. Identify Patterns: Use a tool to identify patterns that may lead to defects.
  18. Establish Quality Checkpoints: Milestones can be used to easily identified quality flaws at different points of the project to ensure that all problems are identified early and cost-effective to the project.
  19. Apply equivalent class partitioning: Mathematical technique used by testers to identify additional functionalities of the systems that business analysts often overlooked.
  20. Develop a contingency plan: Murphy's law states that anything that can go wrong, will go wrong. Having a contingency plan ensures that the project have a mitigated risks that may occur to identify project problems and easily solve them if occur. This ensures cost-efficiency within the project.
For more detail, go to www.cio.com

Wednesday, August 18, 2010

Task 2.1

Our team is made up of 5 very different and very unique people. There's me, Li Lian, Aaron, Stephanie and Jason. Each of us have our own takes on how something is to be done. Even though we each have our own ideas, we are all willing to work together to come up with 1 ultimate answer. This to me is what makes a good team. The willingness to cooperate. So therefore, yes, I have a good team.

A good team is one that is made up of peers that are cooperative, understanding and hardworking. To be effective in a group, one has to be open to suggestions, has to be able to communicate well and most of all, to be punctual for meeting and to finish work assigned as best as they can.

The team will thoroughly discuss the question, come up with several options for an answer and then decide on which is best. This way, we weigh all our options well before dismissing them.

Communication is the key to any relationship. To make this team work, we have all got to listen to one another thoughts and opinions, we have all got to voice out our ideas and more importantly, we will all respect each other.

Sunday, August 1, 2010

Task 1.3

The second chapter of Donald Norman's The Invisible Computer is a chapter that explains about the evolution and paradigm shift of information technology innovations from technology-centered to human-centered technology.

He started by explaining how his associate, being a highly resistant person to technology happens to purchase a computer to help her do just one task at work. He concludes that no matter how complicated technology is, or how expensive that product is, it is very worth the risk when the benefits outweigh everything.

He explained that technology and consumers have a lifecycle, from the birth of that technology to the death. The deaths can occur simply because the consumer lost interest or due to a destructive new technology. He explained that technology are introduced by its functionality and features. Few people may still have no trust in that new technology but as more and more people try, the more market penetration that products become. Consequently, the technology reach its peak adulthood where people use the technology to assist them in their work or tasks, or daily lives. Until eventually, it declines as people require more functionality to solve more issues. When a new technology introduced to solve those additional problems. The technology lifecycle comes to an end.

He also explained that technology is shifting to provide better products for the consumer, rather than just the technology itself since more people demand more performance and functionality.

He explained The Three Legs of Human-Centered Product Development in which products consists of the following:
  • Technology
  • Marketing
  • User experience

Saturday, July 31, 2010

Task 1.1

I have tried to create an ODBC connection. I followed the instructions provided in the video tutorial in Moodle. However, the process ends up generating an error message saying that the connection failed. The following screenshot is the screen that was generated from the ODBC connection error.

I have speculated some reasons that might cause this problem, one of them is my computer’s lack of ability to connect to the ODBC server. Other reason is that the internet connection does not support enough bandwidth to let my system connect to the ODBC system. The third possibility might be that the server denied my access to the databate, or The fourth possibility is that the SQL server may no longer exist when I undertake this process.

I know that ODBC enables us to connect to a database server hosted externally from the local client. This enables users to work by connecting to the database from anywhere with an internet access. But I cannot vouch for that theory myself since my trial of using the ODBC connection failed.