We believe that a successful migration towards Object-Oriented software development is an
ordered combination of different
factors.
To underline the fact that their ordering is important, we represented them in an "ordered" figure. Click on each topic to see what we propose, and do not hesitate to contact us for any further remark/question (info@floconsult.be).
To underline the fact that their ordering is important, we represented them in an "ordered" figure. Click on each topic to see what we propose, and do not hesitate to contact us for any further remark/question (info@floconsult.be).
Audit
- This is the first step when migrating: auditing people, projects, and/or the organisation
- People technical audit:
- answering to a written technical questionnaire (multiple choices but also open questions)
- followed by a technical discussion ("debriefing")
- FloConsult has questionnaire parts ready about:
- Fundamentals/Software engineering
- OO Modeling (UML) and design
- Java Fundamentals
- Distributed Java (RMI)
- Swing
- J2EE
- Java DB (JDBC)
- XML
- C++ fundamentals
- C++ advanced (templates, STL,...)
- CORBA
- output: report on the resource (written or oral), about typically:
- previous experiences summary
- acquired competencies
- what the person waits from his/her job
- which future roles (s)he can play
- possibly what training (s)he should attend
- Project/Organisation technical audit:
- based on high-level presentation(s) and then on the projects documents
- possibly followed by interviews/meetings
- output: report about typically:
- strong/weak points
- software architecture evaluation
- project and team organisation
- risks list
Migration Plan
- From a synthesis of the actual situation (see Audit)
- Definition of a set of recommendations to migrate to OO, taking into account:
- priorities
- risks
- constraints
- links to technologies (tools, architecture,...)
- links to developments (requirements management, risks management,...)
- A migration plan specifying
steps (e.g. step 1 being a
pilot project), with for each step:
- a definition of the objectives, e.g.
- set-up of a baseline architecture
- use-cases used for the specifications
- incremental and time-boxed development to be used
- a definition of the risks
- a definition of the constraints
- possibly a definition of the staffing
- a definition of the objectives, e.g.
Training
- What ?
- OO Fundamentals
- Agile development with UML
- Technologies: Java, C++, ...
- Our approach:
- Based on practice
- Process oriented
- See our training page
Mentoring
- This is a key activity for success
- Typical for migration activities
- Experts sharing their knowledge with 2-3 people
- See for example our consulting page
Tools
- Why?
- Selection, Installation, Integration, Training,... -> takes time and has cost
- We have a set of pre-defined set of tools for development support
- Progressively better coverage and availability of open-source tools
Assessment
- Following one migration step
- Performing evaluations to identify strengths and weaknesses of:
- New development paradigm (OO)
- New technology
- Organization
- Allows for rapid reaction
- Improves visibility and control
Human
- The first reason of failure/success of software stays for us: the human people composing the team.
