MAKING INDUSTRY LEVEL SOFTWARES

Post on 03-Jan-2016

31 views 0 download

description

MAKING INDUSTRY LEVEL SOFTWARES. whoami. András Boráros-Bakucz Program manager, Ericsson Hungary boraros-bakucz.andras@kvk.uni-obuda.hu Phone: +3630 343 9136 Presentation format is intentional. Trial and error Copy-pasting. Topics. - PowerPoint PPT Presentation

transcript

MAKING INDUSTRY LEVEL SOFTWARES

Ericsson Internal | 2013-04-23 | Page 2

› András Boráros-Bakucz– Program manager, Ericsson Hungary– boraros-bakucz.andras@kvk.uni-obuda.hu– Phone: +3630 343 9136

› Presentation format is intentional

whoami

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

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

Ericsson Internal | 2013-04-23 | Page 5

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

Software Industry

Ericsson Internal | 2013-04-23 | Page 6

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

Critics of Term: Software Industry

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

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

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

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

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

Ericsson Internal | 2013-04-23 | Page 13

› Operating system (system software)

› Platform (middleware)› Application software› Embedded software

Types of Software

Ericsson Internal | 2013-04-23 | Page 14

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

Software licensing

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

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

Ericsson Internal | 2013-04-23 | Page 17

SDLC – Close to Reality

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

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

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

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

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

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

Ericsson Internal | 2013-04-23 | Page 24

› Early phase› Execution

– Design– Integration– Test

› Delivery and Deployment› Support and maintenance

Software Development Phases

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

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

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

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;}

Ericsson Internal | 2013-04-23 | Page 29

Editors

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

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

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

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

Ericsson Internal | 2013-04-23 | Page 34

Exploits of a Mom

http://xkcd.com/327/