1 of 46

Part I- Behaviour Driven Development

Part II - Small Changes Big Impacts

Part III - Higgs Boson , The Goddam Particle.

2 of 46

PART I: Behaviour Driven Development

A Software Development Methodology

3 of 46

Software Development Methodologies

Definition: A Framework used for planning and controlling the process of developing a software

Waterfall

4 of 46

Software Development Methodologies

Iterative

5 of 46

Software Development Methodologies

6 of 46

Software Development Methodologies

  • Extreme Programming
    • Programming in pairs or

doing extensive code review

    • Unit testing of all code

    • Expecting changes in the customer's

requirements as time passes

    • frequent Communication with the customer and among programmers.

7 of 46

Software Development Methodologies

Scrum is an iterative and incremental agile software development method.More definitive sprint commitments than XP

8 of 46

Why Re-Discover?

Quality Software - Give what is wanted and what is asked for

  • Involve all stakeholders in the software development process

  • Developing a culture to Accept Change

  • Better ways to fill the gap between development and other steps of SDLC

  • Approach change from "Ok..Whatever..." to "Gotcha..Oh, this is why i do it this way "

9 of 46

Test Driven Development (TDD)

TDD

10 of 46

Advantages of TDD

  • Test-driven development offers more than just simple validation of correctness, but can also drive the design of a program - By focusing on the test cases first, one must imagine how the functionality will be used by clients (in the first case, the test cases).

  • Test-driven development offers the ability to take small steps when required. It allows a programmer to focus on the task at hand as the first goal is to make the test pass

  • TDD can lead to more modularized, flexible, and extensible code - SOLID

  • Because no more code is written than necessary to pass a failing test case - YAGNI

11 of 46

TDD

Tools for TDD - Junit,NUnit,TestNG

Sample

public void testAddTwoNumbers(){

int result = Addition.add(1,2);

Assert.asserEquals(3,result);

}

Addition.java

public static int add(int a,int b){

return -1;

}

12 of 46

User Stories are Awesome

TDD expects rather DEMANDS that a developer understand the requirements better to write better tests by which in turn drives development

Imagine this....

Developer: Hi BA, we are doing this TDD, can you write tests explaining the requirements as units in unit tests using Junit

BA: What the @#@$? Why should I !!!? I

can give you great documents explaining them all

Developer: Ok ..Sounds good.I will read them write tests and do the development

A month later...

13 of 46

User Stories are Awesome

"This is not what i asked for" says BA and the developer says "but this is what i understood"

14 of 46

User Stories are Awesome

  • Found Accidentally

  • User stories does a great job in explaining a specific unit of requirements
  • User stories breaks up the requirements as follows

As a <who>

I need <what>

So that <what i can do> and

Acceptance Criteria.

Example:

As a user closing the application,

I want to be prompted to save anything that has changed since the last save

so that I can preserve useful work and discard erroneous work.

Acceptance Criteria

The user exits and the unsaved information is saved.

15 of 46

Is this the Holy Grail ?

  • So is this it - Agile with user stories + TDD ? Can we end the quest for perfection here ?

  • Definitely a great improvement to Development Process but is this the

HOLY GRAIL ? sadly NO.

  • Drawbacks in TDD: Few drawbacks related to the current context

Doesn't test the feature as a whole but only in Units.Doesn't actually test the story

Takes a developer to understand a failure because the test names are method names

Doesn't really fill all the gaps in understanding the requirement it just shortens the gap.

16 of 46

Behaviour Driven Development by Dan North

Simple Definition: Behavior - driven development is about implementing an application by describing its behaviour from the perspective of its stakeholders

A bit more complex one: BDD is a second-generation, outside–in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.

Definition in the current context:BDD is a software development methodology based on test-driven development (TDD).It combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software developers and business analysts with shared tools and a shared process to collaborate on software development.

17 of 46

Behaviour Driven Development

BDD is a second-generation, outside–in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.

You are doing second generation development process if you use:

  • User Stories based agile development

  • eXtreme Programming

- TDD

- Acceptance Driven Test Planning

- Continuous Integration

  • Domain Driven Design

18 of 46

Side kick- DDD

Wiki Definition: Domain-driven design (DDD) is an approach to developing software for complex needs by deeply connecting the implementation to an evolving model of the core business concepts. The premise of domain-driven design is the following

  • Placing the project's primary focus on the core domain and domain logic
  • Basing complex designs on a model
  • Initiating a creative collaboration between technical and domain experts to iteratively cut ever closer to the conceptual heart of the problem.

Core pieces:

  • Domain: A sphere of knowledge (ontology), influence, or activity. The subject area to which the user applies a program is the domain of the software.
  • Model: A system of abstractions that describes selected aspects of a domain and can be used to solve problems related to that domain.
  • Ubiquitous Language: A language structured around the domain model and used by all team members to connect all the activities of the team with the software.
  • Context: The setting in which a word or statement appears that determines its meaning.

19 of 46

Behaviour Driven Development

BDD is a second-generation, outside–in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.

Development delivers runnable tested features - software that matters

Stories describing Features from Stakeholders point of view.

20 of 46

Behaviour Driven Development

BDD is a second-generation, outside–in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.

pull-based - like scrum where developer volunteers to take a task not voluntold

multiple-stakeholder, multiple-scale - Multiple stakeholders must define an application's behaviour which means a user story written should have inputs ranging from PDM,Sales,Accounting,Security,DataCenter,Legal,Customer Support,Web Design etc

21 of 46

BDD - Lets Dive in

It starts with the change to the User Story format.

BDD Mandates..

  • Team writes the story.

Stakeholders describe features and outcomes in 1st draft

Blend terms from multiple domains to create a ubiquitous language and use that to write stories (DDD)

QA identifies testable context , dev provides the estimates and feasibility to fit that story in a sprint,Web design maps user interaction onto UI elements

  • The acceptance criteria should explain the behaviour and MUST be testable

22 of 46

BDD Story Format

Title(one line describing the story)

Narrative: Described as a user Story

In order to [benefit] :uses a ubiquitous language developed by the team

As a [role] :Benefit is the rationale , might be testable

I want to [feature] : Should fit in a sprint , otherwise break up into smaller stories

Acceptance Criteria:

Scenario: Title : Describes the outcome of an event or behaviour

Given[context] : Context the event is gonna happen

And[some more context]: Must be testable

When[event] : Not always simple

Then [outcome]

And [another outcome]

Scenario:.....

23 of 46

BDD Story Format

Scenario : Payor has no sufficient funds...

24 of 46

Applying TDD to BDD

Now that we have BDD format story , the next step is to apply TDD to the this Story. After all, BDD is TDD applied to the behaviour of the application rather than specification.

Traditional TDD

25 of 46

Applying TDD to BDD

The BDD Cycle

26 of 46

BDD Tooling

  • Any Development methodology will be associated with a tool, and for BDD you MUST use the tools recommended by BDD to reap the fruits of the hard work you did in defining your stories.

  • We might apply TDD tools like Junit , TestNg..but they they become cumbersome when applied to BDD cycles. Also the report generated is not really usefull as It will take a developer to understand the failures,also the gap between the stories implemented and testing will still not be filled.

  • So we have to use the special tools recommended by BDD in addition to traditional ones and they are ..

JBehave

EasyB

Cucumber

  • Yes, they are so special using them will allow you to literally run and test the User Stories. Yes they take your user stories as input . Coolest :)

27 of 46

BDD Tooling - JBehave

  • A quick walk through of JBehave

It will seem difficult and we might think why to go through all this pain but

TESTING THE BEHAVIOUR OF THE APP DURING DEV IS EVEN BETTER

28 of 46

BDD - Summary

Pros:

  • Getting verification from BAs and testers earlier and more effectively in SDLC
  • Automated regression suite defined by BAs
  • Always up-to-date software requirements
  • YAGNI

Cons:

  • Getting the all the stakeholders involved in writing a story is easier said than done
  • Not all the cases can be easily described using the keywords that are supposed to be used
  • Convincing the customer and management to trust and contribute to the approach

End of the day it is another step in the direction of producing a quality software.

29 of 46

PART - II

Small things.Big impacts

30 of 46

We are Sorry Sea Turtles

Lays eggs on the seashore

After hatching in the night , the newborn's evolutionary instincts push it to move towards the brightest light in view, which naturally would be the sun or the moon, leading them toward the ocean horizon and into their new ecosystem, they got to reach the sea at least within a minute.

Unfortunately the city lights misguide them towards the cities instead of the sea and they eventually die

31 of 46

Old Age Homes and Orphanage Together - Smart

  • Old people left alone in old age homes need someone to hang around and it is commonly know that they miss this grand children a lot
  • And the kids in Orphanage are in need of someone who can take care of them with love
  • So why not have them both in same place , the kids have grandparents and the old people have grand children to hang around and show love.
  • Not my Idea :) ... Already being implemented in Delhi.

32 of 46

Don't throw , RePair - Welcome to Repair Café

"The raw materials to make things you use are not going to last forever so you better reuse what you have" - Says a self motivated community in Amsterdam.

People from various walks of life meet at a place (Repair Café) say one knows electronics , the other knows vessels , the other knows toys ..etc and they all roll the sleeves up for repairing.

Philosophy:

You fix what you know to fix .

You get yours fixed from who knows to fix.

33 of 46

PART - III

Higgs Boson - Goddamn Particle

34 of 46

Periodic table

Every one of us at some point in our life must have seen this. Some Hated it and Some Loved it.

35 of 46

Standard Model of Particles

Quantum Physics: This is relatively new and yes there are people out there who love even this.

36 of 46

Fundamental Forces of Nature

  • Gravity

  • Electromagnetic Force

  • Strong Force (Strong Nuclear Force)

  • Weak force(Weak Nuclear Force)

37 of 46

Gravity

The gravitational force is weak, but very long ranged. Furthermore, it is always attractive, and acts between any two pieces of matter in the Universe since mass is its source.

A childs play can defeat gravity, thats why it is the weakest.

38 of 46

Electromagnetic Force

  • The electromagnetic force causes electric and magnetic effects such as the repulsion between like electrical charges or the interaction of bar magnets. It is long-ranged, but much weaker than the strong force. It can be attractive or repulsive, and acts only between pieces of matter carrying electrical charge.

39 of 46

Strong Force

  • The strong interaction is very strong, but very short-ranged. It acts only over ranges of order 10-13 centimeters and is responsible for holding the nuclei of atoms together. It is basically attractive, but can be effectively repulsive in some circumstances.

40 of 46

Weak Force

  • The weak force is responsible for radioactive decay and neutrino interactions. It has a very short range and, as its name indicates, it is very weak.

41 of 46

Link between Standard Model and Forces of Nature

Bosons(Force carriers) - Forces link

  • Photons are responsible for electromagnetic force

  • W and Z are responsible for weak force

  • G - Gluon is responsible for Strong force

  • Gravity is left out of Standard model

42 of 46

What is Higgs Boson and what does it do ?

  • For the particles to exist and interact the way we have explained so far they need mass
  • Without mass everything is a massless particle and will behave like photon travelling at speed of light and there will be no forces of nature.
  • But what gives particles the mass - Jumps in Higgs fields and the force carrier Higgs Boson.
  • Yes Higgs Boson is the force carrier which gives mass to the particles.Imagine a pool of water when you wave your hands through it , it restricts your motion a bit (not as free as waving your hands in free air). Higgs field is like this pool of water which slows down the particles which interact with it.When the particles slow down they acquire or at least appear to acquire mass.It is very reason for the formation of the matter.The Goddam particle.
  • All other bosons existence is verified and Higgs Boson is being verified at LHC - Good news!!! they almost found it.

43 of 46

Higgs Boson

44 of 46

How to verify its existence ?

  • First how to produce it - collide protons (made of quarks) at near speed of light and high energy - This is what LHC at CERN does
  • Higgs Boson Decays into other much lighter particles the instant it is formed, so there is really no way to see the higgs boson ..But its existence can be verified by the probability density of the particles it decays into at the moment of collision - This is what the Detectors at CERN does.

Ok it exists so What's in it for me ?

  • A giant leap in understanding how universe works
  • 50 of years of theoretical physics proved right
  • Opens new avenues of science
  • A strong foundation for Grand Unified Theory, Dark matter, Dark energy , Supersymmetry , Parallel universe, Extra dimensions and most of the unanswered questions in physics today

45 of 46

Happy Scientists

46 of 46

Thank You

for your patience.