Be Smart! or What they don t teach you about software at school

Similar documents
Be Smart! What they don t teach you. Ivar Jacobson. with Ian Spence, Pan Wei Ng and Kurt Bittner

What you need for IoT: Smarter Methods

Agile Test Plan How to Construct an Agile Test Plan

Introduction to Agile/Extreme Programming

By: Ronny Trefftzs CSCI 5828: Foundations of Software Engineering Spring 2012 Professor: Kenneth Anderson

The Agile PMP Teaching an Old Dog New Tricks

IBM Rational Software

Customer Service Roadmap. The Six Questions You Need to Ask When Scaling Your Customer Service

The Systems Development Lifecycle

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Reducing Business Risk

Innovating at Internet Speed: How to balance speed and efficiency in the digital age

The good news. 34% of software projects succeed. Standish Group, CHAOS Report, 2003

Scaling Up & Scaling Down

TEAMS THAT PLAN TOGETHER, PLAN BETTER BIG ROOM PLANNING IN THE ENTERPRISE

Measuring Effort and Productivity of Agile Projects

Mike Cottmeyer blog.versionone.net

Kanban kick- start (v2)

Software Design COSC 4353/6353 D R. R A J S I N G H

Introduction to Extreme Programming

Tuesday, October 25. Announcements

Over. Value. Colin Garlick Senior Knowledge Engineer Software Education. An Architect s World View. Individuals and interactions. Processes and tools

CS 5704: Software Engineering

Russell Pannone February 10, 2009

D25-4. How Intertech Uses Agile

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

AGILE SOLUTIONS. Agile Basics

Advice on Conducting Agile Project Kickoff. Meetings

Virtually Agile. Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007

Cambridge University Press Agile Testing: How to Succeed in an Extreme Testing Environment John Watkins Excerpt More information

Implementing SAFe: A Roadmap

No Bull Agile. Marc J. Balcer September 2017

Software Development: Theory and Exercises

Agile Manifesto Principles

Leadership in Transforming Organizational Competitiveness Transformational IT

Acceptance Criteria. Agile. Details that indicate the scope of a user story and help the team and product owner determine done-ness.

The conflict between agile and architecture Myth or reality? Simon

How we sped up delivery using feature branches. Agilia Conference 2018 Jan Vilímek, Platform Architect Oriflame Software

The Faster Road to Innovation Why Workopolis Went Agile

Death by dogma versus assembling agile

1. The Case for Agile 2. The Scrum Process 3. Scaling Scrum

The Business Case for Dragon1

BA Role or Skill: David Mantica ASPE Inc. IIBA Lexington, KY Wednesday, August 19 th

Agile Way of Doing Things

8 th of April 2015 Bucharest, Romania Vlad Gabriel Sorin Agile PM/Scrum Master

Introduction to Agile and Scrum

Sign up to mailing list Join Slack, teaching team is available. All links are on the course website Slides are uploaded there too

Practices and Methods: Realizing the SEMAT Vision

Rule = A definition of what a Product Backlog is. Good Practice = A practice which is commonly done and is good to do. Avoid = A practice which, in

Agile Enterprise Architecture. Presented by Russell Bryant March 4, 2009

Scaling Agile to the Enterprise

Accelerating Your DevOps Journey

Organizational Matters

An Overview of Software Process

Case Study: How to Eliminate Flaws of Waterfall and Agile Development Processes Using a Hybrid Model

Agile. How would you implement agile methodologies and tools for web projects? What do you see as the benefits and challenges to doing this?

Scale. Making the Case for the Lean Enterprise

Agile versus? Architecture

Introduction to Disciplined Agile Delivery

7 Misconceptions of Enterprise Agile. August 15


Succeed with Agile at Scale

The tension between agile and architecture

AGILE. IS IT ONLY FOR IT?

Software Engineering Roles. Kristian Sandahl

Agile Extremely Scaled

Johanna Rothman Part II Design and Manage an Agile and Lean Project Chapter 5 Start Your Agile Project Right. Copyright 2017

THE AGILE WAY: A complete guide to understanding Agile testing methodologies

Training Your Customer

AGILE TEST MANAGEMENT WITH VISUAL STUDIO

Agile Software Development Techniques for Small Scale Research Projects. how to not go down the rabbit hole

TOP 10 REASONS TO MOVE YOUR CONTACT CENTER TO

Crossing the Chasm Helping Testers Make an Agile Transition Lisa Crispin With material from Janet Gregory

Tips for Success for a BA in an Agile Environment

An Agile PRINCE? Successful project delivery with PRINCE2 and Agile

IEEE and Agile Process- Create Architecture Description through Agile Architecture Framework

The Science of Running Effective User Acceptance Testing Cycles

Speaker. Marc J. Balcer Founder & Chief Architect Model Compilers. Author of Executable UML and Applied SOA

Chapter 4 Document Driven Approach for Agile Methodology

Mike Vincent. mvasoftware.net

How to go agile enterprise-wide: An interview with Scott Richardson

Agile Essentials Track: Business Services

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Agile QA s Revolutionary Impact on Project Management

6 VIDEOS EVERY ENTERPRISE SHOULD BE PRODUCING IN-HOUSE Take your videos further with multi-camera production

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

Scrum Team Roles and Functions

Test Strategies Around the World Winning the War on Bugs Through Strategy

What You Didn t Know About RUP

Communicate business value to your stakeholders

Agile Delivery Framework (ADF)

Establishing Architecture for Large Enterprise Solutions in Agile Environment

Software engineering Facts. CSC Compiler Construction Software Engineering Topics. What is software engineering? What is software?

Agile and SEMAT Perfect Partners

Agile Transformation In the Digital Age

CTC/ITC 310 Program Management California State University Dominguez Hills First Exam Answer Key November 20, 2018 Instructor: Howard Rosenthal

Course Introduction and Overview

Transcription:

Be Smart! or What they don t teach you about software at school Ivar Jacobson with Ian Spence, Pan Wei Ng and Kurt Bittner

Our goal Good Software Better, Faster, Cheaper and Happier

What it takes Happier What they don t Competent & Motivated People teach you about Faster, Cheaper Large Scale Reuse of Components software at school Better Useful Extensible Reliable

Agenda 1. What does Smart mean? 2. Smart Cases Recognize it when you see it 3. How do you become Smart 4. What does Smart really mean?

What does Smart mean? Things should be done as simple as possible but no simpler - Albert Einstein E= mc 2 This is smart!

Smart and Intelligent? Being Smart is not the same thing as being intelligent You can be intelligent without being smart, and You can be very smart without being very intelligent Mr Smart

Smart and Agile? Being Smart is an evolution of Being Agile Agile means being flexible and adaptable. Agile provide simple/lightweight starting points But being smart is knowing when to go beyond agile Knowing when to follow the rules and when to break them Knowing when to be consistent and when to change Knowing when to grow and when to shrink Smart = Agile ++ Mr Smart

Agenda 1. What does Smart mean? 2. Smart Cases Recognize it when you see it 1. People 2. Teams 3. Projects 4. Requirements 5. Architecture 6. Modeling 7. Test 8. Documentation 9. Process 10. Knowledge 11. Outsourcing 12. Tools 3. How do you become Smart 4. What does Smart really mean? www.ivarblog.com What they don t teach you about software at school

Not smart with People Some companies view process and tools as more important than people This is unsmart! A fool with a tool is still a fool but a dangerous fool

Smart with People Case study: Ericsson AXE the largest commercial success story ever in Sweden We had no tools and no defined process Despite this, we developed components, use cases, and a modeling language now part of UML This could only have been done with people good people Software is developed by people, not by process and tools. This is smart!

Not smart with Teams Many software projects involve 20+ people Often organized into stove-pipe groups: Requirements, Analysis, Design, Coding, Testing, etc. This is unsmart! Requirements Implementation Test

Smart with Teams Teams are cross-functional Including analysts, developers, testers etc Ideal size of the team is less than 10 people This is smart! A software team is like a sport team with all needed competencies to win.

Not smart with Projects Most companies still follow the waterfall approach Requirements High-Level Design This is unsmart! Detailed-Level Design Coding Testing Crash!

Smart with Projects Build a skinny system to demonstrate that you have eliminated all critical risks Add more capabilities on top of that skinny system Skinny System This is smart! Full Fledged System Think big, build in many steps

Not smart with Requirements Many managers (and customers) believe you can detail all the requirements upfront......and based on these can accurately predict the cost of the solution Thou shalt work with fixed requirements for fixed prices This is unsmart! A constant in software development is that requirements always change

Smart with Requirements Base early decisions on lightweight requirements and detail as and when it is needed Use case outlines, feature lists or user stories Remember requirements are negotiable and priorities will change I understand your needs, let s work together to make sure we develop the right system for the right price. This is smart! Design your project for requirement changes

Not smart with Architecture Two extremes: Mr Enterprise Architect on Ivory Tower No architecture Just Code Refactor later This is unsmart! I ll design everything up front Mr Supposedly Agile The single most important determinant of a software system s quality is the quality of its architecture

Smart with Architecture Focus on the skinny system But an architecture without executable code is a hallucination Refactor over releases, but large refactoring is very costly Skinny System Full Fledged System Architectural Blue Print Start to build a skinny system, add muscles in later steps This is smart!

Not smart with Service Oriented Architecture Some people believe that SOA requires a new methodology SOA methods must major in paper-ware This is unsmart!

Smart with Service Oriented Architecture Use your foundation practices as a base Use cases, components, or whatever you have Add system-of-systems practices Create an architectural roadmap Closing the Gap between business and IT, Services Fill the roadmap project by project, starting with the skinny system. Do xsoa, executable SOA Skinny System Full Fledged System This is smart!

Not smart with Test We have two classes of people: Developers and Testers Developers are the creators it is OK to create bugs as well Testers are the cleaners in the software world Testing is done as an after thought too late and too expensive This is unsmart!

Smart with Test We are all testers! This is smart! Whatever you do you are not done until you have verified that you did what you wanted to do

Not smart with Documentation There has been an over-emphasis on teams producing documentation Use Case Specification Template Architecture Description Template Vision Document Template Thou shalt follow the document template I give you to document every part of the system. This is unsmart!

Smart with Documentation Myth: The idea that you document software so people later can read what you did. Law of nature: People don t read documents This is smart! Focus on the essentials - the placeholders for conversations people figure out the rest themselves

Agenda 1. What does Smart mean? 2. Smart Cases Recognize it when you see it 3. How do you become Smart 4. What does Smart really mean?

How do you become Smart? You need knowledge in good (maybe best) practices There are 100 s of practices, some of them are good Business Modeling Test-Driven Development Scrum Product-Line Engineering Risk-Driven Iterative Development Systems Engineering Aspect Orientation Robustness Analysis Retrospectives Business Process Re-Engineering Use-Case Driven Development Pair Programming PSP User Stories SOA Prince2 Use-Case Modeling Program Management And you need experience in using them

How do you become Smart? You need knowledge in good (maybe best) practices There are 100 s of practices, some of them are good Business Modeling Test-Driven Development Scrum Product-Line Engineering Risk-Driven Iterative Development Systems Engineering Aspect Orientation Robustness Analysis Retrospectives Business Process Re-Engineering Use-Case Driven Development Pair Programming PSP User Stories SOA Prince2 Use-Case Modeling Program Management And you need experience in using them

Of course, eventually it comes back to you, but We can all become smarter.

Thank You Contact me at ivar@ivarjacobson.com

ivar@ivarjacobson.com