Thursday 20 April 2017

XP – Extreme Programming

software development practice

Extreme Programming - XP is an agile technique of software development dedicated on providing the high customer value in the fastest possible way.

The traditional software development procedure is linear, with each stage of the development lifecycle requiring conclusion of the previous or the earlier stage. For instance, designing of the software starts only on completion of the entire program analysis, and coding starts only after end of the design. This concept of development works fine when customer requirements remain static throughout, but in practice, requirements change often and cause numerous editing of programs leading to mistakes and software ‘rot.’

Extreme Programming - XP shots the traditional software development procedure sideways. Rather than planning, analyzing, and designing in a linear manner, XP programmers carry out actions at a time throughout the software development Phase. The method stands resemblance to a puzzle with the development of many small iterations that make no sense independently, but making for a comprehensive package when combined. The biggest benefit of this methodology is the resilience it provides, permitting for easy integration of changes.

The Extreme Programming software development practice begins with planning, and all iterations consist of four basic stages in its lifecycle: Designing, Coding, Testing, and Listening.

The prevailing values that drives the Extreme Programming life cycle are frequent communication with the customer and among the team members, simplicity by simple understandable solution, everyday feedback through unit and acceptance testing, and the audacity to take on complications proactively and integrate testing and changes in the software development phase.

Planning

The first stage of Extreme Programming life cycle is Planning, where customers, clients or users meet with the software development team to build ‘user stories’ or requirements. The development team translates user stories into iterations that cover a minor part of the functionality or features required. A combination of iterations delivers the customer with the final completely functional product.
Programming team formulates the Plan, Time, and Costs to carry out the iterations, and individual software developer’s sign up for iterations.
One of the Planning method is the critical path method, grouping iterations essential for project progress in a lined fashion, and arranging for accomplishment of other iterations parallel to the critical path.

Designing

An iteration of Extreme Programming starts with Designing. The controlling principles of this phase are:
Emphasis on simplicity and not adding functionality in anticipation. Using systems symbol or standards on names, class names and methods, and approving on uniform styles and formats to safeguard compatibility amongst the different team member’s work.
Using Software Class Responsibilities and Collaboration Cards that permit for a parting from the traditional procedural approach and make probable object oriented technology. Such cards let all members of the project team to add ideas, and assemble the best ideas into the software design.
Building spike solutions or modest programs that explore probable solutions for a specific problem, discounting all other concerns, to mitigate risk.
Coding
Coding constitutes the most important phase in the Extreme Programming life cycle. XP programming gives priority to the actual coding over all other tasks such as documentation to ensure that the customer receives something substantial in value at the end of the day.
Standards linked to coding include:
Developing the code built on the agreed metaphors and standards, and adopting a policy of shared code ownership. Pair programming or mounting code by two programmers working together on a single device, aimed at creating higher quality code at the same or less cost.
Regular integration of the code to the dedicated repository, with only one pair assimilating at a time to prevent conflicts, and optimization at the end.
Testing
Extreme program incorporates testing with the development phase rather than at the end of the software development phase. All codes have unit tests to remove bugs, and the code passes all such unit tests before release.
Additional key test is customer acceptance tests, based on the customer conditions. Acceptance test run at the achievement of the coding, and the developers provide the customer with the consequences of the acceptance tests along with demonstrations.
Listening
The basis of extreme programming XP is a continuous scheme of customer involvement through continuous feedback during the development phase. Apart from the clients, the developer also obtains feedback from the project manager.
The basis of continuous feedback is the client acceptance tests. Each and every feedback of the client that specifies reviewed requirement becomes the base of a new design, and the lifecycle repeats itself. If the client remains satisfied with the test consequences the iteration ends there, and the design for the new iteration starts, which again trails the design-coding-testing-listening cycle.

References :


Friday 10 March 2017

Reasons behind Merger and Acquisition

software development companies

Introduction

Mergers and Acquisitions have always kept the attention of economists alive. Mergers and Acquisitions may well prove to be favorable depending on the strategies and approaches adopted, but it would not be factual to say that all mergers and acquisitions have been successful.

Motivations for Mergers and Acquisitions

Companies go for mergers and acquisitions for many reasons. Some of these reasons are good, in that the motivation for carrying out the merger and acquisition is to maximize the shareholder’s value. Unfortunately, other motives are bad, or at least questionable.

Theoretically, software development companies should pursue an acquisition only if it creates value—that is, if the significance of the acquirer and the target is superior if they operate as a single body rather than as separate ones.
If the expertise of both are amalgamated, it produces synergy.  A merger or acquisition is justified if synergies are linked with the transaction. Synergies can take three forms: operating, financial, or managerial. By applying the rules of synergy effectively, a merger can be made a success.

There are several reasons why companies pursue merger and acquisition. Few of them as explained as follows:  

Increasing capabilities

Increased capabilities might arise from expanded research and development opportunities or more robust IT services and operations. Similarly, many software development companies may want to combine to leverage costly IT services and operations.

Capability might not be a particular area or segment; the capability might come from acquiring a unique and innovative technology platform rather than willing to build it.  Mostly Biopharmaceutical companies are a hothouse for M&A due to the high investment necessary for successful Research & Development in the market.

Gaining a competitive advantage or larger market share

Many firms or companies decide to merge in order to gain a better distribution or to build enlarge the network. A company might want to expand into different market segments or the markets where alike company is already operating rather than starting from the scratch, and so the company decide to merge with the other company.

This business network gives both companies a broader customer base overnight.

Synergy

The commonly used word in Merger and Acquisition is synergy, which is the idea that by combining business activities, performance will increase and costs will decrease. Essentially, a business will attempt to merge with another business that has complementary strengths and weaknesses.

Diversifying products or services

Another reason for merging and acquiring companies is to complement an existing product or service. A company that merges to diversify may acquire some other company in order to reduce the influence of a specific business's performance on its profitability. Two companies may be able to combine their products or services to gain a competitive edge over others in the market. Companies willing to sharpen focus often merge with other companies with deeper market penetration.

Cutting cost

When two companies have similar kind of products or services, merging them can create larger opportunity to reduce or cut down cost. When companies merge, often they have an opportunity to reduce operating costs by integrating and restructuring support functions.
When the total production cost of services or products is lowered as there is increase in the volume, the company thus maximizes total profits.

Growth

Mergers and Acquisitions can give the acquiring company a chance to raise market share without having to do work by themselves - instead, they can purchase a competitor's business for a value or a price. Usually, these are known as horizontal mergers.

Eliminate Competition

Many Merger and Acquisitions permits the acquirer to eliminate upcoming competition and gain a larger market share. The problem with this is that a large premium or effort is usually needed to convince the aimed company's shareholders to agree to take the offer.

References :

Wednesday 8 February 2017

Counter Measures of Popular Network Attacks

software companies in India

For the first few decades of their presence, computer networks were mainly used by university researchers for distribution of e-mail and by corporate employees for allotment of printers and other properties in all organizations including software companies in India. Under these situations, security did not get a lot of consideration. But now, as millions of people are using networks for their everyday use such as banking, shopping, and filing their tax returns, network security is approaching on the horizon as a potentially huge problem. Because all their regular activities are data sensitive means data should not be changed.

ATTACKS AND THEIR COUNTERMEASURES:

A. Mac flooding: 
MAC flooding is a technique employed to conciliation the security of network switches. Switches maintain a MAC Table that maps distinct MAC addresses on the network to the physical ports on the switch. 
Counter measures: To stop MAC flooding one of the subsequent features should be construct in switch for asp.net software companies India. 
Port security: Post security should be arranged which bounds number of MAC addresses that can be learned on ports linked to end stations. 
Implementations of IEEE 802.1X suites: It often permit packet filtering rules to be installed explicitly by an AAA server built on dynamically learned info about clients with the MAC address.
B. Session hijacking:
session hijacking, also known as cookie hijacking is the use of a valid computer session sometimes also called a session key to get unauthorized access to information or services in a computer system.  
Counter measures: There are numerous types of countermeasures which are listed underneath: 
Encryption: Banks and e-commerce services should use this method because it stops sniffing style attacks for c#.net software companies in india. Some user services make extra checks against uniqueness of the user. 
String as Session key: This stops attacker to guess valid session key over Brute Force attack. 
Reinforcing of Session ID after a Successful Login: This method stops session addiction, because attacker does not recognize the Session ID of the user after she has logged in. 
C. IP Spoofing  
IP spoofing, also known as IP address forgery or a host file hijack, is a hijacking method in which a cracker masquerades as a reliable host to conceal his identity, spoof a Web site, hijack browsers, or get access to a network. 
Counter measures: The countermeasures are given as under  
Encryption and Authentication: This technique is implemented in IP V6 that eliminates current spoofing threats for c#.net software companies India. There should be proper authentication process in place. 
Router filtering: Spoofing can be stop at router level by implementing ingress and egress filtering. Access Control List should be maintaining to allow only trusted IP to interact with your network.
D. Denial of Service Attack  
Denial-of-service (DoS) attack is an attempt to make a machine or network resource unavailable to its planned users, such as to temporarily or indefinitely interrupt or suspend services of a host associated to the Internet.
Counter measures: The DOS [3] attack has subsequent counter measures, 
Smurf Attack: This form of an attack includes sending Internet Control Message Protocol (ICMP) or ping requirements to numerous Internet Protocol (IP) broadcast addresses. All of these messages have a spoofed source address of the envisioned victim. The hosts getting the ICMP echo request with accepting it reply with an echo to the source address, which in this case is the objective of the attack. The weight of this attack is thus effectively increased by the number of replying hosts. If the attack took place on a multi-broadcast network there could possibly be hundreds of machineries to reply to every packet sent. 
UDP Flood: A UDP flood, also known as a fragile, is a partner to the Smurf attack. This is founded on UDP echo and character generator. It practices a forged UDP packet to join the echo service on one machine to the chargen on alternative. These two machineries then practices all accessible bandwidth, sending characters back and forth among themselves. 
SYN Flood: A SYN flood uses the TCP standard 3-way handshake protocol. The attacker starts a connect request to the server and then overlooks the acknowledgement (ACK). This forces the server to delay for the ACK from the attacker, worsening time and resources of asp dot net software companies in India. A server can process a fixed number of requests at any given time and so this form of attack can efficiently block all legitimate traffic. 
With the overview of computer network attacks and their particular countermeasures can help us in safeguarding our data and system from hackers.