This document discusses agile development and provides an introduction to key concepts. It begins by explaining common problems that agile aims to address such as unclear requirements, long tasks, lack of quality time, and lack of visibility. It then introduces agile methods like Scrum, XP, and Kanban. The document discusses how agile solves the earlier problems through practices like iterative development, frequent feedback, automation, and visibility tools. It addresses some myths about agile and emphasizes that agile is not a silver bullet and requires the right environment and culture.
This document discusses agile development and provides an introduction to key concepts. It begins by explaining common problems that agile aims to address such as unclear requirements, long tasks, lack of quality time, and lack of visibility. It then introduces agile methods like Scrum, XP, and Kanban. The document discusses how agile solves the earlier problems through practices like iterative development, frequent feedback, automation, and visibility tools. It addresses some myths about agile and emphasizes that agile is not a silver bullet and requires the right environment and culture.
This document discusses UX and provides recommendations for UX teams. It recommends that UX teams embrace an Agile, Lean approach and focus on empowering self-organization, engaging stakeholders, and enabling design work. Specific techniques are suggested such as prototyping personas, story mapping, walkthroughs, and rolling studies. The document emphasizes the importance of understanding user needs, motivations, and behaviors when conducting UX work.
The document discusses agile contracts and compares them to traditional waterfall contracts. It notes that agile contracts are better suited to software projects because they can adapt to changing needs. An agile contract focuses on performing services rather than delivering specific results. It describes elements of an agile contract like having a backlog that evolves, approving team members, charging based on time spent rather than deliverables, and giving customers rights to results. The goal is to structure contracts to capitalize on agile methods' ability to provide the most value within a given budget.
A glance at a scrum team in real software companyPin-Ying Tu
This document provides an overview of a scrum team at a software company. It describes the team's sprint process including planning meetings, daily standups, development practices like pair programming and continuous integration, and documentation practices. The team follows scrum principles with 2 week sprints, daily standups, task boards, and retrospective meetings. Development focuses on delivering working, tested software each sprint through practices like unit testing, acceptance testing, and continuous integration using Jenkins.
This document describes the user story refinement process used for Project GATE, a cross-platform mobile app. It details how the process evolved over time from 1) large user stories created by a separate design team to 2) splitting stories based on screen flows to 3) using two concurrent design teams to reduce lead time. The current process involves an extended design team with representatives from each function to refine rough designs and user stories in meetings. Continuous process improvement is emphasized based on team feedback.
NUS-ISS 4th Agile Community of Practice (CoP): Agile Development with Agile Contract, by Mr Steven Koh, Assistant Director (Agile Coach), IDA-Government Digital Services (GDS)
The document discusses implementing agile methodologies in an organization. It describes the basics of agile, including the agile manifesto and common agile methods. It then discusses how to properly implement agile in stages, including forming, storming, norming, and performing based on Tuckman's model of team development. Key steps outlined for each stage include focusing on teaching, observing, establishing daily stand-ups, choosing tools, implementing metrics and retrospectives, and gradually shifting to a coaching role. The document stresses that agile implementation is an incremental process and takes time for a team to fully transition.
The document outlines an workshop agenda that includes interviewing participants, creating a storyboard and user journey map (UJM) to highlight pain points. It details several steps for developing personas, goals, and a UJM with stages, actions, and thoughts/feelings. Participants will then share their persona, UJM, and get an overview of the mapping process including retrospective vs prospective maps before the workshop concludes with thanks.
- The document discusses how to create an agile contract between a customer and supplier using an agile approach. It emphasizes establishing trust and aligning incentives between both parties.
- An "optional scope contract" is recommended, which has fixed time, cost, and quality, but variable scope. It allows for incremental delivery and regular payment. Either party can terminate early.
- The contract should specify obligations of both customer and supplier to collaborate through activities like sprint planning and reviews. It also allows the customer to change features freely and terminate the project after any sprint if no longer valuable, paying a small cancellation fee.
- Transparency is key to building trust over time through the agile process.
1. The document discusses the importance of unit testing for software development. It explains what unit testing is and provides examples of how to refactor code to make it more testable by separating modules and using dependency injection.
2. It describes common excuses for not writing unit tests and explains how unit testing can help catch bugs, encourage modular code, and give developers confidence when refactoring.
3. Benefits of unit testing include seeing the code in a different way, reviewing class functionality, naturally learning to separate modules, and automatically running hundreds or thousands of checks.
The document discusses refactoring code to make it testable. It describes some common challenges like lack of time and difficulties controlling inputs. It advocates that refactoring into modules and writing unit tests provides benefits like easier testing, enforcing better architecture, and catching errors quickly. An example of refactoring a login view controller is provided, extracting the login logic into a separate manager class to make it more independent and testable. Dependency injection techniques are also covered to simplify testing mock objects. The conclusion stresses that refactoring for testability is important but requires time upfront to see long term benefits.
This document discusses UX and provides recommendations for UX teams. It recommends that UX teams embrace an Agile, Lean approach and focus on empowering self-organization, engaging stakeholders, and enabling design work. Specific techniques are suggested such as prototyping personas, story mapping, walkthroughs, and rolling studies. The document emphasizes the importance of understanding user needs, motivations, and behaviors when conducting UX work.
The document discusses agile contracts and compares them to traditional waterfall contracts. It notes that agile contracts are better suited to software projects because they can adapt to changing needs. An agile contract focuses on performing services rather than delivering specific results. It describes elements of an agile contract like having a backlog that evolves, approving team members, charging based on time spent rather than deliverables, and giving customers rights to results. The goal is to structure contracts to capitalize on agile methods' ability to provide the most value within a given budget.
A glance at a scrum team in real software companyPin-Ying Tu
This document provides an overview of a scrum team at a software company. It describes the team's sprint process including planning meetings, daily standups, development practices like pair programming and continuous integration, and documentation practices. The team follows scrum principles with 2 week sprints, daily standups, task boards, and retrospective meetings. Development focuses on delivering working, tested software each sprint through practices like unit testing, acceptance testing, and continuous integration using Jenkins.
This document describes the user story refinement process used for Project GATE, a cross-platform mobile app. It details how the process evolved over time from 1) large user stories created by a separate design team to 2) splitting stories based on screen flows to 3) using two concurrent design teams to reduce lead time. The current process involves an extended design team with representatives from each function to refine rough designs and user stories in meetings. Continuous process improvement is emphasized based on team feedback.
NUS-ISS 4th Agile Community of Practice (CoP): Agile Development with Agile Contract, by Mr Steven Koh, Assistant Director (Agile Coach), IDA-Government Digital Services (GDS)
The document discusses implementing agile methodologies in an organization. It describes the basics of agile, including the agile manifesto and common agile methods. It then discusses how to properly implement agile in stages, including forming, storming, norming, and performing based on Tuckman's model of team development. Key steps outlined for each stage include focusing on teaching, observing, establishing daily stand-ups, choosing tools, implementing metrics and retrospectives, and gradually shifting to a coaching role. The document stresses that agile implementation is an incremental process and takes time for a team to fully transition.
The document outlines an workshop agenda that includes interviewing participants, creating a storyboard and user journey map (UJM) to highlight pain points. It details several steps for developing personas, goals, and a UJM with stages, actions, and thoughts/feelings. Participants will then share their persona, UJM, and get an overview of the mapping process including retrospective vs prospective maps before the workshop concludes with thanks.
- The document discusses how to create an agile contract between a customer and supplier using an agile approach. It emphasizes establishing trust and aligning incentives between both parties.
- An "optional scope contract" is recommended, which has fixed time, cost, and quality, but variable scope. It allows for incremental delivery and regular payment. Either party can terminate early.
- The contract should specify obligations of both customer and supplier to collaborate through activities like sprint planning and reviews. It also allows the customer to change features freely and terminate the project after any sprint if no longer valuable, paying a small cancellation fee.
- Transparency is key to building trust over time through the agile process.
1. The document discusses the importance of unit testing for software development. It explains what unit testing is and provides examples of how to refactor code to make it more testable by separating modules and using dependency injection.
2. It describes common excuses for not writing unit tests and explains how unit testing can help catch bugs, encourage modular code, and give developers confidence when refactoring.
3. Benefits of unit testing include seeing the code in a different way, reviewing class functionality, naturally learning to separate modules, and automatically running hundreds or thousands of checks.
The document discusses refactoring code to make it testable. It describes some common challenges like lack of time and difficulties controlling inputs. It advocates that refactoring into modules and writing unit tests provides benefits like easier testing, enforcing better architecture, and catching errors quickly. An example of refactoring a login view controller is provided, extracting the login logic into a separate manager class to make it more independent and testable. Dependency injection techniques are also covered to simplify testing mock objects. The conclusion stresses that refactoring for testability is important but requires time upfront to see long term benefits.
This document discusses validating tracking events by implementing an event validator. It explains that clients set tracking-events as a submodule and the growth team sends merge requests when changing the event specification. Each client then implements their own validator. The document notes some issues they encountered with type checking differences between Swift versions and mismatches between Xcode and app Swift versions. It concludes that events should be validated before sending and clients should be alerted after receiving events.
WWDC is Apple's annual developer conference where over 5,400 attendees from around the world gather, including over 1,000 Apple engineers. The summary provides key details on preparation, sessions, labs, and things attendees should and should not do at the conference.
1. The document discusses strategies for developing third party modules, including using frameworks/libraries like SwiftyJSON and avoiding optimizations in favor of strategies.
2. Key third party modules mentioned include analytics tools like Google Analytics and AB testing frameworks.
3. Maintaining high quality third party modules includes writing unit tests and following patterns like the adapter pattern.
This document discusses SwiftyJSON, a library for parsing JSON in Swift. It describes how SwiftyJSON improves upon built-in JSON parsing methods by providing a custom parser that caches nodes to improve performance. The document shows code examples comparing parsing times between SwiftyJSON and built-in parsers, demonstrating that SwiftyJSON can parse JSON over 10 times faster by reusing parsed nodes.
1) The document discusses best practices and challenges for implementing in-app purchases on iOS, including retrieving product information, making purchases, validating receipts, handling subscriptions, and dealing with edge cases.
2) Key steps involve using StoreKit APIs to get available products, initiate purchases, validate receipts with Apple servers, and deliver purchased content. Network issues can cause delays in receipt validation.
3) Auto-renewable subscriptions present additional complexities around tracking multiple products and handling cancellations outside the app. The Apple review process also limits subscription testing in the sandbox.
How to cheat jb detector and detect cheatingHokila Jan
This document contains code snippets to check if a device is jailbroken using several techniques: checking for the existence of files and folders associated with jailbreaking like Cydia.app or /private/var/lib/apt/; checking if the stat function has been hooked by comparing the library it points to; checking if the MobileSubstrate dylib is loaded; checking the DYLD_INSERT_LIBRARIES environment variable. If any of the checks return true, it is determined that the device is jailbroken.