to support the ability for systems to change, we should be able to safely make big changes (supported by automated scenarios), as well as the small ones (supported by automated object specifications).
business goal, one or more actors, one or more impacts and one or more ways to support or prevent these impacts
You always start with the business goal; it is your map’s root node. You then grow the map out from the goal by first identifying all the actors (e.g. the customer or the team) that could help or prevent the project from achieving the goal. Each actor could have multiple ways to help or hinder achieving the goal, we call these impacts.
The last layer of an impact map defines what the project or delivery team can do in order to support or prevent particular impacts from happening, and this is the layer where your software options come into play.
In BDD we use Cynefin to identify which features require the most attention
Value and complexity analysis
reuse
outsource
Cynefin to make strategic planning decisions based on value/complexity analysis
Planning in examples
Usage-centered design
Ubiquitous language
eliminate the cost of translation
borrowed from DDD (Domain Driven Design)
'Given, describes the initial context for the example'When' describes the action that the actor in the system or stakeholder performs'Then' describes the expected outcome of that action
Introducing the three amigos
no single person has the full answer to the problem
User stories and backlog items don’t give the designers a context to work from
don’t give the project team any sense of “completeness
don’t provide a good-enough mechanism for looking ahead at the difficulty of upcoming work
Staring at the set of extension conditions in a use case lets the analysts suss out which ones will be easy and which will be difficult, and to stage their research accordingly
Here 5 reasons why I still write use cases
The list of goal names provides executives with the shortest summary of what the system will contribute to the business and the users
The main success scenario of each use case provides everyone involved with an agreement as to what the system will basically do, also, sometimes more importantly, what it will not do.
The extension conditions of each use case provide the requirements analysts a framework for investigating all the little, niggling things that somehow take up 80% of the development time and budget
The use case extension scenario fragments provide answers to the many detailed, often tricky business questions
The full use case set shows that the investigators have throught through every user’s needs, every goal they have with respect to the system, and every business variant involved
how much should be written up front to get the project estimate into a safe place
several sticky parts for people using use cases
iteration/sprint lengths are so short that it is not practical to implement an entire use case in just one of them.
Writing good use cases (or any other requirements) requires thinking, communicating, and thinking again. It is much easier just to write user-story tags on index cards and let the project blow up later
We have adopted many of the concepts of Agile development—such as daily build and test, build the smallest piece of functionality that delivers value, etc.—but have retained our up-front work. It’s worked extremely well
In 2008 Forrester proclaims MKS as the leader in requirements management in the
independent research report
MKS positioned in the 'Leaders' quadrant in Gartner's first ever Magic Quadrant
for Software Change and Configuration Management (SCCM) for Distributed
Platforms
Gartner positioned MKS as a leader in the 2009 Magic Quadrant for Software
Change and Configuration Management (SCCM) for Distributed Platform
establish a methodology for evaluating software assurance tools
Source Code Security
Analyzers – This class of software tools examines source code
files for security weaknesses and potential vulnerabilities
Web Application Vulnerability Scanners – These tools crawl a web application’s pages and search the application for vulnerabilities by simulating attacks on it
A new effort on Binary Code Scanners - Similar to source code security analyzers, this class of tool analyzes a compiled binary application, including libraries, and provides a report of code weakness over the entire application.
The SAMATE Reference Dataset (SRD) - A community repository of example code and other artifacts to help end users evaluate tools and developers test their methods
Third annual Static Analysis Tools Exposition, which is in progress. The goals are to
enable empirical research based on large test sets,
encourage improvement of tools, and
speed tool adoption by objectively demonstrating their use on real software.
Requirements Definition and Management for DummiesSmart businesses know that high-quality requirements are the cornerstone of any successful software development project. This fun and friendly ebook is an introduction to the role that is central to requirements: the Business Analyst. It explains why the role is so critical and how Business Analysts are transforming software projects.
Scrum
works very fine within small teams, adding new functionality in an incremental
way. But how to transform traditional developers into a scrum way of working
and how to align the multiple teams? How to maintain piles of legacy code? And
how to go about solving the specific issues the high tech industry has with
Agile? The session ‘Scrum is not enough!’ will give an overview of these challenges
and presents best practices to address them.