Introduction
Nowadays, both pace and quality have undeniable role on phenomenon, and web development is not exception. That is why the concepts such as software engineering and afterward patterns were applied in recent decades. Although they have improved the quality of web development, non of them are perfect to guarantee matters like customer satisfaction, customer commitment and collaboration and flexibility . Because of these matters software developers searched for a more productive approach. In early of twenty one century a group of software developers gathered to discuss on software engineering approaches, after that a manifesto was signed by them which is known as Agile now . James Shore and Shane Warden have indicated to this manifesto:” Individuals and interactions over processes and tools, Working software over comprehensive documentation, Customer collaboration over contract negotiation, Responding to change over following a plan”.
As can be subsumed from this manifesto Agile is an emerging approach in software engineering which instead of process, documentation, contract and plan pays more attention to persons, software, customer and flexibility. These characteristics are more evident in principles which have been written by means of the establishers of Agile. James Shore and Shane Warden quote some of these principles:” Our highest priority is to satisfy the customer through early and continuous delivery of valuable software, welcome changing requirements even late in development…, deliver working software frequently…, business people and developers must work together…, build projects around motivated individuals…, working software is the primary measure of progress…, the most efficient and effective method of conveying information to and within a development team is face-to-face conversation,…”.
Order custom essay Comparison of Agile & Traditional Web Technologies with free plagiarism report
From all the specification which was mentioned above it can be perceived that despite of other software engineering approaches and patterns that have specific steps to follow, Agile could be something like especial philosophy and ideology that developer always bear it in his/her mind. This ideology makes developer able to consider a large number of possibilities and opt the best one.
Despite of agile establishers’ claim, some software developer believe that traditional and agile methods work in same way or at least agile is not able to increase productivity as much as its advocates claim. For evaluation of these asserts there is not enough witness in particular when it comes to empirical studies and comparisons. Because of this shortage a practical comparison will be conducted via implementation of two website. Agile methodologies would be applied in one of them and another one will be implemented by traditional approaches.
In section 2 business background about agile has been discussed, hypotheses and aim of study have been explained in section 3, goals and objective have been discussed in section 4, methodology and evaluation has been described in section 5.
Contextual Review
In the rapidly changing environment, the best phenomenon and services are those which adapt themselves easily with changes with lower costs, and programming and software development are not exception. In the other words applications are evaluated as a good production when they would be able to accept changes with lower costs and in shorter time. In other words, they should be more flexible. When it comes to software development, flexibility would be one of the most important aspects which agile attempts to improve it. For instance, at the early of twenty one century a great deal of money was spent just for changing date byte in applications in US . In addition a large number of company’s money is spent for maintenance that has direct relation with productivity and flexibility. All of these issue show importance of agile in market and industry because all of these criteria can be improved by agile. That is why companies and firms are being more interested to agile gradually. Result of a survey shows agile was being applied by means of 14 percent of companies, and more than three times of this amount were keen on using agile in Europe and US in 2005 . Indeed, this amount has been increased now. Also, annually, a great deal of money is wasted for implementation of projects which are not used in reality because they do not satisfy customers’ requirements. Customers claim that they have ordered another production, while they have received completely different ones.
If claims of agile which were mentioned in last sections be implemental, it will be able to prevent the majority of these situations or at least reduce the costs dramatically. As it was said in previous sections, projects which are implemented by means of agile methodology would be more flexible therefore when it comes to changing they can adapt themselves with changes more easier and with lower costs. Because of this matter cost of maintenance will be reduced as well. In addition, since, customers are considered as a team member and they collaborate with developers tightly this possibility that the final production would not be acceptable is reduced significantly. Because of frequent software delivery in agile methodology it is crystal clear that customer notices the developers if he/she expects a production with different specification in weekly communications. Another specification of ASD which was mentioned is learning within implementation. This matter can diminish cost of holding training course that are hold by companies annually. In conclusion, it seems obvious that the majority of developers and companies would opt agile as their methodology and agile will possess the software development market in future.
Literature review
A number of key specifications of Agile approach can be concluded from these principles. Despite of the other approaches Agile Does not have any problem with changes even it would be late. On the other words, application should be written that much flexible which altering does not waste time and resources a lot. This amount of flexibility needs expert and experienced developers, therefore another characteristic could be skillful developers. In addition these developers should work with constant pace that is why the principles emphasize motivated developers because motivation could be engine of team and persuades members to learn during the work. The high and constant pace makes Agile teams able to hand in executable software more frequently to customers. Therefore they can change customer requirements and interact with developers and finally would be more satisfy.
As can be deduced form Agile definition, main emphasis is on individuals rather than plan, documents and other phenomenon. Therefore Agile approach mainly is applied in team based projects in particular self-organizing teams-teams in which members take managing responsibilities instead of external manager who controls the team. Also here executable software is a scale of progress evaluation.
It can be concluded from manifesto and principles of Agile that if these principles are implemented project will be more successful obviously, while there is a controversial point that is it possible to apply these rules and principles in practiceThe majority of resources which were reviewed emphasize that projects which use Agile could be more successful, while some of them like James Shore and Shane Warden believe that:” I do not recommend adopting agile development solely to increase productivity. Its benefits come from working differently, not from working faster. Your team will need time to learn agile development. While they learn, they will go slower, not faster.” For a scientific judgment we should discuss on success in software development and have a precise definition first.
Traditional definition of success emphasizes on cost, time and customer requirements as specification. On the other words it believes that a project will be successful if it is finished before due time, costs do not proceed on budget and all the customer requirements are satisfied, while the modern ones are seemed totally different. They express a project which is evaluated as a failure one can be a successful project because it would be possible a large number of customers and addressers will be attracted to the project or it would create a unique characteristic and vice versa. On the other words, a project which satisfies all the traditional success criteria could be failure one from viewpoint of modern definitions. It can be said that current definitions apart from the old criteria consider flexibility, business process and personal success as new success criteria, therefore a project would be more successful from viewpoint of recent definitions that:
- Decreases delivery time.
- Its costs would be less than estimates and enhances return on investment(ROI).
- Has more capability to satisfy customer requirements.
- Has more flexibility to adapt itself with changes and customer new requirements.
- Causes more personal success-technical and non technical- for contributors-developer, customer and manager.
- Develops business aspects.
From reviewed resources can be concluded that different parameters can affect success in software development. A group of them can be observed here which have been mentioned by Indian Institute of Technology:”customer satisfaction, customer collaboration, customer commitment, decision time, team size, planning and control, people factors, competency, communication and negotiation, training and learning and so on ”.
Obviously, some of these factors can be found in agile manifesto and principles easily, but how agile would be able to implement them properlyThere is another controversial issue, agile claims that could be able to manipulate all of these parameters properly! Here, the main hypothesizes and questions which shape the goal of this proposal are created which will be described more detailed in following chapters.
When it comes to comparison between traditional software development methods and agile, different opinions can be found. The majority of them express that agile works in different way, few number of them say there is not any especial difference between them and some ones tell they are in some aspects same and in another aspects different, but in total, it can be concluded from literature that there are radical differences between them that some of them would be mentioned in following.
When it comes to design stage, traditional approaches are plan base. In the other words in these approaches, developer tries to predict everything in advance and spend a great deal of time for it. Plan and design are usually recorded formally, that is why these approaches do not welcome to changes, while ADS is not limited to a pre defined plan. Developer thinks about possible events during the implementation and tries to opt best solution. Therefore, it can be said knowing and action happen concurrently. In ASD is emphasized on discovering new experience meanwhile the implementation. Projects which are implemented by means of ADS are progressed in terms of iterative actions, while ordinary methods just follow a sequence of stages.
Traditional ways act in vicinity of optimization, while agile works based on flexibility and adaption. Developer tries to formulate everything in traditional ways, but the problems are solved via iteration and experiment in agile. In general it can be said, traditional methodologies keen on controlling and directing projects in one path. They do not welcome to conflicts and changes and managers have key role on controlling the developers. In these ways design surpasses other aspects and affects them, while agile emphasizes more on exploring instead of prediction. Interaction, communication and collaboration between all members even customers is one of the most important characteristics of this methodology. In ASD, iteration and changing are inseparable. In addition in agile, projects are managed by means of all members and manager just is a facilitator.
From all the specification which was mentioned above it can be perceived that despite of other software engineering approaches and patterns that have specific steps to follow, Agile could be something like especial philosophy and ideology that developer always bear it in his/her mind. This ideology makes developer able to consider a large number of possibilities and opt the best one. Such as this ability just could be gained via experience, study and practice in long term, but there are some methods that agile and its advocates claim by means of them developer would be able to earn this philosophy. These methods are recognized as agile methodology and are introduced briefly in following:
- Crystal clear methodology: A group of methodologies which are suitable for small groups that work on not life-critical projects. These methodology instead of process, emphasize on people an communication between them.
- Dynamic software development method (DSDM): An iterative methodology that projects are completed gradually within the iterations. In this methodology projects are divided to three stages: pre-project, project life-cycle and post project that each stage has own principles. This methodology follows the same principles which form the concept of agile, in particular this methodology tries to involve customer as a team member in project.
- Feature-driven development: This methodology attempts to apply both plan-base (traditional ways) and agile approaches. In this methodology projects are divided to features that every feature has a plan that this plan and its implementation are completed during iteration.
- Lean software development: This methodology was used in Toyota production system for the first time. This method focuses on preventing the wastes. In terms of this approach each activity and process that does not add any worth to customers means waste.
- Scrum: Management aspects are emphasized more in this methodology. Regularly meetings are hold in which each member expresses his/her feedback and others adjust themselves with his/her feedback. During this meeting customer representative decides feedback is in harmony with requirement or not. After customer’s satisfaction development team continues working, otherwise they consider changes to persuade the customer. Usually there are not any external managers in these kinds of groups and supervising is done via members.
- Extreme programming: This methodology consists of a set of practices that makes developer able to choose best techniques and make the best decisions.
Hypotheses
As can be observed in previous chapters the majority of literature believe that agile works differently in both implementation and management. Also agile advocates claim that projects which are implemented by means of agile would be more successful. In addition it can be concluded from literature review section that agile in some aspects treats radically different. Here, the hypotheses which form motivation of this project are born. They have been expressed in terms of success criteria which presented in last chapters.
The customers would be more satisfied when projects are implemented via agile, therefore project will be more successful.
Customers are treated as members of development team, therefore commitment of the customers is higher and project more successful.
Customer as a member of team would have more collaboration, in result project will be more successful.
Size of development team would be smaller therefore face to face communication will be simpler and success opportunity more
Team members make a decision in shorter times periodically, therefore success opportunity will be more development team members are selected more expert and competent, therefore the project could be more successful.
Progress would be evaluated by means of the team members which know project better instead of managers, so project could be more successful
Designing is evolutionary and based on iteration, so the project will be more flexible.
Implementation will be accompany with learning and this matter makes the developers more motivated cultural and social issues will be considered in ASD.
These are some hypotheses which form motivation to do this project and proposal and they would be considered within the implementation of project. On the other words, this project is done to check how much these hypotheses could be correct and if they are, which methodologies does agile apply to reach these goalsIn addition, this project tends to check the differences which have been recognized between agile and traditional methodologies in literature review are actual or not. Some radical differences were recognized in that part which can make other hypotheses:
- Traditional methods work based on predefined plans while agile do not emphasize on plan.
- Plans in ordinary methods are formal and resistance on changes while plans on agile are informal and welcome to changing
- Traditional ways follow s sequence of steps while agile is progressed iteratively.
- In traditional ways manager controls the progress of project while, in agile team members act as a manager
- Face to face and daily communication is one of the most important principles in agile while, it is not that much important in traditional ones
- Customers are considered as a team member in agile methodology while, in ordinary ones communication with customers is in vicinity of contract
- Agile emphasize on flexibility and traditional ones on optimizing.
- These hypotheses would be evaluated as well within development of project.
Aim of study
As can be concluded from literature review, the quantity of valid empirical researches which have compared ASD with traditional methodologies and researches that consider agile claims, is rare. It could be the most interesting motivation for designing a systematic and scientific way-has been described in methodology and evaluation section- for assessing the mentioned hypotheses.
Expectation
Before conducting the project, there are some expectations which have been concluded from literature review and it is predicted that some of them would be resulted after accomplishing the project. These expectations could be same with hypotheses, but it is crystal clear that for scientific comparison all the conditions should be matched with the conditions in real world. Unfortunately, there are some conditions and situations which do not exist in this project-they will be mentioned in detailed in next chapter-and they will be simulated with simulated situations and maybe this issue affects the results, but with precise simulation it will be tried to reduce this influence as much as possible.
Goals and Objectives
Doing a fair, empirical and scientific comparison between agile system development and traditional ways can be considered as goal of this project. Also scientific evaluation of this issue that agile is useful approach for software development or not can be another goal. As can be perceived these goals are general and intangible, therefore some objectives make them more clear and measurable. For first goal development of two websites that agile has been applied in one of them and comparison between them could be suitable. Therefore when it comes to comparison objectives can be:
- Select a suitable context which has this potential to be implemented as a website in agile and traditional approach.
- Choose a proper languages for development of these websites.
- Opt systematic and scientific methods to compare action of these websites.
These objectives will be described in detailed in methodology and evaluation chapter.
Also, when it comes to second goal these matters can be considered as objectives:
- Determine specification of a good application.
- Determine success of software development is assessed by means of which factors.
- Decide what criteria affect web development success.
- Determine these criteria are fulfilled more in agile or traditional approach via systematic and scientific way.
- These objectives would be explained in methodology and evaluation chapter as well as previous ones.
Methodology and Evaluation
For evaluating benefits which ASD claims have-mentioned in last chapters- and comparison between traditional software development methods and ASD, two website would be designed and their productivity, flexibility, readability and other specifications compared with each other. For a correct comparison context and title of these websites should be same, in other words they should be designed for same target. After discussing with supervisor it was determined that two websites should be implemented for a library which would be presented as online services. As It was mentioned the application and interface of these websites would be same while in one of them Agile methods will be applied and in another one traditional methods like plan base.
In follow some details of these websites can be observed. First library website which is supposed to have Agile methods would be implemented by means of C# language in ASP.Net framework. While the other one will be implemented via PHP language. C# has been opted because of its Object Oriented specification and also as a dynamic language it can be useful to apply ASD methods. In addition PHP has been selected because it was essential that one programming language should be out of the teaching materials of university. These two websites belong to a library which wants to let customers use online services. There would be different kind of books, papers and references which would be available in terms of their type. For instance, some books which have more appeal can be borrowed for shorter period in compare with the others and some recourses cannot be borrowed. Customers will be classified to different types which have distinguish priority. For example, when a book-there is just one available copy of this book- is demanded by two persons that one of them is postgraduate and another one undergraduate, it will borrowed by postgraduate student.
There would be a waiting system that puts persons who has requested unavailable items in a queue in respect to their priority that mentioned above. Also, an Email delivery system will send an Email to remind the due time to customers automatically a day before it. After implementation of these websites they will be submitted to a number of expert web developers accompany with a questionnaire- that would be designed after consulting with supervisor- which asks them to determine which application is more productive, flexible and reliable.
The developers will not be noticed that Agile methods has been used in which application. In addition it is possible a group of customers would be asked to use two websites and after that express which one is more user friendly and productive, but due to same interface and functionality it could be difficult to mention any differences. As it was mentioned one of the most important specifications which Agile advocates claim can be increased via applying it, is flexibility. But one of the most vital characteristics of ASD which helps improvement of flexibility is interaction with customers and stockholders. Unfortunately, there is not any actual customer in this comparison therefore project supervisor and another person-who is familiar with web development and is determined after consulting with supervisor – are assumed as customer and would be asked to change their requirements as a customer requirements every week regularly then consequent changes in coed are recorded as a document and attached to dissertation report.
For a scientific comparison all the conditions should be close to reality therefore another minus can be detected and considered, is absence of a team as a development team, because ASD is completely team based that these teams are usually self organization an cross functional teams. For compensation of this weakness the developer should study different contexts like finance and business and regularly consult with people who are expert in their fields to approach the comparison to reality.
References
- ketabe art safeye 3
- http://agilemanifesto.org/history.html
- In Art of Agile Development book
- http://www.futureworksconsulting.com/resources/TeamAgilityAgileTimesFeb04.pdf
- In Art of Agile Development book safeye 3 va X|||
- ketab safheye 3
- ketab safeye 4
- ketab safeye 4
- ketab safeye 4 pavaraghi
- ketab bakhshe movafaghiyat
- article success factores
- article, what we know about agile?
- ye chiz peydaa kon vase Amrica
- article, what we know about???
- http://agilemethodology.org/
- what we know safeheye aval
- what we know safeheye aval va ye done dig eke save kardi rood esc top
- article ke kheili khoobe va ziyaade va jadval dare
- hamoon article ke kheili khoobe va ziyaade va jadval dare
- Empirical studies of agile software development: A systematic review/abstract
Cite this Page
Comparison of Agile & Traditional Web Technologies. (2019, Apr 14). Retrieved from https://phdessay.com/comparison-of-agile-traditional-web-technologies/
Run a free check or have your essay done for you