making industry level softwares

35
MAKING INDUSTRY LEVEL SOFTWARES

Upload: elvis-young

Post on 03-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

MAKING INDUSTRY LEVEL SOFTWARES. whoami. András Boráros-Bakucz Program manager, Ericsson Hungary [email protected] Phone: +3630 343 9136 Presentation format is intentional. Trial and error Copy-pasting. Topics. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: MAKING  INDUSTRY LEVEL  SOFTWARES

MAKING INDUSTRY LEVEL SOFTWARES

Page 2: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 2

› András Boráros-Bakucz– Program manager, Ericsson Hungary– [email protected]– Phone: +3630 343 9136

› Presentation format is intentional

whoami

Page 3: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 3

› Bevezetés, probléma megfogalmazás, megoldási paradigmák

› A szoftver mint termék előállításának folyamata, a szoftver életciklus modelljei

› Szoftverfejlesztés életciklus modellje, különféle modellek összehasonlítása (vízesés, V-modell, spirál modell, evolúciós modell)

› A szoftverfolyamat alapvető tevékenységei› A szoftverfejlesztés lehetőségei, tervezési módszerek

Topics

Page 4: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 4

› “Software has too many dimensions to combine within a single framework.”http://esriindia.com/Events/UC_2012/developers_meet.html

Motto

Page 5: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 5

› Development› Maintenance› Publication/deployement› Services (support, administration)› Training› Documentation› Consulting

Software Industry

Page 6: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 6

› https://www.gnu.org/philosophy/words-to-avoid.en.html#SoftwareIndustry

Critics of Term: Software Industry

Page 7: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 7

› 1955: Computer Usage Company

› 1960s: Big Bang, computers mass-production

› DEC low-priced microcomputer onto market

History #1

Page 8: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 8

› IBM AS/400› 1970s: IBM PC, “desktop”› 1980s: flip form factor, so

laptops, notebooks, netbooks, tablets, handheld, smartphones

History #2

Page 10: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 10

› Core competency of the vendor - For example, when an organization is looking for vendors it would certainly be beneficial to go for vendors who specialize in these projects. However, giant IT companies could be an exception as they specialize in multiple technologies.

› Number of years in business - This helps organization understand the credibility of the business.

› Stock market listing - Important if the size of the project is huge as a listed software vendor is more likely to have better governance processes

› Overall and available vendor headcount - This can help organizations to decide how their resources requirements can be met by the software vendor.

Evaluating software vendors #1

Page 11: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 11

› Vendor credentials - The software vendor's prior experience in similar projects can increase the confidence of the organization

› Industry Certifications/awards/Alliance partners - Industry recognition is another parameter for evaluating the software vendors

› Local and global offices - While local office is important for any meetings, follow ups etc. global offices show the reach of the vendor

› Project management/tracking processes - More robust the processes are, better will be quality of the software product

› Lead times to start development - The vendor might have a lot of projects on hand already and it is important for an organization to know the lead times

Evaluating software vendors #2

Page 12: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 12

› Core solution and solution options - The software vendor should be made to make a presentation to showcase vendor's understanding of the requirements

› Development time and costs - The estimates for efforts, resources, schedule and costs (includes fees and expenses)

› Non functional requirements - The vendor's ability to meet non functional requirements

› Warranty support agreements - For post production break fixes› Post go live - Maintenance activities support costs

Evaluating software vendors #3

headcount, governance, processesProject management, requirementscostsnon-functional requirements (architecture, ities, qualities, stability, portability)Execution qualitiesEvolution qualities, such as testability, maintainability, extensibility and scalability, which are embodied in the static structure of the software system9999go live

Page 13: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 13

› Operating system (system software)

› Platform (middleware)› Application software› Embedded software

Types of Software

Page 14: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 14

› Proprietary (off-the-shelf, custom)› Freeware (free as a beer)› Open-source› Shareware› Malware› Adware

Software licensing

Page 15: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 15

System Development Lifecycle

Project planning, feasibility study

Systems analysis, requirements

definition

Systems designImplementation,software design

Integrationand testing

Acceptance,installation,deployment

Maintenance

SDLC

Page 16: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 16

System Development Lifecycle

Project planning, feasibility study

Systems analysis, requirements

definition

Systems designImplementation,software design

Integrationand testing

Acceptance,installation,deployment

Maintenance

SDLC

Page 17: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 17

SDLC – Close to Reality

Page 18: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 18

› Project planning, feasibility study: Establishes a high-level view of the intended project and determines its goals.

› Systems analysis, requirements definition: Refines project goals into defined functions and operation of the intended application. Analyzes end-user information needs.

› Systems design: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation.

› Implementation: The real code is written here.

SDLC

Page 19: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 19

› Integration and testing: Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability.

› Acceptance, installation, deployment: The final stage of initial development, where the software is put into production and runs actual business.

› Maintenance: What happens during the rest of the software's life: changes, correction, additions, moves to a different computing platform and more. This, the least glamorous and perhaps most important step of all, goes on seemingly forever.

SDLC

Page 20: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 20

› http://www.computerworld.com/s/article/71151/System_Development_Life_Cycle

› Waterfall might be useful in case of well determined req.-s and plans, but extreme could be better for less well defined requirements and prject plans

› Requirements› Specification› Architecture› Construction› Design› Testing› Debugging› Deployment› Maintenance

Activities and Steps

Page 21: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 21

› Processes and regular activities (loops) always need additional efforts/people (cost)

› Means expensive…› But quality is a “must”…

– Or “good enough” quality?

› Processes– Good designer, bad designer

› Prepare for average designers

– No need for process if SW developed by one person

– Quality is far less a question indeed if someone knows the whole software alone

Problem of Processes

Page 22: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 22

› RUP› XP› Agile› Lean› Dual Vee Model› TDD› FDD

› Waterfall› Prototype model› Incremental› Iterative› V-Model› Spiral› Scrum› Cleanroom› RAD› DSDM

Methodologies

Page 23: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 23

› Supporting organizations/activities– Configuration management

› Version control– Bugs handling, trouble report handling

› Internal end external– Documentation

› Storage space– Quality assurance (SQA)– Project management

› PNP or other stuff– User experience design

Support Functions

Page 24: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 24

› Early phase› Execution

– Design– Integration– Test

› Delivery and Deployment› Support and maintenance

Software Development Phases

Page 25: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 25

› Ericsson’s answer– Product management– Project management– Program management– Product lines– Matrix organization– Line management

› System management

Software Development Organizations

Page 26: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 26

› A customer needs a new feature› Contact local market support office› Contact product management› Product management creates a requirement

– Preferably in a requirement handling tool

› Requirement screening, pre-analysis if possible at all– Worth to invest further analysis

› After a set of requirements collected a project is going to be started to implement the requirements

– A kind of formal decision is good to have– PjM books always propose a kick-off meeting

A Requirement is born

Page 27: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 27

› Analyze and define more precise requirements – Requirement specification

› Make a technical analysis› Make an effort/cost/time estimation› Done by so called: system management› Output can be:

– Quick scan, One pager, Implementation Proposal, Technical Review

– Contains some design aspects but not fully details– Necessary contains interfaces

Early Phase

Page 28: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 28

› Depending of project type customer or product management orders the implementation of the analyzed feature

› Teams and individuals start coding based on IP/TER etc.› Design rules› Code formatting› Libraries› Design patterns› Editor and support tools (CPPCheck, Coverity)› Requirement freeze, Code freeze

Execution Phase,Design

#include <iostream>using namespace std;

int main (){ cout << "Hello World!"; return 0;}

#include <iostream>using namespace std;

int main (){ cout << "Hello World!"; return 0;}

Page 29: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 29

Editors

Page 30: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 30

› Integrating the different elements done in different levels› Version control

– Choose a version control system for your project

› Labeling› LSV concept, LLV concept› Continuous integration

– Regular compilation– Regular legacy testing

› One-track concept

Execution PhaseIntegration

Page 31: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 31

› Design Follow-up (DFU)› Verification types

– Unit test/Basic test– Component test– Function test– Early system test– Node system test (I&V)– Solution, multi-node system test

Execution Phase,Verification

Page 32: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 32

› PRA– Product Release A

› FOA– First Official Application

› PRB/PRG– Product Release B/General

availability

› TLA– …?– http://cygwin.com/acronyms

› Release the software– Make it available for customer– Usually the dump and some

basic configuration– Upgrade and install package

(do not underestimate the importance of a smooth upgrade)

Delivery AndDeployment

Page 33: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 33

› WLA– Working Level Agreement

› 3rd line support› External/customer TR-s› Change requests› Correction packages

– Content management

› Emergency packages

Support and Maintenance

Page 34: MAKING  INDUSTRY LEVEL  SOFTWARES

Ericsson Internal | 2013-04-23 | Page 34

Exploits of a Mom

http://xkcd.com/327/

Page 35: MAKING  INDUSTRY LEVEL  SOFTWARES