computer science that deals with the development of software applications.” • A software engineer is a person who applies the principles of software engineering to • Design, develop, maintain, test computer software. • Different kind of SWEs − Front-End Engineer − Back-End Engineer − Full Stack Engineer / / SOFTWARE ENGINEERING ?
from Keyuser/Domain Experts, Identify Risks 2. Analysis - Define, document the requirements 3. Design - choose a suitable architecture - reviewed by all the important stakeholders 4. Implementation - Start Development (incl. automated Tests) 5. Testing / Integration (mostly involved in all the stages) - Test until the product reaches the quality standards 6. Maintenance - Deploy in the appropriate market / / SOFTWARE ENGINEERING PROCESS / SDLC
practices that combines software development (Dev) and IT operations (Ops).” • Goal is to automate manual tasks (code, build, test, deploy software) to avoid waiting time • "Endless loop” between the different phases • More frequent updates than with classical release cycle (daily) Several DevOps Solution Vendors Microsoft, Jira, Jenkins, Bamboo, etc. / / DEVOPS - PROCESS DURING DEVELOPMENT
failure factors in IT projects (since 1994) • According to the Chaos Report, about 20% of IT projects have been cancelled and more than 50% have gone over budget. • Reasons − Key success factors • End user involvement • Full support from management • Clear requirements − Main reasons for failure • Lack of cooperation by users • unclear/incomplete requirements • Frequent requirement changes / / WHY SOFTWARE PROJECTS FAILS
demonstrate the different ways that a user might interact with a system − Create context diagram (top level diagram), which systems are connected to each other and how − Defines Functional and non-functional • FA -> functionality, what should the system do • NFA -> "Quality" to the system, e.g. response time, availability, etc. − Create mockups so users can better understand it − Work agile to get fast Feedback, use Fast Prototyping / / REQUIREMENTS – EXPECTATIONS
is already available • Develop a document together with user − Define use cases − Create context diagram, which systems are connected to each other and how − Functional and non-functional • FA -> functionality, what should the system do • NFA -> "Quality" to the system, e.g. response time, availability, etc. − Create mockups so users can better understand it • Techniques to figure out − Workshop with user − Conduct user interview, observe / / REQUIREMENTS - DEFINE
devices not supported) − Outdated Backend Technology (.NET 4.0) − Bad performance (~10 sec per sync request) − Security: No AD integration − No automated test/deployment pipeline why did it come out well ? − We had already a Version and really good documented Requirements − Good Communication with Business / / HOW DID IT COME ?
→ offline access, push notifications) • As of 2021 PWA features are supported to all* Browsers • No Interaction via Appstore needed • Installation via Browser / / PWA