Engineering and technology notes

What is AGILE?

Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Agile methods or Agile processes generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals. Agile development refers to any development process that is aligned with the concepts of the Agile Manifesto. The Manifesto was developed by a group fourteen leading figures in the software industry, and reflects their experience of what approaches do and do not work for software development. Read more about the Agile Manifesto.

Source: What is AGILE? | What is SCRUM? | Agile FAQ’s | cPrime

How To Build A Mobile App Requirements Document

Business Requirements

Business requirements are criteria that are necessary to meet organizational objectives. Typically they outline how the product or solution will address the needs of the company and/or its users.

These considerations are commonly included when mapping out business requirements for a mobile app requirements document:

  • What is the purpose of the app or product? What are you trying to accomplish?
  • What is the current problem(s) it will solve?
  • How will it streamline or improve the current process or facilitate a new process?
  • What is the product vision?
  • What aspects are already in place? What needs to be added? Will the app need to be started from scratch or can you leverage existing assets?
  • What should the app be able to do (ie. functionality)?
  • What features will it need?
  • What is the monetization or business model?
  • Are there branding and design guidelines that need to be followed?
  • Is the ask feasible?

Product & Technical Requirements

Screen Shot 2016-03-28 at 3.55.13 PM

Source: Jordan Goms via Slideshare

Product and technical requirements outline the systemic and technical needs in order for the product to achieve the desired features and functionalities.

The following should be determined within the product/technical specifications for your mobile app requirements document:

  • What platforms will the app be built for (iOS, Android, etc)?
  • What should operating system versions support it?
  • What are your current services, servers, databases?
  • What are your maintenance needs? Do you need to support it for the future?
  • How long should the app function before an overhaul is needed?
  • Do you have current API/services documentation?
  • Do you have current Apple, Google, or other developer accounts/credentials?
  • Do you have existing provisioning profiles?
  • Are there other credentials that are needed or already exist (analytics systems, platforms, etc.)?

Dependencies

Dependencies are any aspect that the product or product team relies on in order to meet objectives. These may include:

  • Hardware that the app will run on/communicate with (for example, beacons)
  • Service/API documentation
  • Profile/account/platform credentials
  • Any third-party software your app relies on
  • Any flowcharts, documents, or information related to the product

Assumptions

lean-startup-101-23-1024

Source: Lean Startup 101 via Slideshare

In the early stages of a project, there are assumptions about the product that we believe to be true based on knowledge, experience, or current information. Typically, these include:

  • Assumptions about the user (for example, X% of users will see enough value in the product to become regular users)
  • Technical assumptions (for example, technical requirement A will work on the latest operating system)
  • Business assumptions (for example, we can develop the product in proposed time frame)

Constraints

Constraints are the limitations that teams must work within, typically scope, budget, and time. However, they may also include aspects like risk tolerance, resources/staff, and quality requirements.

Submission

Your mobile app requirements document should include all technical assets and information required for app store submission. Defining these requirements early will significantly expedite the submission process when the product is ready for release. While these will vary depending on the app stores being submitted to, below are the assets and information to include for Apple App Store and Google Play.

Recommended: How To Submit An App To The App Store

General Assets

  • Icons of supported sizes (iOS: @1x @2x @3x images | Android: mdpi, hdpi, xhdpi, xxhdpi)
  • Splash screens of supported sizes (iOS: @1x @2x @3x images | Android: mdpi, hdpi, xhdpi, xxhdpi)
  • Screenshots in correct sizes, in required languages
  • App descriptions in required languages
  • Search keywords in required languages
  • List of supported devices and OS versions

Apple App Store

  • iTunes Connect Account access
  • Company/Entity Name
  • App Store app listing name
  • Search keywords
  • Bundle id / SKU
  • Demo account for reviewers
  • Description
  • Support URL
  • Marketing URL
  • Privacy policy
  • App category
  • Copyright information
  • Contact information
  • App icon (1024×1024)
  • App Store distribution provision profile
  • App Store distribution code signing identity
  • Screenshots (correct sizes based on devices)

Google Play

  • Google Play Developer access
  • Store listing name
  • Paid/free
  • Short description
  • Full description
  • App icon (512×512)
  • Feature Graphic (1024×500)
  • App type
  • App category
  • Content Rating
  • Contact Email
  • Privacy Policy
  • Screenshots (correct sizes based on devices)

Things to Keep in Mind

Above we’ve gone through some of the aspects to include for your mobile app requirements document. When you’re crafting your requirements, you’ll also want to keep the following tips and considerations top of mind:

  • Requirements documents can (and probably should) be high-level, as it’s likely the product will change and evolve as new information and learnings become available
  • Be wary of too much detail. While this may seem counter-intuitive, you want to ensure that your product requirements document allows for a degree of flexibility. Intricately detailed documents that are drawn out before engineering begins will most likely need to be changed as the project progresses, which results in wasted time and resources
  • Also be wary of too little detail. A product requirements document shouldn’t be underspecified. Make sure that all important areas are covered. Run the document by the development team to ensure that nothing is overlooked
  • Don’t build your requirements without input. Your team has a variety of experience and insight; take advantage of it

The ultimate goal of creating a mobile app requirements document is to provide a foundation for a successful product. Mapping out business and technical requirements, dependencies, constraints, assumptions, and submission assets will give your team the ammunition needed to get your project off the ground. During development, questions are bound to come up, even with the most thorough PRDs. If questions are not answered in the document, make sure you add them in order to avoid any miscommunication.

During the process of defining the product, it is important to always focus on delivering superior value to the marketplace. It is easy to get distracted by competitors, vocal customers, and architectural issues, and you do need to understand those needs, but in defining a good product, always remember to focus on the value.

Source: How To Build A Mobile App Requirements Document

Giacomo Meyerbeer – Wikipedia

Giacomo Meyerbeer[n 1] (born Jacob Liebmann Beer; 5 September 1791 – 2 May 1864) was a German opera composer of Jewish birth who has been described as perhaps the most successful stage composer of the nineteenth century.[1] With his 1831 opera Robert le diable and its successors, he gave the genre of grand opera ‘decisive character’.[2]Meyerbeer’s grand opera style was achieved by his merging of German orchestra style with Italian vocal tradition. These were employed in the context of sensational and melodramatic libretti created by Eugène Scribe and were enhanced by the up-to-date theatre technology of the Paris Opéra. They set a standard which helped to maintain Paris as the opera capital of the nineteenth century.

https://en.m.wikipedia.org/wiki/Giacomo_Meyerbeer

GPRS core network – Wikipedia

Gateway GPRS support node (GGSN)Edit

The gateway GPRS support node (GGSN) is a main component of the GPRS network. The GGSN is responsible for the internetworking between the GPRS network and external packet switched networks, such as the Internet or an X.25 network.

From an external network’s point of view, the GGSN is a router to a “sub-network”, because the GGSN ‘hides’ the GPRS infrastructure from the external network. When the GGSN receives data addressed to a specific user, it checks if the user is active. If it is, the GGSN forwards the data to the SGSN serving the mobile user, but if the mobile user is inactive, the data is discarded. In the other direction, mobile-originated packets are routed to the right network by the GGSN.

The GGSN is the anchor point that enables the mobility of the user terminal in the GPRS/UMTS networks. In essence, it carries out the role in GPRS equivalent to the home agent in Mobile IP. It maintains routing necessary to tunnel the protocol data units (PDUs) to the SGSN that services a particular MS (mobile station).

The GGSN converts the GPRS packets coming from the SGSN into the appropriate packet data protocol (PDP) format (e.g., IP or X.25) and sends them out on the corresponding packet data network. In the other direction, PDP addresses of incoming data packets are converted to the GSM address of the destination user. The readdressed packets are sent to the responsible SGSN. For this purpose, the GGSN stores the current SGSN address of the user and his or her profile in its location register. The GGSN is responsible for IP address assignment and is the default router for the connected user equipment (UE). The GGSN also performs authentication and charging functions.

Other functions include subscriber screening, IP pool management and address mapping, QoS and PDP context enforcement.

With LTE scenario the GGSN functionality moves to SAE gateway (with SGSN functionality working in MME).

Serving GPRS support node (SGSN)Edit

The Serving GPRS Support Node (SGSN) is the node that is serving the MS/UE. The SGSN supports GPRS and/or UMTS. The SGSN keeps track of the location of an individual MS/UE and performs security functions and access control. The SGSN is connected to the GERAN base station system through the Gb or Iu interface and/or to the UTRAN through the Iu interface. A SGSN is responsible for the delivery of data packets from and to the mobile stations within its geographical service area. Its tasks include packet routing and transfer, mobility management (attach/detach and location management), logical link management, and authentication and charging functions. The location register of the SGSN stores location information (e.g., current cell, current VLR) and user profiles (e.g., IMSI, address(es) used in the packet data network) of all GPRS users registered with it.

https://en.m.wikipedia.org/wiki/GPRS_core_network

Nightfall (Asimov novelette and novel)

Nightfall” is a 1941 science fiction novelette by American writer Isaac Asimov about the coming of darkness to the people of a planet ordinarily illuminated by sunlight at all times. It was adapted into a novel with Robert Silverberg in 1990. The short story has been included in 48 anthologies, and has appeared in six collections of Asimov’s stories. In 1968, the Science Fiction Writers of America voted “Nightfall” the best science fiction short story written prior to the 1965 establishment of the Nebula Awards, and included it in The Science Fiction Hall of Fame Volume One, 1929-1964.

https://en.m.wikipedia.org/wiki/Nightfall_(Asimov_novelette_and_novel)

Ginni Rometty

Virginia Marie “Ginni” Rometty (born July 29, 1957) is an American business executive. She is the current chairmanpresident, and CEOof IBM, and the first woman to head the company.  Prior to becoming president and CEO in January 2012, she held the positions of senior vice president and group executive for sales, marketing, and strategy at IBM. She joined IBM as a systems engineer in 1981.

Ginni Rometty
Ginni Rometty at the Fortune MPW Summit in 2011

Rometty at the 2011 Fortune Most Powerful Women Summit

Born Virginia Marie Nicosia[1][2]
July 29, 1957 (age 60)
Chicago, Illinois, U.S.
Education Northwestern University (B.S.)
Occupation Chairmanpresident, and CEOof IBM
Salary US$32.7m of total compensation including US$24.9m of stock awards (2016)
Predecessor Samuel J. Palmisano

Rometty’s tenure as CEO has been marked by prestigious awards including by Bloomberg who named her among the 50 Most Influential People in the World, and Fortunenaming her among the “50 Most Powerful Women in Business” for ten consecutive years. Her tenure as CEO has been met by criticism related to executive compensation, outsourcing, and IBM’s 22 consecutive quarters of revenue decline

https://en.m.wikipedia.org/wiki/Ginni_Rometty

Vernor Vinge – Wikipedia

Vernor Steffen Vinge (/ˈvɜːrnər ˈvɪn); born October 2, 1944) is an American science fiction author and retired professor. He taught mathematics and computer science at San Diego State University. He is the originator of the technological singularity concept as the phrase is now used and perhaps the first to present a fictional “cyberspace“. He is best known for his Hugo Award-winning novels and novellas A Fire Upon the Deep (1992), A Deepness in the Sky (1999), Rainbows End (2006), Fast Times at Fairmont High (2002), and The Cookie Monster (2004), as well as for his 1984 novel The Peace War and his 1993 essay “The Coming Technological Singularity“.

https://en.m.wikipedia.org/wiki/Vernor_Vinge