tisdag 20 mars 2012

Software Passion: Open-source style in business

http://www.softwarepassion.se/speakers.do?name=carsten-nielsen

The talk is about Freedom

And the dreams of a developer.

Under pressure from Boss, Customer, Team, Mini-me

You can put stuff in to the system: Money control, time

Put he will still only produce crap.

Creating a relation: -> Demand ->
Requesting support: First contribution: -> Feedback ->
Passing problems: -> Research ->
Get stuff fixed: -> Quality ->
First code-contact: First commit: -> Function ->
First level of creation: adding new functions: -> Concepts

The difference to business?

We cant multy task but our brain can.


Flow is god. The brains is connected to every thing.
Flow: when you raise your comfort zone. To what is exciting and challenging.

For the developer:

  • No multitasking -> keep role & level
  • Enrich your data -> read & meet
  • Find & define your comfort-zone
  • - Communicate -
For the business:


  • Create Transparency
  • Drop rules - create opportunities
  • support swap/change
  • - communicate -


Software Passion: Node.js

http://www.softwarepassion.se/speakers.do?name=anders-janmyr
https://twitter.com/intent/user?screen_name=andersjanmyr
http://anders.janmyr.com/2011/05/not-very-short-introduction-to-nodejs.html

The event loop
the real event loop

Why javascript:
-it is everywhere.
-everything wll eventually be written in it.

Speed
-threads vs events


keeps connections open by default

packages:
express - servers
connect - used by express
request - calling servers

Templating engines
Jade, Mu, ejs, eco....

Libary magick
Socket.io - connecting to stuff.
Tower.js - rails for node

Testing:
asserting is built in to the framwork
testing framworks builds on that.
NodeUnit

Tools
Nodmon - relods on save.
forever -

Debugging
node-inspektor

Deployment
Heroku
Cloud foundary
If you run it your self.... think of things.


Software Passion: Kanban

What is Kanban?
In industry
  •  Automaticly order part when a part is used.
In software development
  • a change mangement process
  1. Start with what you know
  2. Agre to pursue incremental change
Visiual, limit work in progress, flow , process policssis...

Kanban is a way to... ...getting stuff deliverd!

________________________________________________


  1. We lose our ability to plan!
    • No estemations?
      • Mangaging people
      • Release planning
      • etc
      • But esteamtions do not work so why care?
    • Keep features small so the need for a plan is less.
      • ie tasks below two days
    • Reduce variation
    1. Small releases
    2. Options for Re-paning
      1. Reprioritize the input qu
      2. cadence
      3. Pull a planning meeting
  2. It will take longer?
    • No deadlines!
      • The amount of the time which one has to perform a task...
      • ...is the amount of time it will take to complete the task. 
    • Managing by measuring
  3. WIP limit
    • how many features may be active at each stage.
    • Will create bottle necks
      • But that is a good thing.
        • that shows us where we have problems.
      • People will be idle
        • that drives change.
  4. in Kanban, everybody contriutes to the en process
  5. The focus of flow enables creativity.
Bookrecomendation
canban for sceptiks


Software Passion: Tomcat Scaling and Fault Tolerance

http://prezi.com/zvwejw8he2yr/tomcat-scaling-and-fault-tolerance-20/

Think about what's wrong with I am doing.

wisepilot - mobile navigation software

...

Apache as a load balancer


Software Passion: Value-driven development

Tom Gilb
Slides
http://www.gilb.com

Quntafying whats valuable,(not necacery monatary value)
Usability, Performance, or whatever

Deliver value to stakeholders, within limited resources.
Stakeholder is everyone that is influenced by the software indirectly or directly.

Book recomendation

  • Lean startup
Planing language -> Planguage

"All values on one page "


Software Passion: Self organizing teams

 Self organizing teams
Svante Lidman

Motivation
Atonomy - Competence - purpose


Self-Organis:

  • Knowled and learning
    • about the enviroment
    • about goals and utility
    • about how to do the job - or how to learn it
  • communication
    • shared commnication
  • Actionability
    • planning
    • decision making
    • asynchronus governance
  • motivation
  • group dynamics
    • relationships
    • shared memes
  • balance

Software Passion: Keynote: Gojko Adzic

Gojko Adzic
Taking the business along for a journey.


Kanban, Agile, Scrum is only mirrors showing us where we fail. What we do with that image...

Water-Scrum-fall: Applying scrum only to development is a recipe for fail.

Talking about a team with two weeks iterations followed by i  2 month packaging followed by a 1.8 year   business planning.

"The most important peace of information on a requirement document is the phone number to the person who wote it"

Writing assumptions is more important than writing down requirement

  • Feture injection
  • Storrymapping
  • Effect mapping .http://gojko.net/effect-map
    • Continue asking why until you find the money

http://specificationbyexample.com
http://visualisingquality.org

I could easily lower someones bloodpresure , bu shoping their head of, but their is not quality in that.

Maslovs for software

         Successful of achieving the business goal.
      Useful.
    Usable.
  Performance secure.
Deployable functionally ok.


Mesures bussnies bugg instead of technical buggs.

Book recomandations

  • How to measure anything
  • Lean startup

måndag 19 mars 2012

Software Passion: AKKA

Roland Kuhn

Akka is kidn of erlang for java/scala developers. And then some.
This amazing platform works totally asynchronously using the actor feature.
Build powerful concurrent & distributed applicationsmore easily.

An actor:
has behaviour and state and communicates through calls. buting the calls in a stack untill they can be handled.

in Akka all actors have an supervisor that decides what to do if the aktor fails to preform.

http:\\akka.io

I hade no battery during this talk so my notes are a bit spares but this was a interesting talk.


Software Passion: Programing style and your brain


Probably one of the best talks on Software Passion 2012.


Our Brain has two systems: System 1 is giving System 2 false data. (Gur and head)

Computer programming: The most advanced thing we do.
Perfection: What makes programming hard. - The computer has license to kill if we aren't perfect.


Mentions: JSLint will hurt your feelings.
If feelings are hurt: System 2 start rationalising System 1s preferences.
"Thats hardly ever happens" is another way of saying "it happens"


Decide the way you code based on what can be a problem

If there is a feature in your programming language that sometimes is a problem and there is another feature to do the same thing. Use that other feature.

Make you program look like they do what they do.

Write in the language you are writing in. following above rules. What works for java may not work for javaScript.
++x;
++x;
=======
x+=2;
 Designing a programming style demands discipline.


Avoid the abyss

Good code is good for your gut.

Software Passion: Play! framwork

http://www.softwarepassion.se/speakers.do?name=helena-hjerten
http://www.softwarepassion.se/speakers.do?name=johan-andren


Play looks easy
Allowing a mix of java code and temptation in scala.

In 45 minutes the built:


Testing can be done with Junit-test, integration tests and selenium supported by Play framework.

Software Passion: Unit Testing Styles and Mockito

Per Lundholm 

http://prezi.com/h6klz_cq_vkd/unit-testing-styles-and-mockito/

Starts with a unit-testing styles and then describing some interesting parts of mockito.

You need to know what you test:

  • Verify State:
  • Verify Behaviour:

Different mocking components:

  • Dummy Objects
  • Not actually of any production use, but can fill up parameters.
  • Fake Objects:
  • Stubs:
  • Canned answers:
  • Mocks:

Book recommendation:
XUnit Test Patterns - Gerard M

Legacy code: Capture what the legacy system produces as a result and use that as expected in a unit test.
Purpose:

  • To verify that I do not break anything
  • To learn about the legacy code.
  • To see changes.

Book Recommendation:
Working effectively with Legacy Code: Michael Ferris

The talks ends with interesting discussions and questions:

Better to write code that can be tested than code that is private.

To change code you have to have tests.


Software Passion: Combinatorial test

Robert Bergqvist

Sorry Robert. This was just boring!

  • Unit tests
  • Domain testing
  • data-driven tests

Two test approaches

  • Scripted testing
  • Exploratory testing

This guy has written test on a system hi had little knowledge of and he had time to explore it. Wrote automated test based on a model he built of the software.


Software Passion: Software craftmanship

Sandro Mancuso

The speaker asked us to focus on value when talking about Sofware Craftmanship. And told us that the most valuable we produce is code.

The Sofware Craftmanship builds on the agile development moment and looks further. Not only changing the process but focus on the purpose of coding.





Software Passion: Keynote: Jan Bosch

Professor of software development: Jan Bosch Teams:


Bosch talk: A broad talk about different aspekts of good Software development praxis. He talks about the benefits of agile values. I was able to record the following focus points:

"We still treat requirements as they come from God and are written in blood" Jan Bosch
  • Self selected, directed  managed teams. 
  • Focusing on speed. 
  • Testing what works with expermints insted of opinions 
  • Simplify architecture. 
    • Simplify
    • Decouple:
      • No versions New should be able to be used as the old.
      • Teams and components: should not be locked
  • jan @ bosch.com
Cooperations evolvment:
Traditional Development ->
Agail across teams ->
Agile in R&D ->
Continues Integration ->
Continues Deployment - >
R&D as an innovation system 
And then it was monkeys.

Summary:

  • Shadow beleives:
  • Speed:
  • Teams: Smale, crossfunctional, self driected, self manged
  • Architure: is sessential:
  • Not my job: Yes it is.