INTERNAL VERIFICATION – ASSIGNMENT BRIEF Programme Title: HND in Compu琀椀ng Assessor Name: Miss. Ishani Jayasuriya Mr. Chathura W. Wickramasinghe Internal Veri昀椀er Name: Unit or Component Number and Title: Unit 30- Applica琀椀on Development Assignment title: Assignment 01- Applica琀椀on Development Assessment criteria targeted by this assignment brief: LO1, LO2, LO3 and LO4 Is this an Authorised Assignment Brief published by Pearson? If so, has it been amended by the Assessor in any way? Please give details. No (If using the Authorised Assignment Brief ‘o昀昀 the shelf’ with no amendments, please answer the question marked * in the checklist only) Has this assignment been submitted to the Assignment Checking Service? Yes No No (If Yes, please keep a copy of the ACS feedback with this form) INTERNAL VERIFIER CHECKLIST Y/N Are the programme and unit details accurate? Yes.. *Are clear deadlines for assessment given? TBC Is the time frame of an appropriate duration? - Is there a suitable vocational scenario or context? Yes. Are the assessment criteria to be addressed stated accurately? Yes. Does each task show which criteria are being addressed? No. Do the tasks meet the assessment requirements of the unit/s? Yes. Is it clear what evidence the learner needs to generate? Yes. Is it likely to generate evidence that is valid and su昀cient? Yes. Overall, is the Assignment 昀椀t for purpose? Yes √ No *If ‘No’ is recorded the Internal Veri昀椀er must recommend actions detailing the issues to be addressed. The Assessor and the Internal Veri昀椀er must then con昀椀rm that the action has been undertaken and that the Assignment Brief is authorised for use before being issued to learners. 1|Page Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 2|Page Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Target Date for Completion Action required: (If none then please state n/a) Date Action Completed General Comments (if appropriate) Previous assignment is reassessed by rewording the content. Assignment Brief Authorised for Use: chathura.windika@eso昀琀.lk Internal Veri昀椀er signature Assessor signature Date 10/7/2020 Date Lead Internal Veri昀椀er signature (if Date appropriate) 3|Page Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Higher Na琀椀onals Internal veri昀椀ca琀椀on of assessment decisions – BTEC (RQF) INTERNAL VERIFICATION – ASSESSMENT DECISIONS BTEC Higher Na琀椀onal Diploma in Compu琀椀ng Programme 琀椀tle Assessor Internal Veri昀椀er Unit 30: Application Development Unit(s) Assignment 琀椀tle Student’s name Pass List which assessment criteria the Assessor has awarded. Merit Dis琀椀nc琀椀on INTERNAL VERIFIER CHECKLIST Do the assessment criteria awarded match those shown in the assignment brief? Y/N Is the Pass/Merit/Dis琀椀nc琀椀on grade awarded jus琀椀昀椀ed by the assessor’s comments on the student work? Has the work been assessed accurately? Y/N Y/N Is the feedback to the student: Give details: • Construc琀椀ve? • Linked to relevant assessment criteria? • Iden琀椀fying opportuni琀椀es for improved performance? • Agreeing ac琀椀ons? Y/N Y/N Y/N Y/N Does the assessment decision need amending? Y/N Assessor signature Date Internal Veri昀椀er signature Date Programme Leader signature (if required) Date Con昀椀rm ac琀椀on completed Remedial ac琀椀on taken Give details: Assessor signature Date Internal Veri昀椀er Date 4|Page Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 signature Programme Leader signature (if required) Date 5|Page Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Higher Na琀椀onals - Summa琀椀ve Assignment Feedback Form Student Name/ID Pradeeban.A / COL/A-064620 Unit Title Unit 30: Application Development Assignment Number Assessor Submission Date Date Received 1st submission Re-submission Date Date Received 2nd submission Assessor Feedback: LO1 Produce a So昀琀ware Design Document by analysing a business-related problem and deduce an appropriate solu琀椀on including a set of ini琀椀al requirements Pa erit & Dis琀椀nc琀椀on P1 P2 M1 D1 Descripts LO2 Use design and development methodologies with tools and techniques associated with the crea琀椀on of a business applica琀椀on P erit & Dis琀椀nc琀椀on P3 Descripts P4 M2 D2 LO3 Work individually and as part of a team to plan and produce a func琀椀onal business applica琀椀on with support documenta琀椀on P erit & Dis琀椀nc琀椀on P5 P6 M3 D3 Descripts LO4 Evaluate the performance of a business applica琀椀on against its So昀琀ware Design Document and ini琀椀al requirements Pass erit & Dis琀椀nc琀椀on P7 Descripts Grade: M4 D4 Assessor Signature: Date: Resubmission Feedback: Grade: Assessor Signature: Date: Internal Veri昀椀er’s Comments: Signature & Date: * Please note that grade decisions are provisional. They are only con昀椀rmed once internal and external modera琀椀on has taken place and grades decisions have been agreed at the assessment board. 6|Page Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Pearson Higher Na琀椀onals in Compu琀椀ng Unit 30: Applica琀椀on Development Assignment 01 7|Page Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 General Guidelines 1. A Cover page or 琀椀tle page – You should always a琀琀ach a 琀椀tle page to your assignment. Use previous page as your cover sheet and make sure all the details are accurately 昀椀lled. 2. A琀琀ach this brief as the 昀椀rst sec琀椀on of your assignment. 3. All the assignments should be prepared using a word processing so昀琀ware. 4. All the assignments should be printed on A4 sized papers. Use single side prin琀椀ng. 5. Allow 1” for top, bo琀琀om , right margins and 1.25” for the le昀琀 margin of each page. Word Processing Rules 1. The font size should be 12 point, and should be in the style of Time New Roman. 2. Use 1.5 line spacing. Le昀琀 jus琀椀fy all paragraphs. 3. Ensure that all the headings are consistent in terms of the font size and font style. 4. Use footer func琀椀on in the word processor to insert Your Name, Subject, Assignment No, and Page Number on each page. This is useful if individual sheets become detached for any reason. 5. Use word processing applica琀椀on spell check and grammar check func琀椀on to help edi琀椀ng your assignment. Important Points: 1. It is strictly prohibited to use textboxes to add texts in the assignments, except for the compulsory informa琀椀on. eg: Figures, tables of comparison etc. Adding text boxes in the body except for the before men琀椀oned compulsory informa琀椀on will result in rejec琀椀on of your work. 2. Carefully check the hand in date and the instruc琀椀ons given in the assignment. Late submissions will not be accepted. 3. Ensure that you give yourself enough 琀椀me to complete the assignment by the due date. 4. Excuses of any nature will not be accepted for failure to hand in the work on 琀椀me. 5. You must take responsibility for managing your own 琀椀me e昀昀ec琀椀vely. 6. If you are unable to hand in your assignment on 琀椀me and have valid reasons such as illness, you may apply (in wri琀椀ng) for an extension. 7. Failure to achieve at least PASS criteria will result in a REFERRAL grade . 8|Page Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 8. Non-submission of work without valid reasons will lead to an automa琀椀c RE FERRAL. You will then be asked to complete an alterna琀椀ve assignment. 9. If you use other people’s work or ideas in your assignment, reference them properly using HARVARD referencing system to avoid plagiarism. You have to provide both in-text cita琀椀on and a reference list. 10. If you are proven to be guilty of plagiarism or any academic misconduct, your grade could be reduced to A REFERRAL or at worst you could be expelled from the course 9|Page Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Student Declara琀椀on I hereby, declare that I know what plagiarism entails, namely to use another’s work and to present it as my own without a琀琀ribu琀椀ng the sources in the correct form. I further understand what it means to copy another’s work. 1. I know that plagiarism is a punishable o昀昀ence because it cons琀椀tutes the昀琀. 2. I understand the plagiarism and copying policy of Edexcel UK. 3. I know what the consequences will be if I plagiarise or copy another’s work in any of the assignments for this program. 4. I declare therefore that all work presented by me for every aspect of my program, will be my own, and where I have made use of another’s work, I will a琀琀ribute the source in the correct way. 5. I acknowledge that the a琀琀achment of this document signed or not, cons琀椀tutes a binding agreement between myself and Pearson, UK. 6. I understand that my assignment will not be considered as submi琀琀ed if this document is not a琀琀ached to the assignment. Student’s Signature: (Provide E-mail ID) Date: (Provide Submission Date) 10 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Higher Na琀椀onal Diploma in Compu琀椀ng Assignment Brief Student Name /ID Number Unit Number and Title Unit 30: Application Development Academic Year Unit Tutor Assignment Title Issue Date Submission Date IV Name & Date Submission format Report: The submission should be in the form of an individual wri琀琀en report. This should be wri琀琀en in a concise, formal business style using 1.5 line spacing and font size 12. You are required to make use of headings, paragraphs and subsec琀椀ons as appropriate, and all work must be supported with research and referenced using Harvard referencing system. The recommended word limit is 4000 words, although you will not be penalised for exceeding the total word limit. System: A fully func琀椀onal business applica琀椀on. Your research should be referenced using the Harvard referencing system. Unit Learning Outcomes: LO1: Produce a Software Design Document by analysing a business-related problem and deduce an appropriate solution including a set of initial requirements. LO2: Use design and development methodologies with tools and techniques associated with the creation of a business application. LO3: Work individually and as part of a team to plan and produce a functional business application with support documentation. LO4: Evaluate the performance of a business application against its Software Design Document and initial requirements. 11 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Assignment Brief and Guidance: 12 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Scenario PC World (PCW) is a medium-sized company that sells over 50 di昀昀erent types of computer products. The company has grown steadily in the last 02 years mainly due its popularity over the Internet. They are 昀椀nding it increasingly di昀cult to cope up with all the paperwork in the manual work昀氀ow associated with tracking orders due to the increase of number of orders and lack of a so昀琀ware system. The Managing Director of PCW is frustrated by the problems associated with adding new requirements to the applica琀椀on and ge琀�ng modi昀椀ca琀椀ons completed in the previous so昀琀ware applica琀椀on used in the PC WORLD company due to the so昀琀ware development company’s usage of tradi琀椀onal waterfall model in their projects. Therefore, the company currently has moved back to the old paper-based system. Managing director or PCW has decided that PCW will use a company which is following a so昀琀ware development methodology based on Agile philosophy to develop the so昀琀ware for a new order tracking system. JJLP So昀琀ware (JJLP) is a so昀琀ware development company. JJLP use SCRUM as their so昀琀ware development methodology. The Managing Director of PCW has decided to contract JJLP, on “琀椀me and materials” basis, for the development of the new order tracking system using Scrum development approach. You have been hired as a so昀琀ware engineer for JJLP So昀琀ware (JJLP) is a so昀琀ware development company. You have to complete below tasks in comple琀椀ng the so昀琀ware project for PC World company. The new order tracking system will replace the old paper-based system and is likely to include some of the following func琀椀onali琀椀es: • • • • • Receive a sales order via telephone, or email – carried out by an Order Handling Clerk. Check stock in a warehouse – carried out by an Order Handling Clerk. Create an acknowledgement copy of the sales order with a delivery date a昀琀er the order has been con昀椀rmed with the warehouse – carried out by a Warehouse Opera琀椀ve. Create an acknowledgement copy of the sales order sta琀椀ng the item is out of stock and the date it will be available a昀琀er the order has been con昀椀rmed with the warehouse – carried out by a Warehouse Opera琀椀ve. Credit-check customers and reject them if they are not creditworthy – carried out by an Order Handling clerk. Create a daily report of orders that have been dispatched – carried out by the Produc琀椀on Manager. • Create an invoice for business customers a昀琀er the delivery – carried out by the Chief Accountant. • Accept credit card payment from domes琀椀c customers a昀琀er the order has been con昀椀rmed with the warehouse - carried out by an Order Handling Clerk. 13 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development • 0 0 Interdiction of application development Application development involves creating a computer program, or set of programs to perform tasks, from keeping track of inventory and billing customers to maintaining accounts, speeding up business process and, in fact, even improving application effectiveness. Unlike vanilla programming, application development involves higher levels of responsibility (particularly for requirement capturing and testing). The Application Development industry has seen a lot of changes in a relative short period of time. From both sides of the fence customers looking for software solutions, and the resource pool of application development talent there has been considerable upheaval over the last few years. application development t is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development is a process of writing and maintaining the source code, but in a broader sense, it includes all that is involved between the conception of the desired software through to the final manifestation of the software, sometimes in a planned and structured process. Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. 14 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 The software can be developed for a variety of purposes, the three most common being to meet specific needs of a specific client/business (the case with custom software), to meet a perceived need of some set of potential users (the case with commercial and open source software), or for personal use (e.g. a scientist may write software to automate a mundane task). Embedded software development, that is, the development of embedded software, such as used for controlling consumer products, requires the development process to be integrated with the development of the controlled physical product. System software underlies applications and the programming process itself, and is often developed separately. The need for better quality control of the software development process has given rise to the discipline of software engineering, which aims to apply the systematic approach exemplified in the engineering paradigm to the process of software development. There are many approaches to software project management, known as software development life cycle models, methodologies, processes, or models. The waterfall model is a traditional version, contrasted with the more recent innovation of agile software development. 1.1 Problem define statement Business related problems which PCW company is facing are 1. As the company has grown much in the last 2 years, it has become difficult for the company to handle the data related to customer's information and orders. Earlier, the company used the waterfall method for the development of an order tracking system which has proved to be inefficient. 2. The waterfall method is a rigid methodology for the development of various plans. It involves a lot of documentation to be completed in the beginning stage of the process. The needs and requirements are analyzed at the beginning of the project and no correction can be made in between. Hence, it creates rigidity in the development process. The waterfall approach are the predefined sets of strategy which follow sequential steps throughout the 15 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 process. Hence, it is difficult to skip any step of the process in between and the next process can not be started until the previous gets finished. 3. Earlier, the PCW company used to follow the waterfall method which emphasizes quality testing only after the project was completed and in case the quality was bad, there was a wastage in resources and time of PC world software company as modifications were not allowed. The testing step was after the full completion of software which hampered the developer in correcting the loopholes. Hence, sometimes it could result in the failure of userfriendly software. 4. The current waterfall approach used by the PCW company does not include the participation and views of users and feedback from customers because this is an internal process of the organization which does not seek customer's opinion until the project is completed. There is no transparency in this approach of waterfall methodology as the customers are unaware of the process of software development. Hence, they only receive experience when the project is finished. 5. The problem while using traditional waterfall is that it involves high future uncertainties that may lead to risky decisions because it follows a rigid structure of rules and regulation to complete the project. This approach used by the company is only right for short term projects or ventures. Here, it is not suitable as the PCW company is working on a long term project which is dynamic in nature as the requirements of customers are also fast changing in the market. The problem defining statement and solutions for the PCW company are PCW company has contracted with JJLP, a software consulting company to resolve the above issues and order them to make new order tracking systems which will be based on the Agile method. The new method will help the company in the following ways: 1. Agile is a method that is project-oriented. The testing and development activities work in parallel, so that mistakes can be corrected on the spot. 16 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 2. The developer will use Agile methodology which divides the project in various sprints that are independent of one another. So, any process can be carried out independently of other processes. This will provide flexibility in the process. 3. The customers are the main focus in the agile method. It focuses on the satisfaction of customers and hence, improves the defects to make the product or software user-friendly. The software is tested before final completion just to ensure that it is according to the needs of the users. New changes are acceptable in future according to the needs of the customers. 4. There is more flexibility in the agile approach as the development process split in sprints where each sprint is working and meanwhile, it is getting tested side by side just to ensure the defects and also creating a solution for these defects. It allows for a speedy detection of defects in process which helps in optimum resource utilization and time-saving. 5. This agile method adopted by the company will reduce the paperwork of the company to a great extent as there will be an online tracking system which will will allow the users to check the status of their order and it will be more valuable for the company as to track and calculate the exact amount of orders that are to be prepared within a particular period of time. 6. The new order tracking system will be beneficial in increasing the productivity of the company as there will be more specific data about the orders. Now, the company can track orders and get details about the product that is ordered, acceptance of order, and the delivery made. Now, the company has very less chances of missing information about the sales and the orders made. Problems of Paper based systems at companies Storage and accessibility The physical space paperwork can take up is significant and will only continue to grow as time goes on. The centralized office may no longer be able to hold all documentation and will 17 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 result in storage in different rooms, building or locations. This will slow down accessibility thus productivity, result in damage or lost documents and increase storage costs. Example : The average office spend $2,100 per year to maintain one four-drawer filing cabinet and it costs $220 to replace a lost document. Multiply this across the organisation and the cost is staggering. Errors One of the largest problems faced by organisations is document errors. When documents are manually authored with pen and paper, they can be illegible and incomplete causing a negative flow-on effect. Editing becomes hard labour because changes need to be physically made or if completely illegible, a new document will need to be created. Information may need to be tracked down by other employees and with the time passed, they may have forgotten. Ultimately, this can result in incorrect documents with numerous errors and therefore affect the client and bottom line. Limited collaboration and double handling Team collaboration on documents becomes challenging and time consuming when working with paper. Multiple copies need to be printed, all ending up with their separate annotations which then still need to be changed on the initial document. Once the initial document is updated, more copies need to be printed, approved and then filed away. This lengthy process slows down staff with their current workload, which there is no time for. Document Management Problem Whether using paper documents biggest problem arises when you need to put these documents through business processes. It’s a common problem—in fact, 53% of workers are looking for a simple and robust way to sign and route internal documents. Routine business processes include: approving, reviewing, onboarding, and contracting. Essentially any time you need to route a document from Point A to Point B and so on, it requires a process. 18 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Without workflow management software, have to manually route and track documents through a process. This is often known as “babysitting the documents.” It’s a huge pain, and it taxes time. And if you leave a document unattended, you risk losing it or introducing a bottleneck. A bottleneck might keep the document for so long that forget who had the document in the first place. Or a document could be misplaced, lost, or, worse, stolen, along the way. When a bottleneck happens, processes grind to a halt. Babysitting isn’t just for paper documents, either. When don’t have workflow management software, digital documents need supervision, too. They have to be delivered from mailbox to mailbox, or via a file-sharing tool like Dropbox. Or they might even be printed, scanned, and emailed several times. Document Management Problem biggest problem is data entry—both entering data on a form initially and rekeying it into your back-end systems later on. Without automated data entry software, data entry is a manual and repetitive process. staff, customers, and vendors routinely enter data onto a form for organization. However, there are certain fields they have to fill out each time, like name, company, and so on. It gets redundant, and it takes up a lot of their time. Plus, they could easily mistype something and the form could move along in the process without getting corrected—or without getting corrected until it’s too late. When paper-based forms are used, it takes even longer and introduces even more opportunities for error. Handwriting could be misread. Data could be rekeyed incorrectly. Forms could be lost or damaged before the information can be processed. Data entry continues to be a problem when it becomes time to transfer data from forms into your back-end system. Without the right automated data entry software, even data that is entered on a web-based form has to be re-entered. In fact, 55% of users still end up rekeying data from forms, rather than automatically syncing their forms with their back-end systems. 19 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Reputational damage It’s a cost that’s not easy to quantify but is critically important for the competitiveness of any field services business…reputation. It’s the trust that customers and clients have in ability to deliver what you promise. It’s something that’s extremely hard to build and all too easy to lose. In an increasingly digitally connected world, people now expect the kind of convenience speed and efficiency that have been made possible by digital communications. It’s a standard that a paper-based management setup will always struggle to meet. A paper-based approach means slower processes, more administrative resources and higher risk of inefficiency - documents lost, handwritten notes being misread and paperwork incomplete. With the viral power of social media, negative feedback, poor ratings and angry comments can have a devastating impact on a company’s reputation. Heightened compliance risks A major risk faced by all field service businesses is non-compliance. Services need to be fast and efficient but this cannot come at the cost of safety or adherence to laws and regulations. Compliance is a challenging area to control when paper-based management methods are being used. There’s a dangerous tendency for compliance measures to be viewed as being needless paperwork chores. It’s an area where digital management methods have a major advantage - allowing checks and notifications to be automatically integrated into the everyday workflow. 20 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Scenario PC World (PCW) is a medium-sized company that sells over 50 di昀昀erent types of computer products. The company has grown steadily in the last 02 years mainly due its popularity over the Internet. They are 昀椀nding it increasingly di昀cult to cope up with all the paperwork in the manual work昀氀ow associated with tracking orders due to the increase of number of orders and lack of a so昀琀ware system. The Managing Director of PCW is frustrated by the problems associated with adding new requirements to the applica琀椀on and ge琀�ng modi昀椀ca琀椀ons completed in the previous so昀琀ware applica琀椀on used in the PC WORLD company due to the so昀琀ware development company’s usage of tradi琀椀onal waterfall model in their projects. Therefore, the company currently has moved back to the old paper-based system. Managing director or PCW has decided that PCW will use a company which is following a so昀琀ware development methodology based on Agile philosophy to develop the so昀琀ware for a new order tracking system. JJLP So昀琀ware (JJLP) is a so昀琀ware development company. JJLP use SCRUM as their so昀琀ware development methodology. The Managing Director of PCW has decided to contract JJLP, on “琀椀me and materials” 0 0basis, for the development of the new order tracking system using Scrum development approach. You have been hired as a so昀琀ware engineer for JJLP So昀琀ware (JJLP) is a so昀琀ware development company. You have to complete below tasks in comple琀椀ng the so昀琀ware project for PC World company. The new order tracking system will replace the old paper-based system and is likely to include some of the following func琀椀onali琀椀es: Receive a sales order via telephone, or email – carried out by an Order Handling Clerk. • Check stock in a warehouse – carried out by an Order Handling Clerk. • Create an acknowledgement copy of the sales order with a delivery date a昀琀er the order has been con昀椀rmed with the warehouse – carried out by a Warehouse Opera琀椀ve. • Create an acknowledgement copy of the sales order sta琀椀ng the item is out of stock and the date it will be available a昀琀er the order has been con昀椀rmed with the warehouse – carried out by a Warehouse Opera琀椀ve. • Credit-check customers and reject them if they are not creditworthy – carried out by an Order Handling clerk. • Create a daily report of orders that have been dispatched – carried out by the Produc琀椀on Manager. • Create an invoice for business customers a昀琀er the delivery – carried out by the Chief Accountant. • Accept credit card payment from domes琀椀c customers a昀琀er the order has been con昀椀rmed with the warehouse - carried out by an Order Handling Clerk. 13 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development • 0 0 Interdiction of application development Application development involves creating a computer program, or set of programs to perform tasks, from keeping track of inventory and billing customers to maintaining accounts, speeding up business process and, in fact, even improving application effectiveness. Unlike vanilla programming, application development involves higher levels of responsibility (particularly for requirement capturing and testing). The Application Development industry has seen a lot of changes in a relative short period of time. From both sides of the fence customers looking for software solutions, and the resource pool of application development talent there has been considerable upheaval over the last few years. application development t is the process of conceiving, specifying, designing, programming, 0 0 documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development is a process of writing and maintaining the source code, but in a broader sense, it includes all that is involved between the conception of the desired software through to the final manifestation of the software, sometimes in a planned and structured process. Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. 14 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 The software can be developed for a variety of purposes, the three most common being to meet specific needs of a specific client/business (the case with custom software), to meet a perceived need of some set of potential users (the case with commercial and open source software), or for personal use (e.g. a scientist may write software to automate a mundane task). Embedded software development, that is, the development of embedded software, such as used for controlling consumer products, requires the development process to be integrated with the development of the controlled physical product. System software underlies applications and the programming process itself, and is often developed separately. The need for better quality control of the software development process has given rise to the discipline of software engineering, which aims to apply the systematic approach exemplified in the engineering paradigm to the process of software development. There are many approaches to software project management, known as software development life cycle models, methodologies, processes, or models. The waterfall model is a traditional version, contrasted with the more recent innovation of agile software development. 1.1 Problem define statement Business related problems which PCW company is facing are 1. As the company has grown much in the last 2 years, it has become difficult for the company to handle the data related to customer's information and orders. Earlier, the company used the waterfall method for the development of an order tracking system which has proved to be inefficient. 2. The waterfall method is a rigid methodology for the development of various plans. It involves a lot of documentation to be completed in the beginning stage of the process. The needs and requirements are analyzed at the beginning of the project and no correction can be made in between. Hence, it creates rigidity in the development process. The waterfall approach are the predefined sets of strategy which follow sequential steps throughout the 15 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 process. Hence, it is difficult to skip any step of the process in between and the next process can not be started until the previous gets finished. 3. Earlier, the PCW company used to follow the waterfall method which emphasizes quality testing only after the project was completed and in case the quality was bad, there was a wastage in resources and time of PC world software company as modifications were not allowed. The testing step was after the full completion of software which hampered the developer in correcting the loopholes. Hence, sometimes it could result in the failure of userfriendly software. 0 the PCW 0 4. The current waterfall approach used by company does not include the participation and views of users and feedback from customers because this is an internal process of the organization which does not seek customer's opinion until the project is completed. There is no transparency in this approach of waterfall methodology as the customers are unaware of the process of software development. Hence, they only receive experience when the project is finished. 5. The problem while using traditional waterfall is that it involves high future uncertainties that may lead to risky decisions because it follows a rigid structure of rules and regulation to complete the project. This approach used by the company is only right for short term projects or ventures. Here, it is not suitable as the PCW company is working on a long term project which is dynamic in nature as the requirements of customers are also fast changing in the market. The problem defining statement and solutions for the PCW company are PCW company has contracted with JJLP, a software consulting company to resolve the above issues and order them to make new order tracking systems which will be based on the Agile method. The new method will help the company in the following ways: 1. Agile is a method that is project-oriented. The testing and development activities work in parallel, so that mistakes can be corrected on the spot. 16 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 2. The developer will use Agile methodology which divides the project in various sprints that are independent of one another. So, any process can be carried out independently of other processes. This will provide flexibility in the process. 3. The customers are the main focus in the agile method. It focuses on the satisfaction of customers and hence, improves the defects to make the product or software user-friendly. The software is tested before final completion just to ensure that it is according to the needs of the users. New changes are acceptable in future according to the needs of the customers. 4. There is more flexibility in the agile approach as the development process split in sprints where each sprint is working and meanwhile, it is getting tested side by side just to ensure the defects and also creating a solution for these defects. It allows for a speedy detection of defects in process which helps in optimum resource utilization and time-saving. 5. This agile method adopted by the company will reduce the paperwork of the company to a great extent as there will be an online tracking system which will will allow the users to check the status of their order and it will be more valuable for the company as to track and calculate the exact amount of orders that are to be prepared within a particular period of time. 6. The new order tracking system will be beneficial in increasing the productivity of the company as there will be more specific 0data about 0 the orders. Now, the company can track orders and get details about the product that is ordered, acceptance of order, and the delivery made. Now, the company has very less chances of missing information about the sales and the orders made. Problems of Paper based systems at companies Storage and accessibility The physical space paperwork can take up is significant and will only continue to grow as time goes on. The centralized office may no longer be able to hold all documentation and will 17 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 result in storage in different rooms, building or locations. This will slow down accessibility thus productivity, result in damage or lost documents and increase storage costs. Example : The average office spend $2,100 per year to maintain one four-drawer filing cabinet and it costs $220 to replace a lost document. Multiply this across the organisation and the cost is staggering. Errors One of the largest problems faced by organisations is document errors. When documents are manually authored with pen and paper, they can be illegible and incomplete causing a negative flow-on effect. Editing becomes hard labour because changes need to be physically made or if completely illegible, a new document will need to be created. Information may need to be tracked down by other employees and with the time passed, they may have forgotten. Ultimately, this can result in incorrect documents with numerous errors and therefore affect the client and bottom line. Limited collaboration and double handling Team collaboration on documents becomes challenging and time consuming when working with paper. Multiple copies need to be printed, all ending up with their separate annotations which then still need to be changed on the initial document. Once the initial document is updated, more copies need to be printed, approved and then filed away. This lengthy process slows down staff with their current workload, which there is no time for. Document Management Problem Whether using paper documents biggest problem arises when you need to put these documents through business processes. It’s a common problem—in fact, 53% of workers are looking for a simple and robust way to sign and route internal documents. Routine business processes include: approving, reviewing, onboarding, and contracting. Essentially any time you need to route a document from Point A to Point B and so on, it requires a process. 0 0 18 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development Without workflow management software, have to manually route and track documents through a process. This is often known as “babysitting the documents.” It’s a huge pain, and it taxes time. And if you leave a document unattended, you risk losing it or introducing a bottleneck. A bottleneck might keep the document for so long that forget who had the document in the 0 0 first place. Or a document could be misplaced, lost, or, worse, stolen, along the way. When a bottleneck happens, processes grind to a halt. Babysitting isn’t just for paper documents, either. When don’t have workflow management software, digital documents need supervision, too. They have to be delivered from mailbox to mailbox, or via a file-sharing tool like Dropbox. Or they might even be printed, scanned, and emailed several times. Document Management Problem biggest problem is data entry—both entering data on a form initially and rekeying it into your back-end systems later on. Without automated data entry software, data entry is a manual and repetitive process. staff, customers, and vendors routinely enter data onto a form for organization. However, there are certain fields they have to fill out each time, like name, company, and so on. It gets redundant, and it takes up a lot of their time. Plus, they could easily mistype something and the form could move along in the process without getting corrected—or without getting corrected until it’s too late. When paper-based forms are used, it takes even longer and introduces even more opportunities for error. Handwriting could be misread. Data could be rekeyed incorrectly. Forms could be lost or damaged before the information can be processed. Data entry continues to be a problem when it becomes time to transfer data from forms into your back-end system. Without the right automated data entry software, even data that is entered on a web-based form has to be re-entered. In fact, 55% of users still end up rekeying data from forms, rather than automatically syncing their forms with their back-end systems. 19 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Reputational damage It’s a cost that’s not easy to quantify but is critically important for the competitiveness of any field services business…reputation. It’s the trust that customers and clients have in ability to deliver what you promise. It’s something that’s extremely hard to build and all too easy to lose. In an increasingly digitally connected world, people now expect the kind of convenience speed and efficiency that have been made possible by digital communications. It’s a standard that a paper-based management setup will always struggle to meet. A paper-based approach means slower processes, more administrative resources and higher risk of inefficiency - documents lost, handwritten notes being misread and paperwork incomplete. 0 0 With the viral power of social media, negative feedback, poor ratings and angry comments can have a devastating impact on a company’s reputation. Heightened compliance risks A major risk faced by all field service businesses is non-compliance. Services need to be fast and efficient but this cannot come at the cost of safety or adherence to laws and regulations. Compliance is a challenging area to control when paper-based management methods are being used. There’s a dangerous tendency for compliance measures to be viewed as being needless paperwork chores. It’s an area where digital management methods have a major advantage - allowing checks and notifications to be automatically integrated into the everyday workflow. 20 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 These benefits help to minimise risks and can boost an organisation’s competitiveness when tendering for contracts. Lack of storage space Paper documents can take up a significant amount of space, and the quantity of paper will increase day by day. Security issues Regardless of size, for any organization is important to protect its data and other valuable assets. One of the biggest information security risks for businesses is paper because printed documents can be easily lost, Prone to damage Manual documents can be easily damaged, lost, misplaced or stolen. A fire or natural disaster could mean the loss of essential information. Document transportation Transporting documents in a paper-based system is quite complicated, slow and inefficient. Solution The Benefits of Web-Based Systems Web based applications used to be very limited in functionality. However, advances in technology, security, and internet speeds have greatly increased the potential scope of web0 0 based systems. Today, we have web-based business accounting systems, web-based CRM systems, a web-based Microsoft Office, and more. Web-based applications offer some significant advantages over native, client-based software. Here are just some of the benefits of web-based apps for business. 21 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development What is a Web Based System? 0 is accessed 0 A web-based system is an application that via HTTP. The term web-based is usually used to describe applications that run in a web browser. It can, though, also be used to describe applications that have a very small component of the solution loaded on the client PC. The host server for a web-based system could be a local server, or it could be accessed via the internet. Lower Development Costs A web-based application runs in a web browser. That means that a single, responsive web application can be used across multiple device types. Although web apps will need to be tested on different browsers, there is no need to test them on different operating systems. This makes development and testing much easier. It cuts development costs and reduces development time. Easy Installation and Maintenance Unlike traditional software that is loaded on each device, web applications run from a host server. There is no installation on local machines. Software upgrades are all completed centrally. That reduces the costs of installing and upgrading software. It also ensures that all users are always using the same version of the software. Accessible Anywhere Users can access a web-based system anywhere. So long as they have an internet connection, a web browser, and the appropriate login details. This means that users can access the data they need when they are away from the office. It also brings the possibility of staff working from home. Easy Data Sharing and Collaboration 22 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 The sharing of data and collaborating on projects is made much easier with web-based systems. Data is stored in one central location, so users can share data and work together on projects. It is also easier to integrate web-based systems than isolated desktop applications. Centralized Security As web apps are installed on web servers, security is controlled by an IT professional. That avoids sensitive corporate information being held on many local client PCs, which are not as secure. Employees can access data when they are away from the office via a web application. So, it is not necessary for data to be held anywhere other than the secure central location. Reduced Hardware Costs Web-based systems can eliminate the need for powerful client PCs. Processing is carried out 0 engineered 0 on the host server. The host server can be to efficiently service simultaneous, peak demand. So, the storage, processor, and memory requirements for client PCs can be reduces. Taken across an entire organization, this can represent a large cost saving for some businesses. Increased Efficiency In most businesses, the deployment of web-based solutions leads to the streamlining of business processes. Often, paper-based processes can be replaced by workflow-based solutions. The business process improvements can lead to higher employee productivity and lower costs. Adaptable to Changing Workloads The deployment of web-based applications requires no software loading on the client PC. All that is needed is the setting up of a new user and the relevant secure access controls. This can be a major benefit for growing businesses, or for seasonal businesses. Users can be added or removed very quickly. Greater Availability of Information Web-based systems make it easier to provide access to real-time information. The paper reports that might take days to prepare and distribute can be replaced on online reports and 23 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 digital dashboards. That can improve the quality and the speed of decision making, right across an organization. Web based custom application development can provide businesses with significant cost savings and productivity improvements. Now that internet access is almost universally available and internet speeds have significantly improved, applications that previously had to be client based can now be deployed on the web. Although this is the case in developed Western countries, it is not the case worldwide. In some countries, internet access is unreliable. So, major deployment of web-based applications may still not be possible. International organizations with overseas offices may not yet be able to take full advantage of web-based solutions. For domestic organizations, though, web-based systems have a promising future. From webbased office applications, like content management systems and productivity applications, to custom web-based software developed specifically for your organization, the foundation of many future software solutions is likely to be web-based When switching to a Cloud computing system, all of the company’s documents are housed in the one place – you just need to do is simply login. The cost of storage will reduce dramatically, as cloud storage is less costly than physical storage and all documentation is safe, meaning no document will be damaged or destroyed ever again. Search time will also 0 bar0available. Type in the relevant keyword, tag or decrease because there is the handy search file number and within a matter of seconds, everything you need will appear. Collaboration becomes easy when using Cloud computing. Documents can be readily shared, updates are in real-time, changes can be tracked and all annotations can be made on the same document, then owned by users. This way of collaboration also gives an equal opportunity and higher levels of participation by team members. 24 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 benefits of web based system NO MORE UPDATING ISSUES According to a study from SC Magazine: [tweet box design=”default”]Small businesses are spending a ridiculous amount of time each week on updating software.[/tweet_box] Well, they don’t say “ridiculous” exactly but they do report that 11 hours a week is normal. Talk about a waste of productivity. When a desktop software update is rolled out, it needs to be installed on every single machine that the program is found on. Often, this has to be done before any more work collaboration. That’s a huge reason developers are migrating towards web application development software- they only need to roll out one update to the app, rather than installing it individually on multiple devices. LESS MONEY, MORE POWER When it comes to desktop-based custom software application development, consideration has to be given to the power of the machines that will be running. Sometimes a rollout of a demanding new software program can require a complete hardware overhaul too. That’s a huge expense. However, when web apps are used, they can be used from almost any device with a browser. The computing power is coming from the server, which cuts down on necessary on-site hardware requirements. PLATFORM HAPPY Not only is being able to use a less powerful computer (or tablet) a benefit of web apps, having a different operating system isn’t an issue either. It’s all about the browser. Whether the user is on Windows XP or 10, Mac OS or Linux, the web app is built for the browser. True, some browsers don’t play nice with others. However, It’s generally much easier to code for different browsers than it is for different operating systems. On top of that, the interface will usually be much more familiar to the user. QUICK DEVELOPMENT CYCLES Every developer has their preferred language, no matter where they are. Whether they handle software development in Perth like Red Rock Software or across the globe, some people just Pradeeban.A (col/a-064620) 0 0 Unit-30 applica琀椀on Development 25 | P a g e work better in certain languages. In general, though, web based languages like HTML, JavaScript, and CSS are easier to code in and develop quicker results- and that’s what is used in order to build the majority of web apps. On top of that, there are even frameworks in place to make the job even easier. Improved Security The SC Magazine survey mentioned before 0 also 0 brings up another point. Workers aren’t updating software due to productivity: 60% of the businesses they surveyed are not always up to date when it comes to their software. The biggest problem that this leads to is security. Updates are often released to programs just to patch security holes and not just to fix bugs. The problem is, if the updates never take place, the holes never get patched and the computers are still vulnerable. The Flexibility of the Internet The desk and chair aren’t the same as they used to be. The office isn’t either. Web apps offer the flexibility of access wherever there is internet. Employees aren’t chained to their desks like they once were. According to a study by Global Workplace Analytics, employees of Fortune 1000 companies around the world are not at their desk 50-60% of the time. With web apps, they can have access to the office from anywhere. Support In a perfect world, users would never need to access support. Every program on every computer would just work perfectly and every user is perfectly knowledgeable. Of course, that’s not the case. Luckily, the old saying that there is always someone smarter out there can work to our advantage. Many web apps have built in community support already accessible online. This allows for the quicker resolution of issues, because the chances of somebody else having the same problem that has already been fixed are pretty good Higher Usage Rates People are spending less time browsing on the internet and more time using apps connected to the web. A study from Flurry Analytics shows that apps are taking control of 86% of the 26 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 time that users are spending on their phones. With web apps, users just log on and use it. They don’t have to worry about downloading and installing, hoping that it works. It’s instant use. User Tracking With web apps, there is built-in user tracking. This makes it much easier to figure out what works with built programs and what doesn’t. Then, it makes improving future versions more simple. Of course, we already talked about the ease of updating web programs, so developers can make sure that their improvements are actually being utilised. Offline Use Although being able to be used online is a huge advantage, some people are concerned about the necessity of being connected to the internet. In fact, just because it’s a web app doesn’t mean it has to be used online. Offline versions can be built just as easily, although some of the advantages are lost, this does eliminate a certain drawback Customisation for different devices 0 0 Content within web-based applications can be easily customised for use on various devices, such as mobile. This makes the application user-friendly, and pleasant to use since the presentation of information can be altered accordingly. In fact, it is actually easier to customise web-based applications than it is for standard desktop applications. Web-based software can also be responsive to change based on browser. This supports mobile working and ensures employees have the software at their fingertips whenever required. Integration with other systems Web-based applications give a far greater ability to integrate with other systems than desktop applications. Localised software is isolated compared to web-based applications which are significantly more interoperable. This is because web applications can be linked together more easily than two completely separate systems. 27 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Advantages of Agile model: Customer satisfaction by rapid, continuous delivery of useful software. People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other. Working software is delivered frequently (weeks rather than months). Face-to-face conversation is the best form of communication. Close, daily cooperation between business people and developers. Continuous attention to technical excellence and good design. Regular adaptation to changing circumstances. Even late changes in requirements are welcomed. Listed below are a few disadvantages of Agile: In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle. There is lack of emphasis on necessary designing and documentation. The project can easily get taken off track if the customer representative is not clear what final outcome that they want. Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources. Agile Developments also fails at times due to Unrealistic Expectations – Agile actually is and what it can help you achieve. Agile is commonly believed to be a set a practices, processes and tools, when in fact, Agile is really more of a mind-set and culture. When to use Agile model: When new changes need to be implemented. The freedom agile gives to change is very important. New changes can be implemented at very little cost because of the frequency of new increments that are produced. To implement a new feature the developers need to lose only the work of a few days, or even only hours, to roll back and implement it. Unlike the waterfall model in agile model very limited planning is required to get 0 0 started with the project. Agile assumes that the end users’ needs are ever changing in a dynamic business and IT world. Changes can be discussed and features can be newly 28 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development effected or removed based on feedback. This effectively gives the customer the finished system they want or need. Both system developers and stakeholders alike, find they also get more freedom of 0 0 developed in a more rigid sequential way. time and options than if the software was Having options gives them the ability to leave important decisions until more or better data or even entire hosting programs are available; meaning the project can continue Difference between traditional and agile project methodology Characteristics Agile approach Traditional approach Iterative Linear Scale of projects Small and medium scale Large-scale User requirements Interactive input Organizational structure Involvement of clients Development model Customer involvement Escalation management Model preference Product or process Test Clearly defined before implementation High Low Evolutionary delivery Life cycle Customers are involved from Customers get involved early in the the time work is being project but not once the execution performed has started When problems occur, the entire team works together to resolve it Agile model favors adaption Escalation to managers when problem arise Traditional model favors anticipation Less focus on formal and More serious about processes than directive processes the product Comprehensive test planning Tests are planned one sprint at a 29 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 documentation Effort estimation time Scrum master facilitates and the team does the estimation Project manager provides estimates and gets approval from PO for the entire project Reviews and Reviews are done after each Excessive reviews and approvals by approvals iteration leaders to move forward without fear of reaching a sudden standstill. Agile development model is also a type of Incremental model. Software is developed in incremental, rapid cycles. This results in small incremental releases with each release building on previous functionality. Each release is thoroughly tested to ensure software quality is maintained. It is used for time critical applications. Extreme Programming (XP) is currently one of the most well known agile development life cycle model. 0 0 30 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 1.2 Determine any areas of risk related to the successful completion of your application. Developing a real work web application can be really challenging. The developer team must have very good skills in all the layers from the frontend down to the very backend. This challenge is even bigger when considering the most common security risks that web applications can have. When run the web application threats to IT systems and data include: • Hardware and software failure - such as power loss or data corruption. • malware - malicious software designed to disrupt computer operation • viruses - computer code that can copy itself and spread from one computer to another, often disrupting computer operations • spam, scams and phishing - unsolicited email that seeks to fool people into revealing personal details or buying fraudulent goods • Human error - incorrect data processing, careless data disposal, or accidental opening of infected email attachments. • Database access slowly. • hackers - people who illegally break into computer systems • fraud - using a computer to alter data for illegal benefit • passwords theft - often a target for malicious hackers • denial-of-service - online attacks that prevent website access for authorized users • security breaches - includes physical break-ins as well as online intrusion • Staff dishonesty - theft of data or0 sensitive 0 information, such as customer details. • User can’t adjust to the system because they have not IT knowledge. 31 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Estimation and scheduling The unique nature of individual software projects creates problems for developers and managers in estimating and scheduling development time. 2. Sudden growth in requirements As a project progresses, issues that are not identified earlier can create a last-minute hurdle to meeting deadlines. and anticipate the worst-case or heaviest-use scenario. 3. Employee turnover Every project has a number of developers working on it. When a developers leaves, he or she may take critical information with him/her. This can delay, and sometimes derail an entire project. Ensure you have resources where team members can collaborate and share knowledge. 4. Breakdown of specification During the initial phases of integration and coding, requirements might conflict. Moreover, developers may find that even the specification is unclear or incomplete. 5. Productivity issues On projects involving long timelines, developers tend to take things easy to begin with. As a result, sometimes, they lose significant time to complete the project. 6. Compromising on designs In order to get stuck into the next ‘real’ tasks, developers tend to rush the design-process. This is a waste of programming hours, as designing is the most critical part of software development. 7. Gold plating Developers sometimes like to show off their skills by adding unnecessary features. For instance, a developer might add Flash to a basic login module to make it look ‘stylish’. Again, this is a waste of programming hours. 32 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 8. Procedural risks Day-to-day operational activities might hamper due to improper process implementation, conflicting priorities, or a lack of clarity in responsibilities. 9. Technical risks Sometimes software development firms reduce the functionality of the software to compensate for overruns pertaining to high budgets and scheduling. There is always a conflict between achieving maximum functionality of the software and peak performance. In order to compensate for excessive budget 0 0and schedule overruns, companies sometimes reduce the functionality of the software. 10. Unavoidable risks These include changes in government policy, the obsolescence of software or other risks that cannot be controlled or estimated. As the field of software development becomes more and more complex, the risks associated with it have intensified. It is vital that development firms focus on strategic planning to mitigate such risks. 11.Bad Timing Speed matters. In a highly competitive environment, one day can mean big profits or big setbacks. Scheduling problems can arise for a variety of reasons, for example: the time for the project was initially incorrectly calculated and set; the project manager does not properly track employees, skills, task status; the functional features of the final product were not determined in a timely manner; unexpected and urgent expansion of the project scope; lack of resources,. Tips to avoid this software development risk: apply agile methodologies, ensure the maximum involvement of all team members in planning and estimating, receive feedback at all stages, starting from the earliest ones, involve the Owner or Stakeholders. Another solution may be an emergency expansion of the team to increase the speed of development, however, this can significantly affect the project budget. 33 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 12.Poor Code Quality and Technical Risks Technical risks in software development are often a pitfall, something that is not immediately noticeable but with serious negative consequences. In an effort to get an innovative product, companies often require the use of cutting-edge technologies, which themselves can have a number of significant disadvantages. However, this is not the only reason that increases the risks: lack of professionalism and knowledge of team members; constant changes in software requirements; the technology used does not have a sufficient level of development and community support (it cannot provide the necessary functionality); too complex multi-part project; the implementation of project modules (in, for example, an existing platform or application) turned out to be more difficult than expected. In this case, only flexible risk management can help. However, as practice shows, in case of serious obstacles, it will not be possible to completely avoid 13 Poor Productivity Drop-in productivity is also among software development risks. This usually occurs when 0 0 working on projects with a long timeline. Engineers motivated at the very beginning by the end of the project can hardly cope with the tasks. The downside of a long project can be a waste of time in the early stages when the illusion persists that the deadline is not too soon. The reasons for poor productivity include: poor project management incorrectly chosen methodology incorrectly matched team members. 34 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Tips to this type of risk are hidden in their reasons: using agile methodologies allows to maintain the productivity and motivation of all team members throughout the project since the processes are divided into shorter periods of time. In addition, it is an opportunity for the project manager to mentor and coach the team, which also helps to increase and maintain a high level of developer involvement. The Product Owner will also be more informed about the state of tasks and will be able to observe the project. 14 Poor Management As statistics show, 32% of projects fail due to poor project management. This concept usually includes: poor communication and interaction within the team; insufficient qualification level of PM; lack of leadership and analytical skills; poor risk management in software development. One of the consequences of poor project management can be the turnover of employees: key project developers leave the team, without passing on crucial information on the project to anyone, this entails delays in development, failure to meet deadlines, and budget. Therefore, high standards are always set for the project manager. He must combine the traits and skills of a strategist and tactician, be deeply involved in the project, effectively communicate with the team, build a strong organizational framework, and implement elaborate documentation processes. 1.3………………………………………………………………………………………………………. 0 0 35 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 2.1 0 Software development tools 0 A programming tool or software development tool is a computer program that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs, that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a physical object. The most basic tools are a source code editor and a compiler or interpreter, which are used ubiquitously and continuously. Other tools are used more or less depending on the language, development methodology, and individual engineer, often used for a discrete task, like a debugger or profiler. Tools may be discrete programs, executed separately – often from the command line or may be parts of a single large program, called an integrated development environment (IDE). In many cases, particularly for simpler use, simple ad hoc techniques are used instead of a tool, such as print debugging instead of using a debugger, manual timing (of overall program or section of code) instead of a profiler, or tracking bugs in a text file or spreadsheet instead of a bug tracking system. The distinction between tools and applications is murky. For example, developers use simple databases (such as a file containing a list of important values) all the time as tools However a full-blown database is usually thought of as an application or software in its own right. For many years, computer-assisted software engineering (CASE) tools were sought after. Successful tools have proven elusive. In one sense, CASE tools emphasized design and architecture support, such as for UML. But the most successful of these tools are IDEs. 1. Front End Web Development 36 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 HTML and CSS: HTML, CSS are the building blocks for web development. Their Frameworks like Bootstrap and Materialize are most widely used in web development. Twitter Bootstrap is popular for its Responsive design and Flexbox and CSS Grid System are also trending topics in CSS, and they are used without any framework to develop responsive websites. Another trending development technology is Motion UI. It keeps simplicity to a site. Since a large number of web users, today got tired of GLFs and flashing advertisements. Web developers are using its animations that will allow adding styling and make your site unique among thousands of others with static UI JavaScript and its Front-End Frameworks like Angular and React and Vue.js are currently most trending frameworks that need to be used in your project. CSS Frameworks like SASS or LESS. SASS is preferable and widely used than LESS. Image Editing- Photoshop, GIMP. 2. Back End Web Development 0 0 Server-Side Languages/Technologies: Node JS, Python and PHP are the more widely used languages for Web Development in 2018. The other languages used in web development are Ruby, C# & ASP.NET Database: MongoDB is currently popular, with its non-relational database, MySQL is popular relational database. Oracle, SQL Server, PostgreSQL, Firebase are other database systems used in web development. Back-End Frameworks: Express is the popular frame work for JavaScript. Adonis and Hapi.js are also best frameworks in JavaScript. Frameworks for PHP like Laravel, CodeIgniter, Symphony and Yii2 are popular. For Python- Django, Flask, Web2py are widely used frameworks, and for Ruby – Ruby on rails, and for C# – .NET are best frameworks used. For Mobile Applications, React Native, Native Script, Ionic, PhoneGap are the leading frameworks 37 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Visual studio with ASP.NET ASP.NET is an open-source server side web application framework designed for web development to produce dynamic web pages developed by Microsoft to allow programmers to build dynamic web sites, applications and services. It was first released in January 2002 with version 1.0 of the . NET Framework, and is the successor to Microsoft's Active Server Pages (ASP) technology. ASP.NET is built on the Common Language Runtime (CLR), allowing programmers to writ ASP.NET code using any supported .NET language. The ASP. NET SOAP extension framework allows ASP. NET components to process SOAP messages. ASP.NET's successor is ASP.NET Core. It is a reimplementation of ASP. NET as a modular 0 0 web framework. together with other frameworks like Entity Framework. The new framework uses the new open-source . NET Compiler Platform (codename "Roslyn") and is cross platform. ASP.NET MVC, ASP.NET Web API, and ASP.NET Web Pages (a platform using only Razor pages) have merged into unified MVC 6, 38 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development Recently started to use a ASP.net for application development work. I use MS SQL Server 0 0 Express Edition for developing Project in ASP.net Core. Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, a macOS and Linux. It comes with build support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages (such as C++ .C#. Java. Python. PHP. Go) and runtimes (such as NET and unity ) I found the method how to use MS SQL Server directly from Visual Studio Code. I don’t need to install a third party software to run SQL query. MS SQL 39 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 The SQL Server is a relational database management system from Microsoft. The system is designed and built is to manage and store information. The system supports various business intelligence operations. analytics operations, and transaction processing. The information stored on the server is stored in the relational database. However, since the system is much more than a database, it also comprises of a management system. SQL stands for Structured Query Language, a computer language that manages and administers the server. There are many Versie of the SQL ever, each subsequent version being an improved model of its predecessor. 0 0 Microsoft SQL Server has numerous applications in the business world. The first and most obvious one is the database is used to store and manage information. However businesses that hold sensitive customer information such as personal details, credit card information, and other confidential ty. The system also allows the sharing of data files by information will ben computers in the same network, a factor that increased reliability. The SQL server is also used to increase the speed with which data is processed, allowing large operations to be executed with ease. With the information stored in the database, businesses will have a reliable backup system. Crystal Reports 40 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Crystal Reports is a business intelligence application used to create custom reports from a variety of data sources. The package includes the major features needed for a business to create a database reporting environment, such as data access, report design/formatting, report viewing, and application integration. This allows the application to be enterprisewide, available to users, and to support data reporting from report creation to upload and execution. Crystal Reports Features The main purpose of Crystal Reports is to allow users to pull their desired data from a data source, such as an Oracle or MS SQL Server database, and present the data in a repeatable and organized way. Crystal Reports provides you with a powerful, dynamic, and actionable reporting solution that helps you design, explore, visualize, and deliver reports via the web or embedded in enterprise applications. 0 0 Using this crystal report covered my application development's reporting part. 41 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Prototype Prototype is an early sample of design used to get feedback and rapid experiments with new ideas. • Limit the expenses of development • Test the design concepts • Test the usability of the product Prototypes typically created with a mixture of sketches, wireframes or mockups, prototypes depending on the project timelines and these are representations of the design. This can use as a mechanism to get user feedback early and quickly on your design where you can iterate on making your product a better one. Sketches Sketching is a drawing, which you could easily with a papers and pens with less cost. Mostly sketching has used in the early stages of the design process to get new ideas for the product as well as use to identify the users pain point. Low fidelity sketches can mostly use identifies user pain points and gets new ideas for the product at early stage. With sketches, you can rapidly iterate the design with a low cost to make the product more useable. 0 Pradeeban.A (col/a-064620) 0 Unit-30 applica琀椀on Development 42 | P a g e Sketch is a very popular tool within the design community that enables you to create hi-fi interfaces and prototypes. One of the great features is Symbols, where you can design UI assets and elements for reuse. This helps create design systems and keep your interfaces consistent. From there, you can easily export your design into a clickable prototype. If you are an In Vision user, make sure you check out the Craft plugin 0 0 . Wireframes Wireframes are representation of layouts and mostly focused on the layout of the content. Mostly use gray scale or black and white. In low fidelity wireframing, you can use tools to create gray scale wireframes, which is richer way than sketching at the beginning of the design process. 43 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 NetBeans NetBeans - web development tool NetBeans is an open-source IDE that allows you to develop desktop, mobile, and web applications. The tool is written in Java and allows you to quickly and easily create and develop applications. NetBeans is our top choice in the drag and drop software development tools category and web developers love it. Features Tools for JavaScript, HTML5 and CSS3 Community provided plugins Ability to write buga free code Fast code editing Supports multiple languages Atom Atom is an all around text editor and useful software development tools. It is an open-source that can be used and customized to do anything without the added effort of modifying the configuration file. 0 0 Based on its suitability for the development of management tools we’ve included Atom in our software development tools category. Features Cross-platform editing Smart autocompletion allows for faster coding In-built package manager Comes with 4 UI and 8 syntax themes Easy to customize and style Visual Studio Code Editor Some of the elements developers love about GitKraken are also present in Visual Studio Code, a code editor by Microsoft. Offering an intuitive UI with a prominent sidebar, 44 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 powerful defaults, discoverable extensions, and more, VS Code provides a simple and clean code editing platform for student developers. VS Code users appreciate the ability to organize files by folder or project; there is also smart editing for built-in languages like JavaScript and Typescript, which can come in handy for students who are constantly being introduced to new coding languages. JetBrains JetBrains is a set of professional software development tools for coding in Java, Kotlin, C#, C++, Ruby, Python, PHP, JavaScript, and more languages. You can get free access to all JetBrains IDEs if you are students or teachers. You can verify by several options: your educational email, ISIC or ITIC card, official document, or with Github pack. Cloud9 IDE Cloud9 IDE is an online integrated software development environment. It supports many programming languages like C, C++, PHP, Ruby, Perl, Python, JavaScript and Node.js. Features Allows to clone entire development environment Built-In Terminal for command-line wizard Code Completion suggestions helps software developers to code faster and avoid typos The Debugger helps developers to set breakpoints, and inspect variables of any JS/Node.js app Simply drag any file or Terminal to create multiple split views Developers can select an extensive set of default Runners to execute app, such as Ruby, Python, PHP/Apache 0 Sublime Text 0 Sublime Text is a sophisticated text editor for code, markup, and prose. There’s a lot of shortcuts that enable you to open files and jump between lines easily. Sublime Text let you 45 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development change many lines at once due to the multiple selection option. You don’t need to go through the menus, you can just search for what you need. You can also switch between projects easily. It works very well! 0 0 Notepad++ Notepad++ is open source code editor written in C++. It supports various programming languages running under the Microsoft Windows environment. But is has a few drawbacks. Here, is a curated list of top 10 alternatives which can replace Notepad++. This list includes commercial as well as open-source code editors (IDE) with popular features and latest download link. jEdit, jEdit, a code editor program which is written in Java. This open source tool supports hundreds of plugins and macros. It offers a large collection of plugins maintained by a worldwide developer team. Features Built-in macro language & extensible plugin architecture Allows copy and paste with an unlimited number of clipboards You can download plugins with the help of the plugin manager. Register contents are saved across editing sessions. Allows auto indent, and syntax highlighting over 200 languages textMate TextMate is a versatile plain text editor for mac with unique and innovative features. The tool offers support for many programming languages, writing prose in structured formats such as blogging, running SQL queries, writing screenplays, etc. Features Auto-Indent for Common Actions CSS-like Selectors to find the Scope of Actions and Settings Dynamic Outline for Working With Multiple Files Function Pop-up for Quick Overview and Navigation Run Shell Commands from Within a Document Visual Bookmarks to Jump Between Places in a File 46 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Zend Studio Most web developers opt for Zend Studio because of its optimal speed. Writing and debugging code in Zend Studio doesn’t demand any extra effort and time from developers. While supporting PHP 7, it debugs PHP scripts by integrating X-ray, Debugs, and Zend Debugger. This comprehensive PHP IDE comes with an exciting set of features and powered to deploy applications on various servers, including servers in the cloud. Developers can extend Zend Studio via Eclipse plugins. Zend Studio Features Indexing and searching PHP Code. Faster Performance in the validation. Zend Framework & Zend Tool Integration. Docker Support. Support for Eclipse Plugin. Zend Studio Specialties 0 0 Languages supported: PHP, JavaScript, Visual Basic, C, C++, and C#. Platforms supported: Microsoft Windows, Linux, and MacOS. PHPDebugbar PHPDebugbar is a PHP debugger that can run with any project and display data from a broad range of web apps. This PHP development tool includes two parts: main bearer object and data collectors and the render. A Standard-bearer includes a pre-configured builtin set of collectors. Along with PHP, you can also catch JavaScript and HTML. In addition, PHPDebugbar can inspect CSS elements and monitor networks. By offering more features that developers expect, it becomes a quite impressive open source solution. It can be the best option for the profiling of data from any web application. It allows you to create your own collection for easy integration. PHPDebugbar Feature Monitor network traffic. Handles AJAX requests. Log & debug directly to Debugbar. Fast & easy to use interface. Preview config& application config. 47 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Coffee Script and Markdown, and even extensions to the built-in Visual Studio Browser Link dynamic data exchange with open browsers in your development environment. Another reason to check out Web Essentials: Scott Handelman says, "It's the Web Team's most important feature playground. It's a peek into the future of Visual Studio." On the downloads page you'll find Web Essentials versions for Visual Studio 2010, 2012 and 2013. (Note, however, that Web Essentials 2010 offers fewer features than the newer versions.) There are nightly builds available through GitHub, where you can also register issues or submit pull requests for contributions. Agile Agile approaches in software development are group of software development methods that speed up the software development process. Basically, agile development-based methodology is a different way of managing software projects as opposed to other traditional software approaches. agile approaches constitute a set of exercises used from software development, developed by experienced software development practitioners Agile methods are incremental in which the increments are small, the new software product produced using agile methods is released and made available to customers in less than three weeks these methods involve the customer in the entire development process in order to accommodate their changing requirements during the process. Agile methods also minimize documentation by using internal communications as opposed to formal meetings with written documents. 81 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Characteristics of Agile Methodologies are: Modularity - this allows the development process to be broken down into specific components referred to as activities which enables transformation of software vision into reality iterative - agile processes are based on short cycles where completion of each cycle Iterative completes a set of activities. Time bound - time limits can be set on each iteration and can therefore be scheduled Activities may also be rescheduled if they cannot be completed within the time limits Parsimony - agile processes requires few activities that are necessary to mitigate risks and achieve their goals. By doing so, they enable system developers to finish their work within an aggressive schedule, Adaptive - risks that may be exposed during Iteration are adapted by agile processes the cannot be adapted, the activity may be discarded Incremental - agile processes builds a system progressively. Each increment is tested separately Convergent - this states that all the risks worth attacking are actively attacked at the same time the system is being delivered in increments. This is done to ensure success of the system in a rapid format People oriented - agile approaches are keener on people over the development process. People are involved during the entire development process Collaborative - agile approaches enforces communication among the development team members since communication is an important part of developing a software project 82 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Key Principles of Agile Methodologies are: • Active user involvement is imperative The team must be empowered to make decisions Requirements evolve but the timescale is fixed • Capture requirements at a high level: lightweight & visual • Develop small, incremental releases and iterate • Focus on frequent delivery of products • Complete each feature before moving on to the next • Apply the 80/20 rule • . Testing is integrated throughout the project lifecycle- test early and often • A collaborative & cooperative approach between all stakeholders is essential Challenges faced with the implementation of agile approaches are: • Project managers may be reluctant to accept the risk of the new agile approaches since they don't have experience on them. • Many big organizations have their own standards on quality that have to be met for all the projects. These are likely to be incompatible with agile methods • Agile approaches work best with high skilled team members. However, many organizations have people with low skill levels which may not be effective for agile processes. • There may be cultural resistance to agile processes. This is particularly common in organizations that have been using conventional systems engineering processes for long time. 83 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Scrum (software development) Scrum is the type of Agile framework. It is a framework within which people can address complex adaptive problem while productivity and creativity of delivering product is at highest possible values. Scrum uses Iterative process. Silent features of Scrum are: Scrum is light-weighted framework Scrum emphasizes self-organization Scrum is simple to understand Scrum framework help the team to work together Lifecycle of Scrum: Figure 1 07-06-2019 84 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Sprint: A Sprint is a time-box of one month or less. A new Sprint starts immediately after the completion of the previous Sprint. Release: When the product is completed then it goes to the Release stage. Sprint Review: If the product still have some non-achievable features then it will be checked in this stage and then the product is passed to the Sprint Retrospective stage. Sprint Retrospective: In this stage quality or status of the product is checked. Product Backlog: According to the prioritize features the product is organized. Sprint Backlog: Sprint Backlog is divided into two parts Product assigned features to sprint and Sprint planning meeting. Extreme Programming (XP) Extreme programming (XP) is one of the most important software development framework of Agile models. It is used to improve software quality and responsive to customer requirements. The extreme programming model recommends taking the best practices that have worked well in the past in program development projects to extreme levels. Good practices needs to practiced extreme programming: Some of the good practices that have been recognized in the extreme programming model and suggested to maximize their use are given below: Code Review: Code review detects and corrects errors efficiently. It suggests pair programming as coding and reviewing of written code carried out by a pair of programmers who switch their works between them every hour. Testing: Testing code helps to remove errors and improves its reliability. XP suggests test-driven development (TDD) to continually write and execute test cases. In the TDD approach test cases are written even before any code is written. 85 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Incremental development: Incremental development is very good because customer feedback is gained and based on this development team come up with new increments every few days after each iteration. Simplicity: Simplicity makes it easier to develop good quality code as well as to test and debug it. Design: Good quality design is important to develop a good quality software. So, everybody should design daily. Integration testing: It helps to identify bugs at the interfaces of different functionalities. Extreme programming suggests that the developers should achieve continuous integration by building and performing integration testing several times a day. Scrum Roles Scrum has three roles: Product Owner, Scrum Master and Team Product Owner -The Product Owner should be a person with vision, authority, and availability. The Product Owner is responsible for continuously communicating the vision and priorities to the development team. At the same time, Product Owners must be available to answer questions from the team. Scrum Master - The Scrum Master acts as a facilitator for the Product Owner and the team. The Scrum Master does not manage the team. The Scrum Master works to remove any impediments that are obstructing the team from achieving its sprint goals. This helps the team remain creative and productive while making sure its successes are visible to the Product Owner. Team - According to Scrum's founder, "the team is utterly self managing." The development team is responsible for self organizing to complete work. A Scrum development team contains about seven fully dedicated members (officially 3-9), ideally in one team room protected from outside distractions. For software projects, a typical team includes a mix of software engineers, architects, programmers, analysts, QA experts, testers, and UI designers. Each sprint, the team is responsible for 86 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 determining how it will accomplish the work to be completed. The team has autonomy and responsibility to meet the goals of the sprint A key principle of scrum is its recognition that fundamentally empirical challenges cannot be addressed successfully in a traditional "process control" manner. As such, scrum adopts an empirical approach - accepting that the problem cannot be fully understood or defined, focusing instead on maximizing the team's ability to respond in an agile manner to emerging challenges. Basic principles of Extreme programming XP is based on the frequent iteration through which the developers implement User Stories. User stories are simple and informal statements of the customer about the functionalities needed. A User story is a conventional description by the user about a feature of the required system. It does not mention finer details such as the different scenarios that can occur. On the basis of User stories, the project team proposes Metaphors. Metaphors are a common vision of how the system would work. The development team may decide to build a Spike for some feature. A Spike is a very simple program that is constructed to explore the suitability of a solution being proposed. It can be considered similar to a prototype. Some of the basic activities that are followed during software development by using XP model are given below: Coding: The concept of coding which is used in XP model is slightly different from traditional coding. Here, coding activity includes drawing diagrams (modeling) that will be transformed into code, scripting a web-based system and choosing among several alternative solutions. Testing: XP model gives high importance on testing and considers it be the primary factor to develop a fault-free software. Listening: The developers needs to carefully listen to the customers if they have to develop a good quality software. Sometimes programmers may not have the depth knowledge of the system to be developed. So, it is desirable for the programmers to understand properly the functionality of the system and they have to listen to the customers. Designing: Without a proper design, a system implementation becomes too complex and very difficult to understand the solution, thus it makes maintenance expensive. A 87 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 good design results elimination of complex dependencies within a system. So, effective use of suitable design is emphasized. Feedback: One of the most important aspects of the XP model is to gain feedback to understand the exact customer needs. Frequent contact with the customer makes the development effective. Simplicity: The main principle of the XP model is to develop a simple system that will work efficiently in present time, rather than trying to build something that would take time and it may never be used. It focuses on some specific features that are immediately needed, rather than engaging time and effort on speculations of future requirements. Applications of Extreme Programming (XP): Some of the projects that are suitable to develop using XP model are given below: Small projects: XP model is very useful in small projects consisting of small teams as face to face meeting is easier to achieve. Projects involving new technology or Research projects: This type of projects face changing of requirements rapidly and technical problems. So XP model is used to complete this type of projects. Lifecycle We have seen so far that React web apps are actually a collection of independent components which run according to the interactions made with them. Every React Component has a lifecycle of its own, lifecycle of a component can be defined as the series of methods that are invoked in different stages of the component’s existence. The definition is pretty straightforward but what do we mean by different stages? A React Component can go through four stages of its life as follows. Initialization: This is the stage where the component is constructed with the given Props and default state. This is done in the constructor of a Component Class. Mounting: Mounting is the stage of rendering the JSX returned by the render method itself. Updating: Updating is the stage when the state of a component is updated and the application is repainted. 88 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Unmounting: As the name suggests Unmounting is the final step of the component lifecycle where the component is removed from the page. React provides the developers a set of predefined functions that if present is invoked around specific events in the lifetime of the component. Developers are supposed to override the functions with desired logic to execute accordingly. We have illustrated the gist in the following diagram. Figure 2 Lean Development (LD) Methodology Lean Development focuses on the creation of change-tolerant software. This methodology embodies the notion of dynamic stability which can be thought of as similar to how Scrum embraces controlled chaos. Bob Charette, the originator, writes that the measurable goal of LD is to build software with one-third the human effort, one-third the development hours 89 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 and one-third the investment as compared to what SEI (Software Engineering Institute) CMM Level 3 organization would achieve. Principles are: • Satisfying the customer is the highest priority. • Always provide the best value for the money. • Success depends on active customer participation. • Every LD project is a team effort. • Everything is changeable. • Domain, not point, solutions. • Complete, don't construct. • An 80 percent solution today instead of 100 percent solution tomorrow • Minimalism is essential • . Needs determine technology • Product growth is feature growth, not to growth • Never push beyond its limit Scaled Agile Frameworks (SAFe) The Scaled Agile Framework (SAF) helps businesses address the significant challenges of developing and delivering enterprise-class software and systems in the shortest sustainable lead time SAFE synchronizes alignment, collaboration, and delivery for multiple Agile teams. Scalable and configurable, SAFe allow each organization to adapt it to its own 90 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 business needs. It supports smaller scale solutions employing 50 - 125 practitioners, as well as complex systems that require thousands of people. SAFE principles are: • Take an economic view • Apply systems thinking • Assume variability: Preserve options • Build incrementally with fast, integrated learning cycles • Base milestones on objective evaluation of working systems • Visualize and limit reduce batch sizes and manage queue lengths • Apply cadence, synchronize with cross-domain planning • Unlock the intrinsic motivation of knowledge workers • Decentralize decision making Disciplined Agile Delivery (DAD) Disciplined Agile Delivery (DAD) is a people first, learning oriented hybrid agile approach to IT solution delivery. It has risk value delivery lifecycle is goal driven, is enterprise aware, and is scalable 91 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Approach Supporting a robust set of roles . Being a hybrid. DAD a hybrid approach which extent Scrum with proven strategies from Agile Modeling (AMP Extreme Programming (XP), Unified Process (UP), Kanban Lean other method Software Development, Outside In Development (Q) and several Being open Disciplined Agile (DA) a a nan proprietary, freely available framework Supporting several delivery Lifecyle’s DAD extend the construction focused life cycle of Serum to address the end to end delivery recycle from project initiation all the way to delivering the solution to its end users Addressing all aspects of solution delivery DAD includes advice about the techie practices such as those from extreme Programming (XP) as well as the modeling documentation, and governance strategies missing from both Scrum and XP. Providing choices, not prescription. Instead of the prescriptive approach seen in other agile methods, including Scrum, the DAD framework takes a goal-driven approach Kanban Kanban uses the stages in the software development lifecycle (SDLC) to represent the different stages in the manufacturing process. The aim is to control and manage the flow of features (represented by Kanban card) so that the number of features entering the process matches those being completed Kanban is an agile methodology that is not necessarily iterative. Processes Nike Scrum have short iterations which mimic a project lifecycle of a small scale, having a distinct beginning and end for each iteration, Kanban allows the software be developed in one large development cycle. Despite this, Kanban is an example of an agile methodology because it fulfils all twelve of the principles behind the Agile manifesto, because whilst it is not iterative, it is incremental 92 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Principles • Start with what you do now Understand current processes as they are actually practiced and respect existing roles, responsibilities and job titles • Agree to pursue improvement through evolutionary change • Encourage acts of leadership at every level • Service Delivery Principles These principles These Principles acknowledge that organizations are a collection of interdependent services, and to place the focus on the work, not the people doing the work Practices The following practices are activities essential to manage a Kanban system. Visualize - Kanban systems use mechanism such as a Kanban board to visualize work and the process it goes through limit work in progress When you establishments to the amount of work you have in progress in system and use those limits to guide when to start new items you can smooth out the flow of work and reduce lead times, Improve quality, and deliver more frequently Manage flow. The flow of work in a service should maximize value delivery, minimize lead times and be as predictable as possible. Teams use empirical control through transparency, inspection and adaption in order to balance these potentially conflicting goals Make policies explicit Explicit policies help explain a process beyond just the time of different stages in the workflow. Policies should be sparse, simple, well-defined, visible, always applied, and readily changeable by the people working on the service Implement feedback loops- Feedback loops are an essential element in any system looking to provide evolutionary change The Feedback loops used in Kanban are described in the Lifecycle section 93 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Improve collaboratively, evolve experimentally - Kanban starts with the process as it currently exists and applies continuous and incremental improvement instead of trying to reach a predefined finished goal Scrum Strengths Effective and efficient weaknesses Employees lack knowledge communication among team of Scrum lacks engineering members One of the best practices Simple to management practices understand but difficult to Continuous feedback from master Suitable for small the customers Produces projects quality product with customer satisfaction Measuring the growth and productivity of the team and individual is easier with daily Scrum meetings and Extreme programming sprint meetings Quality product with Lack of documentation Poor customer satisfaction Can architectural structure Less easily handle unclear and focus on design Pair changing requirements programming requires Pair programming and mutual understanding and continuous integration common skillset between improves productivity two programmers Works well with simple and small scale projects Lean Eliminate waste Maximize Does not cover technical value of the product and managerial issues Lack of details about its 94 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Kanban Helps in managing implementation Lack of details about its production of a product implementation Increase in communication between the team and stalk Test driven development Crystal Feature driven development holders Positive impact on external Sometimes very time quality of the system consuming due to repeated Writes test cases and test test failures Specific code first using the knowledge and skill set requirements Writes Lean required code, removes duplicates Effective communication Only two type of crystals among team members are defined in details Projects can be clearly (Crystal clear and Crystal classified using Crystal orange) methods Adaptive and incremental in Lacks system validation nature Emphasis more on practices Needs special quality training to write requirement/user stories Less responsiveness to change Need of experienced and trained staff Less appropriate for small scale projects Waterfall Simple to understand and Working software is 95 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 use Each phase is clearly delivered very late and defined and well understood hence it has lots of risks Detailed documentation associated to it is difficult to accommodate changes using waterfall Measuring progress is difficult Not suitable for projects with Rational Unified Process Produces quality product changing requirements Needs expert team members (RUP) Less time for integration trained in RUP Complex Less development time development process Development process is difficult to manage Spiral Requirements change is Not suitable for small manageable Frequent projects Process is difficult delivered of working to manage Can continue software Lower risk of indefinitely failure 96 | P a g e Pradeeban.A (col/a-064620) Unit-30 applica琀椀on Development 0 0 Assessment Criteria (Students are not authorized to modify or write anything on below) Outcomes/Criteria Page P1Explore a business-related problem and produce a well-de昀椀ned problem de昀椀ni琀椀on statement supported by a set of user and System requirements. Feedback P2 Determine any areas of risk related to the successful comple琀椀on of your applica琀椀on. M1 Analyze a business-related problem using appropriate methods and produce a well-structured So昀琀ware Design Document that de昀椀nes a proposed solu琀椀on. Include relevant details on requirements, system analysis, system design. (propose a suitable language) P3 Research the use of so昀琀ware development tools and techniques and iden琀椀fy any suitable tool or technique that you may select for the development of this applica琀椀on. M2 Compare the di昀昀erences between various so昀琀ware development tools and techniques researched. Jus琀椀fy your preferred selec琀椀on and preferred so昀琀ware development methodology. D1 Jus琀椀fy the tools and techniques chosen to realize a custom-built website. Jus琀椀fy your preferred selec琀椀on of tools and techniques in deducing an appropriate solu琀椀on to a business-related problem. 0 0 P4 Create a formal presenta琀椀on that e昀昀ec琀椀vely reviews your business applica琀椀on, problem de昀椀ni琀椀on statement, proposed solu琀椀on and the development strategy. Use this presenta琀椀on as a part of a peer-review and document any feedback given. M3 Develop a func琀椀onal business applica琀椀on based on a speci昀椀c So昀琀ware Design Document with suppor琀椀ve evidence for using the preferred tools, techniques and methodologies. D2 Evaluate any new insights, ideas or poten琀椀al improvements to your system and jus琀椀fy the reasons for including/not including them as a part of this business applica琀椀on. M4 Review the performance of your business applica琀椀on against the Problem De昀椀ni琀椀on Statement and ini琀椀al requirements. D3 Cri琀椀cally evaluate the strengths and weaknesses of your business applica琀椀on and jus琀椀fy opportuni琀椀es for improvement and further development. Strengths: Weaknesses: 0 0 Future Improvements & Assessor Comment: Signature: Assessor: Date: ____/____/______ Internal Veri昀椀er’s Comments: Internal Veri昀椀er: Signature: Date: ____/____/______ 0 0