Wiki

Clone wiki

BMCr / dev_method

Entwicklungsmethode

BMCr ist ein agiles Data Science Projekt.

BMCr umfasst zwei Projekttypen

  1. BMCr ist ein Data Science Projekt, d.h. die Verarbeitung von mglw. unbekannten, schwierigen Daten soll helfen, ein konkretes Problem zu lösen und den Erfolg messbar nachzuweisen.
  2. BMCr ist ein agiles Projekt, d.h. die Planung und Umsetzung finden inkrementell statt.

BMCr ist ein Forschungsprojekt. Die konkreten Inhalte werden fortlaufend erarbeitet und ergeben sich durch den Erkenntnis- und Verständnisprozess. Die Umsetzung ist daher mit Unsicherheiten und Risiken verbunden.

Data Science Projekt

Als typisches Vorgehen in einem solchen Projekt-Typ kann folgender Prozess dienen: https://blogs.technet.microsoft.com/machinelearning/2016/05/20/a-linear-method-for-non-linear-work-our-data-science-process/

Data Science Projekte bearbeiten klare Ziele der Form:

  • How much or how many? (regression)
  • Which category? (classification)
  • Which group? (clustering)
  • Is this weird? (anomaly detection)
  • Which option should be taken? (recommendation)

BMCr ist ein Data Science Projekt für ein Recommender Systems, in dem Nutzer durch aktive Computerunterstützung Canvas Modelle gemeinschaftlich entwerfen.

Zielerarbeitung

Die Erarbeitung von konkreten Zielen leitet den inkrementellen Prozess entlang der sich ergebenen Forschungserkenntnisse. Ziele sollen motiviert werden und deren erfolgreiche Umsetzung einen Wert liefern. Folgende Formulierungen sind zu Beginn jeder Softwarerelease zu vereinbaren.

  • Ziel: gemeinsame Formulierung der Projektteilnehmer und Ausdruck einer Priorisierung
  • Nutzen: Motiviert bzw. begründet das Ziel, z.B. für das Fortkommen im Projekt
  • Wert: ist eine Formulierung des Erfolgs, d.h. ein Ausdruck dessen, was fertig ist, wie nützlich und wo verwendbar es für das weitere Vorgehen ist.

Eine Softwarerelease soll ein motiviertes Ziel in einen messbaren Erfolg, d.h. Wert, umsetzen. Die erste Softwarerelease ist das Minimum Viable Product (MVP).

Agile Entwicklung

In a nutshell Agile is a time-focused, iterative philosophy that allows to build a product step-by-step (incrementally), delivering it by smaller pieces. One of its main benefits is the ability to adapt and change at any step (depending on feedback, market conditions, corporate obstacles, etc.) and to supply only relevant products to the market.

That is why an agile company is usually very flexible, quickly adapts to changes, iterates less while implementing faster, and is able to seize new opportunities as they appear. It enables a fast decision-making process through flexible organizational structure and simple communication.

Quelle: https://realtimeboard.com/blog/choose-between-agile-lean-scrum-kanban/#.V4bPgjV-ud0

Die Planung der Entwicklung erfolgt schrittweise basierend auf den Informationen, die zum Planungszeitpunkt vorliegen und für einen überschaubaren Horizont von einer Releaase, typischerweise wenige Wochen bis 1-2 Monate. Damit wird den inhärenten Unsicherheiten bei der Softwareentwicklung Rechnung getragen.

Konkrete Umsetzung

Die konkrete Umsetzung des Vorgehensmodells kann mit Unterstützung von kollaborativen state-of-the art Tools erfolgen.

Lean Startup

Agile Entwicklung soll schlank, engl. lean, sein. In diesem Zusammenhang taucht wiederholt der Begriff Lean Startup auf, bei dem die Entwicklung neuer Produkte, also nicht nur die Entwicklung von Software, mit starken Unsicherheiten verbunden ist.

Following the trend that Lean could be extended to any industry, Lean was applied in the startup industry in 2008 by Eric Reis as a way of developing “new products and services in circumstances of extreme uncertainty.”

Quelle: https://realtimeboard.com/blog/choose-between-agile-lean-scrum-kanban/#.V4bPgjV-ud0

A typical lean company follows a learn – measure – build cycle, and conducts many tests, frequently connects with customers, understands their value and focuses its key processes to continuously improve it. A never ending cycle leads the startup to sustainability, smart development and success. While reducing the high costs of getting the first customer and even higher cost of getting the product wrong, and shortening technology development cycles, Lean Startup philosophy helps new ventures launch products that customers actually want, far more quickly and cheaper than traditional methods, making startups less risky.

Quelle: https://realtimeboard.com/blog/choose-between-agile-lean-scrum-kanban/#.V4bPgjV-ud0

Agile Vs. Lean

The term Lean is wider than Agile because its smart approach influences all types of losses (not only time loss) such as money, labour, energy, etc. Moreover Jeff Sutherland points that Agile was born after Lean, so they are closely related. Conceptually Agile is a subset of Lean principles and practices which are in turn a subset of Systems Thinking.

Quelle: https://realtimeboard.com/blog/choose-between-agile-lean-scrum-kanban/#.V4bPgjV-ud0

Combine Agile and Lean Startup

… several examples on how agile and lean startup can fit together: 

  • When you’re working with your customers, you are trying to understand what problem they have (and you’re coming up with the solution to that problem).
  • The problem you’re trying to solve has a set of hypotheses you will need to test, and each of these should have a priority (in a business sense) and you should use these priorities to estimate and commit to delivery (if development is required to test those hypotheses)
  • Each release should be focused on what you’re testing currently and using the results of the last tests so that you can re-prioritize as needed
  • Release retrospectives can be used to review the deliverables to make sure they meet the User stories defined

Quelle: https://www.infoq.com/news/2013/09/combining-agile-lean-startup

… benefits that you can get from combining agile with lean startup

The longer you go without releasing the product, the bigger the risk attached to it. Spending 6 months in a dark room developing something isn’t the best way to create startups. What works much better in most cases is a more agile or lean approach to releasing. ie. early and often. This helps to mitigate risk and means our focus is on learning and validating, rather than purely developing.

Quelle: https://www.infoq.com/news/2013/09/combining-agile-lean-startup

… ideas from lean startup can complement agile software development

... and help to focus on the customer needs. He starts by explaining how the user roles from a user story can be linked to lean startup:

“As a [role] I want [feature] so that [benefit].” The most important part of a user story is not the feature but rather the user role and the benefit he wants to achieve.  You have to know your customer segments and their must-have problems in order to provide benefit to the user. If your user stories don’t mention a particular customer group and a problem (which you’ve validated qualitatively), chances are you’re building some sort of waste.

Quelle: https://www.infoq.com/news/2013/09/combining-agile-lean-startup

… use ideas from lean startup in the way that you manage your product backlog

One scientific approach to prioritization would be to eliminate risks highest first and thus accelerate learning. After qualitative validation of the biggest assumptions it’s time to verify them quantitatively. So building an experiment for quantitative verification of the riskiest hypothesis is clearly the most important thing right now. And if the simplest possible way to build that experiment is by giving a working software in the users’ hands, great.

… how the definition of done can look when applying lean startup

You’re done, when you’ve validated, verified or denied a hypothesis. The difference between validation and verification being that you validate qualitatively and verify quantitatively. Registering either a positive or a negative signal when talking to people is qualitative validation. Turning 10% newsletter recipients into paying customers is quantitative verification.

… success of agile depends largely on the product owner managing the customer needs

You can pretend to be doing Scrum or some other agile method just in the IT, but local optimization will inevitably bite you in the ass. Customer development techniques are a powerful tool to help a product owner with his homework – backlog grooming and prioritization.

Quelle: https://www.infoq.com/news/2013/09/combining-agile-lean-startup

Updated