Software Design archives - Quality Assurance and Project Management

Quality Assurance and Project Management:

software design

Nov 20 2009   10:00AM GMT

How your Web Application Performs on Various Browsers?



Posted by: Jaideep
Project Management, Software Project, web application, application performance, browser, web browser, software development, legacy software, developer, development team, tester, testing, software design, software requirement

You are in software development and in today’s world you can’t escape from most of your customer demanding either replacing their legacy software in use with new web application or the development of a new web application. Every customer wants to keep maximum leverage for its employees in terms of mobility, flexibility, easy usability etc. and that is why most applications in demand are web based.

Various stakeholders of the project get directly or indirectly activities assigned to them so as to make the project run and finish. The major role in web application development is that of development team. They should be very clear about the customer requirements – what browsers they want to use, what browsers they desire, what version of the browsers, future expectations etc. If these web based requirements are not crystal clear, it is going to create troubles not only for the developers and testers but for customer also. You can’t just dream and design, you have to have specific requirements in hand to develop an application.

Similarly Testers role is also quite prominent in validating customer’s browsers related requirements and ascertaining that all the browsers mentioned by customer (essential and desired) have to be checked for running the application completely.

This small issue can create a major backlog at a later stage. So it has to be handled right in the beginning before the start of development.

Jun 29 2009   10:00AM GMT

Outsource in a software project without losing control over it



Posted by: Jaideep
Software Project, Project Management, outsourcing, requirement analysis, requirement gathering, requirement freezing, software design, software development, software testing, documentation, project implementation, training, handholding, post implementation, Project Planning, project control, project execution, project component, project phase, project offload, project outsource

We learnt in earlier two posts about the strategic decision of a management to outsource a complete project or part(s) of a project depending on certain factors, and the factors respectively. In this post let us see at the various components of a project that are most widely outsourced or otherwise we can say these are the components of a project which can be outsourced. It is very less often that a project awarded to a company is totally outsourced.

We are talking about outsourcing an activity of a software project. The most important components of a software project can be listed as:
Requirement analysis, gathering and freezing
Design, development and testing
Documentation
Implementation, training and hand-holding
Post implementation support

These can further be broken into various sub-components under each component thereby creating a tree like structure to have a bird’s eye view of any project. Planning and execution for each phase or component comes next with control everywhere.

Outsourcing mainly is the resultant of constraints in an organization.


Feb 27 2009   9:54AM GMT

Software Quality vs Project Quality



Posted by: Jaideep
software quality, project quality, quality standards, quality measures, quality metrics, software metrics, Project Management, Software Project, customer requirements, software product, software design, business requirements, functional requirements, software delivery, Project Delivery, project execution, project initiation, Project Development, project implementation, software strategy, test strategy, test case, Test Plan, test scenarios, test results, fixing of bugs, project close-out, post implementation phase of project

The definition of QUALITY varies in different contexts. On one hand we talk of software quality that means adopting standards and measures to ensure the building of software product that meets all customer requirements (design, interface, business requirements, functional requirements etc.) and ready to deliver. On the other hand when we talk of Project Quality, we mean the standards and measures by means of building (or adopting) to ensure the success in terms of time and revenues of a complete project right from its initiation till the implementation stage that keeps continuing at post implementation stage also.

In context of software – the quality means – software strategy, plan, text cases, test scenarios, test results and fixing of bugs. Inclusion of quality in this context will vary from organization to organization and project to project (within an organization). This will ensure the successful building of software product ready for delivery.

In context of project – the quality would mean – managing quality standards and measures for a project right from its initiation to all stages coming forth. A project lifecycle in standard terms would comprise of Project Initiation, Project Planning, Development Execution, Implementation execution, Project Close-out, and post implementation phase broadly, which remains on-going till the software built is in use by the customer for a period of years.

The subject matter can continue on pages and pages, but the crux is – software quality is merely a subset of project quality, and even if we have world class standards in software quality, it does not ensure a successful project lifecycle.


Nov 28 2008   9:55AM GMT

How to Create, Build and Maintain Harmony between tester and developer



Posted by: Jaideep
software quality assurance, software testing, Project Management, software, software quality, Quality Assurance, software design, Software testers, SDLC, software qa, software deployment, developer, softwaretesting, STLC, tester, software requirement

Create’ means the first time effort to generate a harmony between a tester and a developer working on the same project. ‘Build’ is the next stage after create to harmonize the professional relationship between a tester and developer. This step will bring the strength in the relationship. ‘Maintain’ is not only the sustenance of this healthy relationship which can be termed as ‘sweet’ harmony, but also calls for an effort from both ends to ‘keep on improving’ this bonding. To create, build and maintain an everlasting harmony between the testers and developers, here are some tips:
1. Share: Sharing is a two way process. Both the sides need to share equally, transparently and openly. The development team needs to share the customer requirements, business rules, relevant documents, design plan, coding, system built. On the other hand the tester needs to share his observations on all these, and the results of his testing. Share problems, thoughts and success together.
2. Raise an Alarm: Tester and developer require raising an alarm in case of any shortfall in above sharing required from both ends. Developer also needs to raise an alarm in case of inadequate testing or if testing is getting delayed due to any reason.
3. Act Jointly: Tester should sit with the developers while they are on job i.e. designing system, and similarly developer whose product is being tested preferably should sit with the tester while he is testing the product. This support will not only strengthen the process and product but will make it more secured.
4. Avoid Protectionism: On the work front, be it of a developer or a tester, it is important to prevent the spread of protectionism and to promote transparency or openness across the organization. If this is not handled properly, it may lead to depression and incoherence across.
5. Accept Framework: Accept each other’s work framework and respect it by heart.
6. Resolve crisis: In case of any crisis on any front leading to adverse effect on the project, take all necessary measures jointly, timely in a coordinated manner. Be more than willing to act in this regard.
7. Tester is a bridge: Tester is a bridge between developer and customer for the purpose of smooth and defect free delivery of product to the customer.
8. Be a great contributor: To achieve great success, be a great contributor in your respective fronts.
9. Encourage: Encourage each other.
10. Remember: Always remember that you have joined hands to achieve a common goal. A good harmony always brings in the ‘success


Nov 12 2008   10:10AM GMT

SDLC-III: Software design



Posted by: Jaideep
software, software design, SDLC

Software design is the stage that comes next after freezing software requirements. The requirement specifications are given to the team of developers headed usually by a project manager. The project manager or the technical lead decides on the software architecture, OS, front end, back end, database etc. System design or ERD (entity relationship diagram) is prepared once the initial database design is clear with the table structures to be built in the database.

Software design is nothing but the conceptual design of the database, tables and table structures, relationship of various fields of tables with one another. Once conceptualized, it is discussed among the team, make any changes if required and then freeze it. Once the concept is finalized, the database is designed by creating tables and building relationships. The next phase that comes after is the coding.


Nov 10 2008   10:12AM GMT

SDLC-II - Applying security concepts to software design



Posted by: Jaideep
Security, software design, SDLC, security concepts

Security concepts will vary from software to software except few generic requirements that will remain standard for most of the softwares. The major varying requirements will be dependant on following factors:

  • 1. Software requirements - Based on the requirements specified by the customer and the design this can further be divided into two sub-categories as below:
  • a. Customer specific: As specified by the customer and suggested by the vendor representative. The vendor in this case may be in-house development team or an external agency. The representative can be the IT Head, software project manager or any senior position in case of internal team, or a dedicated project manager or project head in case of the external agency.
    b. System specific: The other major factor deciding on security concepts to be built in the software will be system design”. What architecture is chosen, what technology, what database, what front end etc.
  • 2. Risk Factor – The gravity of risk involved and what level of security is required will decide on the security features to be built in the software
    3. End User – What level or type of user is going to use the software
    4. Money Matters – If there are any money related transactions in the software will require a different set of security concepts.
    5. Statutory requirements – The outward or inward connection with other legal/non-legal agencies will formulate the specific security specifications. Also will depend on any statutory requirements to be met by the software.