Thursday, January 27, 2011

Assignment 2 / task 2


Software Development Services;

Software Development Services which is adopted in the Knowledge Base Sdn. Bhd has some similarity if compared to the software process model that we have learned in class. Base on the both software process model, both are similar  in term of costs, productivity, development and duration. The software development lifecycle in this case are well planned and follow the order.Moreover with their advanced skills, they ensures that their project is completed in less time, for less money.


Offshore Delivery Model

·         The project goals are well defined
·         organizational policies and procedures are consequences
·         client should be very clear about what they expect and it should be conveyed in clear definite terms to the service provider.
·         This is suitable for software consulting and development companies or IT departments of large business houses who like to have an offshore development team or need resources on a short-term or long term basis.

Advantages
         
  • Outstanding results :  deliver excellent results with achievement that’s proven and well known.
  • Management : Management skills of organization  during the course of projects very important to reach the goals and objectives of the project.   Understand the specifications and come up with a detailed design. 
  • Costs effectiveness
  • Understanding the requirements/specifications clearly.  
  • Interact directly with the clients to accommodate any changes, if there are any, so as to minimize/eliminate last minute changes.
Weakness

  • Poor understanding of the capabilities and limitations of their own computing environment.
  • Difficult to break down the system in early stages of development.
  • Can lead to misunderstanding because commonly users/customer not sure what they want.
  • Failure to create a practical requirements change management process will only cause rework and stress.

Onsite Delivery Model

Advantages
  • Direct dealings with the client: Direct interaction with the client is possible through the onsite center. So no possibility of communication gap. Also the service provider gets a better picture of the client’s needs.
  • Access to the most excellent resources: Client can have access to the best technology, skilled manpower and equipment possible made available to them by the offshore development center.
  • Great cost benefits: Cost savings resulting from majority of the work being outsourced to the offshore development center where the resources are comparatively cheaper.

 Hybrid delivery model

This model, a combination of both onsite and offshore, is the best of both worlds, and results to deliver results at a reduced cost. Also known as the dual-shore model. Work on fixed price model and when the project scope is not clearly defined.  They will do requirement studies, design and development, while interfacing directly with clients.

Advantages
  •  straight customer communication : Direct interaction with the client is possible through the onsite center. So no possibility of communication gap. Also the service provider gets a better picture of the client’s needs.
  • Lower Cost : Provides customers with the lowest possible total cost of ownership
  • 24  hours  availability & productivity: Round the clock continuous work cycle becomes possible by making the best possible use of the time-zone difference.
  • Optimized resource and process management: Consistently and over time enables the most favorable operational efficiencies and resource reductions
  • Balance and optimization of both offshore and onsite delivery models

Thursday, January 13, 2011

Assignment 2 / Task 1


Increment Modal

The incremental model is essentially a series of waterfall cycles. One variant is shown in Figure 2-3. The requirements. It’s also known at the beginning of the project and is divided into groups for incremental development. A core set of functions is identified in the first cycle and is built and deployed as the first release. The software development cycle is repeated, with each release adding more functionality until all requirements are met.





CharacteristicsStrengthsweaknessesApplicability
Provide progressively more functional for the customer.
Each linear sequences produces deliverable “increments” that is similar to the increments produced by an evolutionary process flow.
When incremental model are used, basic requirement are addressed but supplementary features remain undelivered.
Staffs are unavailable for a complete implementation by the business deadline that has been established for the project.
Combine elements of linear and parallel process flow.
Early increments can be implemented with fewer people.
Require active customer participation.
Core product is well received, additional staff can be added to implement.
Applies linear sequences in a staggered fashion as calendar time progresses.
Increments can be planned to manage technical risks.
Requires good planning and design.
Modification at the core product to better needs of additional features and functionalists.

Spiral Model

The spiral model was developed with the goal of reducing risk in the software life cycle. It combines elements of the waterfall, evolutionary, and incremental models, and depending on how it is implemented can strongly resemble any combination of the others.





CharacteristicsStrengthsweaknessesApplicability
Also a hybrid model that support process iteration
Risk reduction mechanisms are in place.
Costly.

Internal development of large systems.

The process is represented as a spiral, each loop in the spiral representing a process phase.
Supports iteration and reflects real-world practices.
Requires expertise in risk evaluation and reduction.
For smaller projects, the concept of agile software development is becoming a viable alternative.
Risk is explicitly taken into consideration.
Systematic approach.
Applicable only to large systems.
The US military has adopted the spiral model for its Future Combat Systems program.


Prototyping Model

The evolutionary model, like the incremental model, develops a product in multiple cycles. Unlike the incremental model, which simply adds more functionality with each cycle, this model produces a more refined prototype system with each iteration.



CharacteristicsStrengthsweaknessesApplicability
Evolve to the actual system.
Stakeholders can have more understanding what is to be built when requirements are fuzzy.

Stakeholders unaware that the prototype is held together haphazardly.

Can be used as a stand-alone process model.


Help to develop increasingly more complex versions of the software.
User is actively involved in the development.
Long-term maintainability.
It can also be used by end users to describe and prove requirements that developers have not considered.
Can be animated.
Quicker user feedback is available for better solution.
Time consuming is considered when the documentation.



Extreme Programming
Extreme Programming is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development it advocates frequent "releases" in short development cycles, which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted. Extreme Programming improves a software project in five essential ways; communication, simplicity, feedback, respect, and courage. Extreme Programmers constantly communicate with their customers and fellow programmers.

CharacteristicsStrengthsweaknessesApplicability
Pair programming - Ensures quality code. One programmer is thinking whether the approach will work, about testing, or ways to simplify the code while the other programmer writes the code.

XP allows you to focus on coding and avoid needless paperwork and meetings

Difficulty coordinating larger teams.

Extreme Programming (XP) was created in response to problem domains whose requirements change

Simple design - Keep the design as simple as possible for the moment and don't add features that ar not needed for current functionality.

They can coordinate your schedule easier. XP creates working software faster, and that software tends to have very few defects.
Can result in a never-ending project if not managed properly.

XP was also set up to address the problems of project risk. If that system is a new challenge for your software group the risk is even greater.
Small releases - There is a short time between versions.
For management, XP delivers working software for less money, and the software is more likely to do what the end users actually want. It cuts risk in a couple ways
Tendency to not document thoroughly.
XP is set up for small groups of programmers. Between 2 and 12, though larger projects of 30 have reported success. Your programmers can be ordinary