Making Code Kevin Dill Group Technical Staff Lockheed Martin Mission Systems & Training.

Slides:



Advertisements
Similar presentations
Introduction to Scrum for Software Project Management
Advertisements

A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Lena Bigelow Business 550 Presentation SCRUM. -A project management process - Embraces iterative and incremental practices -Concentrates on what is important:
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
System Analysis (Part 1)
ITEC 370 Lecture 25 Lifecycles. Review Questions? F give prototype demonstration –Testing plan for your software Life cycles –Scrum (Roles, Meetings,
Clinton Keith CTO, High Moon Studios Agile Methodology in Game Development: Year 3.
Agile Development.
NAUG NAUG Knowledge Evening – th February 2007.
Agile development By Sam Chamberlain. First a bit of history..
13-Jun-15 Extreme Programming. 2 Software engineering methodologies A methodology is a formalized process or set of practices for creating software An.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
By Bob Bunson  Simulation of software development project  Fictitious system from Concept to Code  Oriented around the.
CIS 321—IS Analysis & Design
BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.
Chapter-3 Agile Development
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
6-January-2003cse Introduction © 2003 University of Washington1 Introduction CSE 403, Winter 2003 Software Engineering
CS3300 Fall 2015 Software Development Lifecycles.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 Massive Entertainment Petter Sydow. 2 Starting facts Petter Sydow, Vice President of Product Development Massive Entertainment, Malmö, Sweden World.
1 Today’s Plan In Class Exam – Quick Review Thoughts on your Junior Projects, cntd People and Roles on Projects.
1 No Silver Bullet Brooks rides again…. 2 Essential Difficulties What are these “essential difficulties” that Brooks is referring to? Complexity Conformity.
Martin Cryer Software Development. ‹#› Development Processes Traditional e.g. Waterfall Method Agile –Design Build (Quick to Market) –Combines Engineering,
Software Project Management Team 04 – K15T2. Content Summarizing your view on “Software development process”. Answer 3 question: ◦ What is Software Development.
XP Explained Chapters 7-9. Primary Practices  Sit together Ideal Resistance Multi-site  Whole Team All the necessary skills in a single management structure.
Debugging Strategies from Software Carpentry. Agan's Rules Many people make debugging harder than it needs to be by: Using inadequate tools Not going.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
Mantychore FP7 WP4 (SA1) - Software Refinement. Objectives Main duties – Analysis of User Requirements – Implementation – Support and bug fixing This.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
MIS 7003 MBA Core Course in MIS Professor Akhilesh Bajaj The University of Tulsa Introduction to S/W Engineering © All slides in this presentation Akhilesh.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Requirements Engineering Processes. Syllabus l Definition of Requirement engineering process (REP) l Phases of Requirements Engineering Process: Requirements.
Phoenix Scrum User Group Simplifying Scrum Online May 21 st 2009.
AGILE - IMPLEMENTATION (C) CLARION TECHNOLOGIES. ability to move quickly and easily…. AGILE MEANING (LITERALLY)
T Iteration Demo Tikkaajat [PP] Iteration
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
25-Feb-16 Extreme Programming. 2 Software engineering methodologies A methodology is a formalized process or set of practices for creating software An.
Click to edit Master subtitle style Undergraduate Category: Computer and Information Sciences Degree Level: Computer Science and Game Design Junior Abstract.
CompSci Today’s topics Industry Practice Software Engineering Upcoming The Killer Robot Reading Great Ideas, Chapters 7.
Software Quality Assurance Chip Ene, February 14, 2015.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
Applying Agile Copyright Lockheed Martin Corporation 2004 Applying Agile Processes at Lockheed Martin George Wolke 17 March 2004.
First Prototype Presentation, Sprint Review and the Game Dev Production Process CS 153P Session 8.
Project Management Software development models & methodologies
WES CHAPMAN on owning your power no matter what life throws at you.
Software Development.
Flight Software Conference 2016
Wael Ellithy, Ph.D. Arx ICT
Software Development CMSC 202.
Software Development Process
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
Teaching slides Chapter 1.
Software Testing and Maintenance Modifying Code
System DEVELOPMENT LIFE CYCLE MODELS
Scrum Overview.
Introduction If you have got a call for an Agile testing interview, then congratulations are in order. You may be feeling nervous, but it sure to be felt.
What is Software Testing?
Design Joshua Lewis Project questions Assignment questions
Productivity For Geeks
Software Development Process
Software Development Overview
Product Development & Planning
Presentation transcript:

Making Code Kevin Dill Group Technical Staff Lockheed Martin Mission Systems & Training

Everything I’ve Learned in 15 Years (most of it probably wrong) Kevin Dill Group Technical Staff Lockheed Martin Mission Systems & Training

Background Industry Expert on Game AI 9 year game industry veteran Teaching: Harvard, Boston University, Northeastern Technical Editor: Cengage Learning, CRC Press Group Technical Staff, Lockheed Martin

Caveats I come at this as a software engineer, not a project manager I’m really an AI guy at heart

Agenda The Development Cycle o Conventional vs. Game Programmers vs. Software Engineers Modular AI

The Development Cycle Find something somebody needs done o BAA (Broad Agency Announcement) o SBIR (Small Business Innovation Research) Find partners Propose o Talk to customer o Quad Chart o White Paper o Proposal o Award! We need a consistent flow of work! o Being huge actually helps with this

The Development Cycle Conventional Project o Flight Maintenance Trainer Identify & prioritize requirements Design Build Validate Maintain Waterfall o Predefine every requirement o Milestones o Deliverables Agile o Backlog o Sprints o Burndowns

The Development Cycle Game Project o The Mars Game Preproduction o Brainstorm roughly what the game is about o Identify and prototype high risk features Production o Build out the main features o Code complete o Content complete Polish o Find the fun o Fix the bugs Gold Master Candidate One step forward, two steps back Games are never finished (just shipped)!

Context Switch

Programmers vs. Software Engineers That moment when you build the awesomely complex piece of code… and it ALL WORKS! Natural Coder Hacker o Very good at holding complexity in his/her head o Likes clever tricks o Likes intense, hard-to-solve problems “This makes my brain hurt” o Prefers concise, densely meaningful code Why use five keystrokes when three will do?

Programmers vs. Software Engineers “Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?” - Brian Kernighan (author of Unix and C)

Programmers vs. Software Engineers That moment when you realize an amazingly simple way to do express something complex Software Engineer o Very good at reducing complexity o Likes techniques that reduce effort o Likes self-documenting code o Likes design patterns & standard ways of doing things May also be a strong natural coder

Is This Software Engineering? Techniques o Test Driven Development (TDD) o Unit Tests o Pair Programming Code that is… o Well encapsulated o Loosely coupled o Self documenting Maybe… o Is it simpler? o Is it easier to understand? o Is it easier to change? One rule: Death to Duplicate Code!!!

Another Context Switch

Modular AI

Making Code Kevin Dill Group Technical Staff Lockheed Martin Mission Systems & Training