Agile Methodologies In Web Programming
Software firms that involved with developing web application are lacked of well-defined development process. Many development methods have been proposed for developing web application in these firms. However, these methods have some limitations. This paper aims to identify the agile development methods that are suitable for small development teams and determine the enhancements needed to get high quality web application. In order to achieve these objectives a comparative study was conducted on the suitable agile development methods that have been selected. Comparisons were made according to a set of criteria that include development process, project management, requirement, testing and design. The findings of this paper will be used as baseline for building a new measurable web application development methodology for small software firms Agile Programming Methodologies organize to limit the risk by creating programming in shorter time boxes called iterations. They stress genuine – time correspondence, and give inclination for working Software which fulfills all partners. They give less conspicuousness to documentation, when contrasted with different techniques. Configuration Patterns have gotten a ton of consideration eminently from the Object-Oriented world as a method for configuration reuse. Configuration Patterns make it simpler to reuse fruitful plans and models by giving answers for basic outline issues at an immaterial level. A rundown of Design Patterns are accessible that can shape the reason for making plans valuable for new creators and to manage reconfigurable outline. By joining the application and execution exercises to the extension and changes of this rundown, one can improve those exercises appropriate to the outline network.
Introduction
Web-based applications differ from other traditional applications as is it known to be of high reliability, high usability, more secured, incorporator advanced technologies, takes a shorter time to market, have a shorter product life cycles and required continuous maintenance. Agile Methodologies is a name alluding to an arrangement of practices and procedures for programming improvement that were made by experienced specialists. The standards rousing AMs were formalized in 2001 in the "Agile Manifesto". The principle objective of AMs is to expand the capacity to respond and react to evolving client, business and innovative needs at all authoritative levels. A few programming organizations are moving to Agile programming advancement to enhance quality and profitability and to lessen conveyance times. AMs are regularly presumed to be valuable for driving the advancement of noncritical frameworks under dubious or evolving necessities. This is exactly the context of most Web applications. We call “Web application” a system that makes use of Web browsers – possibly running on mobile devices – to interact with the user. So, a Web application spans from simple or complex Web sites to mobile apps, to custom client server systems built using this approach.
Agile development methodologies
Generally Agile Development Methodologies consider three groups of stakeholders. One group is the software customer, the decision maker with authority to pay for software. Second group is the software users, the persons or organizational units who directly either use the output of the software, or provide the input to the software, or both. Third group is information systems personnel who develop or maintain software. This group may be centralized or distributed within the organization that has users working with systems implemented with software or external to it. Software development creates new software, whereas software maintenance deals with existing software. Software evolution is manifest in some kinds of changes over time in software. While agile methods have been promoted for software development, their applicability in software maintenance has been noted. Out of all the agile methodologies, eXtreme Programming and Scrum are considered the most popular ones, which are briefly described below.
eXtreme Programming
eXtreme Programming (XP) has evolved from traditional Software Development models which cause the long development time frames. XP is organized around short iterations. The phases that are involved in the eXtreme Programming are, Exploration phase, Planning, Iteration to Release, Productionizing, Maintenance and Death phase. In the Exploration Phase, the customers write out the user story/story card that they wish to be included in the first release. A user story is an arrangement of sentences that the end client needs to accomplish. Arranging Phase sets the need arrange for these accounts, and a concurrence on the substance of the principal discharge. The software engineers gauge how much exertion every story requires and as needs be give the calendar. Emphasis to Release stage incorporates a few emphases of the framework before the principal discharge. The planned set can be part into various cycles in Iteration and Release stage. In the Productionzing stage, new changes may in any case be settled on and choice must be gone up against whether they are to be incorporated into the present discharge. Next is support stage which may require enrolling new individuals into the group. In the last stage, viz. , Death stage, no new stories are to be executed.
Scrum
Scrum is an agile technique that spotlights on undertaking administration. The fundamental thought of the scrum is that frameworks improvement contains natural and specialized factors that are probably going to change amid the procedure. Scrum has three stages
- Pregame
- Amusement
- Postgame.
Pregame: Pregame thus contains two stages Planning and Architecture/High level outline. Arranging stage incorporates the meaning of the framework being produced. Engineering/High level outline incorporates the abnormal state plan of the framework including the product design dependent on the present things in the item accumulation.
Diversion: It is the advancement stage in which the framework is created in runs. Dashes are iterative cycles where the usefulness is upgraded to create new additions.
Postgame: It is the conclusion of the discharge which is entered when an assention has been made that natural factors are finished. In the following area we clarify the advancement and fundamental parts of Design Patterns.
Agile Processes for Web Development
Web applications are constantly changing, have short development cycles and built by a small multidisciplinary team (3 to 10 people). Web applications present important characteristics that must be addressed by software processes and these applications have to be delivered for the clients within time constraints. The organizations continue to move toward the development of web applications and they assign such projects to small teams of qualified developers. Web applications demand faster time to market and continual integration of new requirements. Therefore, such demands have increased the popularity of agile processes which let teams increase productivity and increase organization’s responsiveness. The XP focuses on small teams and replaces paper-based documentation with face-to-face communication. As the development organization grows, the time spent in exchanging product knowledge and training new people increases and often renders XP unsuitable. Adopting agile in web development is a process of continuous learning and improvement. The transition to agile requires hard work to successfully deliver quality web applications and improve quality of team members. The association should start taking a shot at group building and figuring out how to function better over the groups. Grossman, proposed that, the XP bode well as an advancement technique in multidisciplinary and different web improvement condition by receiving all of XP rehearses. This condition incorporates assorted and appropriated groups, requires close coordination with multidisciplinary aptitudes to make advancement process more receptive to evolving necessities, diminishes cost and time and builds client fulfillment. Sampaio, portrayed an agile procedure for web improvement (XWebProcess) in light of XP. The XWebProcess utilized for building quality web applications in powerful way and appropriate to web advancement in measurements, for example, necessities gathering, UI outline and testing.
Agile for small software firms
A. Suitable Agile Development Methods for Small Development Teams
The most appropriate agile development methods to be used for small development teams are XP and Scrum because the development team size recommended for both is suitable for small sofware firms. Furthermore, these two methods were suggested to be used for small development team by many researchers such as Alite and Spasibenko, (2008), Qumer and Henderson-Sellers, (2008) and Qureshi, (2011).
B. Enhancements Needed
XP fulfills over 80% of the improvement procedure subcriteria. Scrum just satisfies 20% of advancement process sub-criteria. Be that as it may, the two are prescribed to be utilized for little improvement group going from 2 to 12 individuals. Likewise, XP and Scrum utilize iterative and fast improvement style and along these lines, accelerates advancement process. The aftereffects of the other examination criteria are venture administration, necessity, testing and plan. Scrum centers around the administration of the procedure more than XP. Be that as it may, the two do have not a particular estimation program to guarantee the nature of the item and process. Utilizing estimations inside the advancement procedure, empower deformity to be decreased, which thus limits time and revamp of the improvement life cycle. Both XP and Scrum are great on prerequisite social occasion procedures that they utilize. Be that as it may, both don't know on the prerequisites reuse and traceability.
XP is superior to Scrum on performing testing rehearses. XP utilizes Test Driven Development (TDD) method to guarantee that every single actualized include are tried. In any case, Scrum isn't utilizing a particular strategy or practice for testing. The plan approach utilized in XP is code driven and in Scrum is outline driven. XP utilizes a spotless and straightforward coding style rehearses (i. e. combine programming and basic outline). Scrum does not have standard coding style. XP was found to concenrate more on the improvement rehearses however is absence of applying administration hones. While, Scrum was found to concentarte on the administration hones yet is absence of advancement practices, for example, testing, outline and coding. Both of XP and Scrum don't have an estimation program to guarantee the nature of item and process. Likewise, XP and Scrum don't cook for necessities reuse and traceability. Scrum does not have a particular system or practice for testing. Keeping in mind the end goal to incorporate the administration and improvement hones in a single advancement technique, numerous analysts prescribed to join XP and Scrum together. This blend should be possible by including the essential XP advancement practices to Scrum improvement techniques. Be that as it may, these blend models still couldn't cook for XP and Scrum confinements: estimation program and necessity reuse and traceability are not tended to. This clears up the requirement for another upgraded quantifiable agile advancement philosophy for creating web applications in little programming firms.
A few upgrades are proposed for building the new philosophy: Join imperative XP hone with Scrum technique. This will be finished by including the vital XP advancement practices to Scrum improvement strategy to upgrade the improvement and administration issues for the two strategies. Build up a necessity archive. Straightforward store can be added to the advancement procedure to spare new prerequisites, reuse existing necessities and follow prerequisites. Consolidate an estimation program. The point of utilizing the estimation program is to guarantee the nature of web application by observing the procedure and item. The estimation program should be possible by coordinating arrangement of measures (measurements) amid the improvement procedure with the goal that imperfections can be lessened, adjust time can be limited and the advancement life cycle can be abbreviated.
Agile Processes in Large Enterprises
Agile procedures permit changing prerequisites amid the advancement cycle and stress joint effort among designers and clients. The change from conventional to agile procedures influences the advancement colleagues and administration. Effective methodologies ought to be taken to make this change. The advancement groups extend in size from two to a few people in associations. Subsequently, the advancement procedure that is fitting for expansive groups won't function admirably for little groups. Little groups can be adaptable and versatile in applying agile strategies. For a group with size that surpass 10, the extensive group can be separated into accumulations of littler free sub groups, each no bigger than 10 and characterize interfaces between them. The achievement of agile procedures in expansive associations requires groups of ability individuals to be viable and trusted. The agile procedures don't function admirably for frameworks that have criticality, unwavering quality and security necessities. The agile procedures are more suitable when prerequisites are quickly changing in light of the fact that these procedures depend on close association with the customers. The associations ought to investigate their past tasks from the point of view of accomplishment factors, for example, culture, individuals and correspondence. To be agile is a social thing and the association can't be agile if its way of life isn't right. The groups require measure of neighborhood control and should be able to adjust working practices as they feel proper.
Conclusion
Developing web applications is significantly different from traditional software development in nature and life cycle and poses many challenges. Therefore, web engineering process model should: include suitable management method; minimize risks; consider requirements’ changing; and deliver web application quickly while providing feedback. The large enterprises which develop large web applications suffering from many problems such as: poor management; deadlines; cost and effort estimation; changing requirements; and lack of customer involvement. There are many problems of traditional processes: the several phases in system development slow down the development process. The second problem is that the requirements specifications are not flexible since it is difficult to identify all customers’ requirements at the beginning of the development process. Even if the requirements can be identified, the business world is forever changing. Therefore, the traditional processes have limitations to adopt them in web applications’ development because the nature of these applications in rapidly changing requirements.
This paper aims to identify the agile development methods that are suitable for web development teams and determine the enhancements needed to these methods in order to get high quality web applications. Results showed that the most recommended development methods to be used for developing web applications are XP and Scrum. However, both of them are found to be weak in applying the measurement practices and they do not apply the requirement traceability and reuse practices. The suggestions for enhancements include combining the two methods XP and Scrum, establishing a requirement repository and incorporating a measurement program. Findings of this paper will be used as a baseline for building a new measurable web application development methodology.