In the paper discussed by the author, he describes about his experience in a small cycle development groups. He has explained initially about some of the generally used lifecycle models with their phases, merits and demerits. Then he brings himself in a small project (Cell phone game) with a group of four members, sharing his experience about the project. He evaluates the importance of team work and individual member's involvement for the success of project. In the conclusion part he has shared his experience by bringing down the strengths and weakness he analysed in the (cell phone project).At the end he has recommended certain suggestions for pursuing small development projects. He brings down the importance of agile process methods, which are more flexible and effective for small groups. Throughout his paper he evaluates the need of customer satisfaction and the importance of proceeding the project in a right way by choosing the affordable model, as per the needs and project requirements.Lifecycle and Project management approaches:
The paper deals with some of the most vitally used lifecycle models and project development approaches. It fairly deals with life cycles such as The Waterfall model, The Spiral model, The unified process and at last about the Extreme programming. They are explained in such a way as follows:Waterfall model:
Author addresses waterfall model as the oldest software paradigm and also as systematic model due to its structural and logical process which has been maintained well throughout the software development process.
This model is the best one for development, if all the business requirements are well known in the initial phase of the project.
Issues to be considered:
- Sudden change in requirement will cost them a disaster, as its really hard for the developers to switch back to the requirement part and thereby to reschedule time and cost.
- Blocking state issue: This issue is an critical draw back which purely stagnates the process of software development, by making an interrelated relationship on the process thereby making one process relying on the other.
- Future enhancement is highly not possible.
- Customer gets feedback very rarely.
Then the author deals with spiral model, which actually uses the systematic method of waterfall model .The major advantage in the spiral model is the implementation of iterative way of developing requirement prototypes and the uncertainty overcame by producing prototypes by an pass method. Some of the merits and demerits faced by the customers and process are:
- It has the ability to handle evolutionary project.
- Risk assessment is processed early on the phase, so the defects can be reduced.
- Whenever the assessment of risk goes wrong, it might lead to more problem.
Unified process is the blend of earlier perspective model along with the principle of agile programming. Unified modelling language is used in design and development phase. It creates an ease in the developers to understand the entire process, as it can help the developers to visualize the scenarios much clearly as they depict in diagram.Agile Process:
Agile process is purely an inspirational model of the waterfall model. Extreme programming (XP) is one of the most successful agile process which fairly acts on to overcome most of the uncertainties. It firmly works on customer satisfaction by following work based on stories, which is actually an index created by the customers. This process prefers to produce product as small chunks rather than producing the whole product, thereby allowing the customer to be in tact with project and creating an ease to respond any changes at point of time.
Major advantages of the Extreme programming are:
- It allows the developer to concentrate much on the coding part by avoiding the unnecessary document works and team gatherings.
- It offers customer with the fast product delivery with negligible defects.
- It is capable of producing a well defined product with the low expense and thereby satisfying the management and end users.
Dynamic system development methodology is an agile process. It addresses some the failures which is faced by the software developers and the customers. The most important pre-requisite for this process is proper communication and co-operation with developers and customers. Benefits in DSDM are users more likely to take the ownership of the system and the risk of building the wrong system is reduced.ref()SCRUM:
It is one of the agile process, which aims to overcome some of the uncertainties which generally prevails in the other software development process. It purely relies on self organising team which does not have any team leader to lead activities. Scrum uses sprints, which is actually called to iterations which holds time spans for each of it. Scrum process maintains product and sprint backlogs for maintaining each and every log entries. Scrum uses an controlled mechanism, thereby capable of managing the unpredictable issues .
Comparison of lifecycle models with Some agile process.
In this paper author has explained some of the life cycle and agile methods. Each of the lifecycle and agile methods have their own process methods, merits and demerits. They are discussed below:
It's a known fact that for any of the problem there can be several solutions, likewise for each of the lifecycle and agile methods approaches differ. SCRUM and DSDM are the two agile methods which will be discussed with the lifecycle process in this comparison section.
Agile methods in general are highly known for their process speed and team member involvement. When we use waterfall or spiral model in a project for development, the speed of product delivery is relatively much lesser than what an agile method could produce. The Agile methods in particular are well known for its flexibility(i.e)In SRUM and DSDM the planning for the final product will be just made as it proceeds .So whenever there is some or the other change made by the customer ,they will be sorted out and as per the change final product will be constructed. By this strategy the customer can achieve his/her product in an expected way. But in terms of the Waterfall model, which is sequential in its process decides the final product in the initial planning section itself. So whenever there is any change made by the customer in between due the model inflexibility the entire process leads into disaster. In the Spiral and waterfall model project plan, project scheduling and cost estimation are predicted during their initial phase of the project. In Agile process (DSDM) it specifically uses a process feature called "Time boxing" and Sprints in SCRUM. In this the process scheduling is made in small spans and thereby one will be followed by the other in a timed interval. So in this method scheduling will set during project. Customer satisfaction is always considered to the best goal for any developer and development methods. So in this case the response given by the development team to the customer is highly an important factor to be considered. Team which undergoes waterfall model are very less responsive compared to the spiral model. Comparatively SCRUM and DSDM are highly responsive than the lifecycle models(Waterfall and Spiral).Since the response rate is high from the agile process methods, the possibility of getting customers feedback increases, thereby chances of reducing risk increases.
It's a well know fact that team work plays a major in a product's success. Each model as its own rate and standard on relying its success to the team's work .SRUM and DSDM rely its success more on team work compared to the life cycle models. In SCRUM customer belongs to the team itself, working together makes the team more involved to the project, thereby resulting in an effective and efficient outcome. In DSDM team members are empowered and so each its team members are authorised to make an effective solution. Waterfall and spiral are not that effective to make their team members to be much involved like other agile models.
On a whole, when the probability of success is compared with in this models, agile process holds the high success rate compared to the spiral and waterfall model.
Evaluating Team work:
The author himself puts him in a small development project to gather the experience about the whole scenario as a team. This project is about creating a gaming software, which should be error free and to make it an successfully working one.
It's been discussed that the whole project was laid out for the team, which is actually a best idea, by which the members in the team are guided in such a way that the picture of the entire scenario can be visualised and thereby each and every sequential process can be known to all its members.
Communication is one of the most important aspect in any development process , when comes to team work. Whenever you work as a team and if its member's synchronization is not good, then the interpretation will never go in a good project's favour. Best team always have its best members. Members are so called to best when are highly co-operative and involved. Team work's simple principle is ,more can be achieved as a group rather working individually. Most important merits involved in the team work are:
- They highly enhance creativity, thereby by coming up with many solutions for a problem and selecting the best of it.
- The chances of achieving extraordinary results increases with best of the team skills and contribution.
- They can boost the speed of the project by splitting the work equally and by working parallel to achieve an ultimate result.
In general a small development team does not have a team manager, which is considered to be a drawback. There are some agile process which actually run its team without team leaders, which is not advisable all times. In this paper the project was made by the students who are probably without any experience. So a team with in experienced members definitely requires a guidance and also someone to look after them. So it's always advisable to run a team with a team leader. In this Game development project, four members were made in a group and the work was actually split in such a way that each of its member undergo their own task (i .e)the task was allotted to each of its member. The main motto behind it was to bring in a team work with proper communication and unity, which is very mandatory for achieving a fruitful result.Critical Evaluation
In the discussion made by the author in his paper, he has explained his experience and views on the small project development groups. Author himself has involved in a small product development project. The project is about developing a game with a set of team members in a restricted time limit.
The team starts the project initially with no requirements given to them but with some restricted amount of time. This gaming project faced some problems due to some improper decision on selecting the development process. Though the author has not specifically mentioned about the development model used in this project, the flow of process from his discussion seems to be like an waterfall model.
It's a known fact that waterfall model suits quiet well in the smaller projects but it as its own disadvantage due to its flow. Though this model mandates use of undefined process, its linear and sequential procedures tends to be its largest problem. In this project, the process starts by defining the system, building the system and finally ends by testing the system.
In the project as per the author's discussion ,the major problem faced by the team was
- The amount of time spent by the team on designing and planning was more compared to coding and testing.
- No test was made until the team started with the coding part.
- Since they faced lot of modifications in design part during the construction phase, the team faced numerous difficulties in resulting with an expected product functionality.
In my point of view this problems could have been fairly handled if the team would have opted a better model for their development. Since it was waterfall model the flow of process dint afford the team to work flexibly (i.e) in the waterfall model requirements, planning, cost estimation, project scheduling and final product date and other predictions will be fixed in their initial phases . So the amount of flexibility given by this model to the developers will be very low and thereby turning out the developers to proceed with an process oriented way rather than much suitable product oriented way. This sort of issues can be dealt much better when the agile process methods are made in use. In SCRUM process ,sprints are used which are nothing but separate time slots for each task. There will be many number of sprints for a single project depending upon the requirements. Each sprint holds its own task and work as per the description .Sprints also as its part in organising team meetings for providing regular feed backs to the customer.
As per the authors discussion problems faced in this project are :spending more amount of time on planning and designing part, issues faced due to the sudden modifications in designing phase ,improper testing and time complexities .This kind of issues can be sorted out well by the agile process methods. The most visible flaw traceable in this project is the way their team as handled the testing part .Testing is one of the important part in any of the product. Since the team failed to adapt a good testing strategy, they were pushed to struggle with an moderate results. Author have also recommended agile process methods , which are highly capable of facing the sudden changes in the development process. It's been also recommended to work as team by exhibiting at most involvement in their task, thereby achieving an effective result.