OBSERVATIONS ON
SOFTWARE DEVELOPMENT
PRACTICES IN SIX
SOFTWARE COMPANIES
RIGHT PROJECT –1st
Seminar, April 20th 2007
AGENDA
1 INTRODUCTION 2 COMPANIES
3 METHOD
4 RESULTS
4.1 The Identified Context
4.2 The Made Observations in six Software Companies
1 INTRODUCTION
l
This study yields how different contextual
factors affect the software development
process
l
The goal is to:
•
Empirically identify the contextual factors in actual work context in industry•
Establish their relative importance in software development practices2 COMPANIES
l TietoEnator Forest & Energy Oy
• Information systems for pulp, paper and wood products industry
l Savcor Forest Oy
• Wood procurement, forest & mechanical wood processing information systems
l Ardin Software Oy
• An international ICT outsourcing company
l ProAgria Oy
• The leading agricultural expert organization in Finland
l IT Optimo Oy
3 METHOD
l Theme-based interviews
•
The main data collection methodl Three focus groups were interviewed
•
Developers•
Project Managers•
Senior Managersl In total, 30 interviews in 6 companies were done
l The interviews were coded and observations made.
l Based on the observations, 9 context categories and 34
4.1 RESULTS - THE IDENTIFIED
CONTEXT
Company Infrastructure Strategic Management Competence KnowledgeTransfer ManagementOperational
Business Environment Organizational Structure Organizational Culture Customer Software Development Process Contextual factors Contextual factors
4.2 RESULTS –OBSERVATIONS
ON
CUSTOMER
l Too tight customer orientation
⇒
The process becomes customer-driven<= The customer dictates the software development practices used ⇒ This leads to lowering the standard of the used practices
⇒ Difficulties in following own process
l Restrictions from the customer side
⇒
Incomplete knowledge of application (business) domain⇒ Low quality
l Customer inquires often status information of the
project/task
l Inflexible customer
⇒
Tight schedule that becomes impossible to follow⇒
Fail in (on-time) deliveryl No foreign customer management process
⇒
Difficulties in communication⇒
Difficulties in the (requirements) definition phase⇒
Misunderstandings & Information lossl Customer do not have basic understanding of software
engineering & business
⇒
Requirements not properly done⇒
Customer requires omission of testing4.2 RESULTS –OBSERVATIONS
ON
CUSTOMER
4.2 RESULTS –OBSERVATIONS
ON
COMPETENCE
l
Little knowledge of customer’
s business
domain
⇒
Inability to deliver a high quality product and fit into the schedulel
Expertise required in many different areas
⇒
Abrupt and severe shortage of expertise is often handled through partners4.2 RESULTS –OBSERVATIONS
ON
ORGANIZATIONAL CULTURE
l
It is hard to adapt the product quality to
market price (attitude to quality)
⇒
Prevailing attitude to quality is not easy to
change
4.2 RESULTS –OBSERVATIONS ON
ORGANIZATIONAL STRUCTURE
l Inconsistent understanding of software engineering
practices in different levels of organization
⇒
IT development needs underestimated⇒
Complicated software development environment⇒
Difficulties in product development⇒
No appropriate testing tools⇒
Poor product qualityl Customers communicate directly with the developers
⇒
Developers end up having too many tasks simultaneously4.2 RESULTS –OBSERVATIONS
ON
BUSINESS ENVIRONMENT
l Competition for customers
⇒ Projects sold in a fixed price
⇒ Delivery price estimation problems
⇒ Overloaded resources
⇒ Tight schedule
⇒ Usage of a cost-efficient subcontractor
l Well defined processes and high quality standards lead to high quality products
⇒ Competitors get the deals by promising lower prices
l Competition for resources
⇒ High salaries as a motivator
⇒ The problem of a growing wage pattern
l Growing wages (consider your subcontractor)
⇒ Resources not loyal to a company
l Long distance
⇒
No possibility of frequent visitsl Language barrier
⇒
Loss of information⇒
Misunderstandingsl Usage of multi-vendors
⇒
The project management must undergo many changes⇒
New tools to manage the project⇒
4.2 RESULTS –OBSERVATIONS
ON
BUSINESS ENVIRONMENT
4.2 RESULTS –OBSERVATIONS ON
OPERATIONAL MANAGEMENT
l
Limited resources
⇒
No time for comprehensive testing⇒
Multiple roles⇒
Pressure & tight schedulel
Tight schedule
⇒
No time for completing various project phases⇒
Stress & Motivation problems4.2 RESULTS –OBSERVATIONS
ON
STRATEGIC MANAGEMENT
l
In order to be competitive, companies
must be cost & time efficient
⇒
Overloaded & insufficient resources
⇒
Multiple roles
⇒
Motivation problems
⇒
Tight schedule
4.2 RESULTS –OBSERVATIONS
ON
KNOWLEDGE TRANSFER
l Improper or insufficient communication
⇒
Information loss⇒
Misunderstandingsl Customers are application domain specialists
⇒
Customers want to talk with application domain terminology, not the technical jargonl Requirement and design documents are not available
⇒
Slows down and makes harder both development and testing4.2 RESULTS –OBSERVATIONS ON
COMPANY INFRASTRUCTURE
l Incomplete definition
⇒
Difficult implementation⇒
Schedule problems⇒
Fail in (on-time) delivery⇒
Stressl Customers expect small changes do be implemented
quickly
⇒
So called maintenance work requires a lightweight and well defined approachl Improperly selected software development tool
⇒
Lack of available resourcesl No education within the project
⇒
Difficulties in involving new resources into an ongoing projectl Missing templates & guidelines
⇒
The process is not documented. No common process⇒
No common architecturel Inefficient change management
⇒
Lost change requests⇒
Tight schedule⇒
Leaves no time for testing⇒
Results on poor quality4.2 RESULTS –OBSERVATIONS ON
5 DISCUSSION &
CONCLUSIONS
l The identified context reveals a lot of obstacles in daily practices of software development companies
l Software development practices and issues vary a lot in
different companies
l The efficiency is defined by the context
l The process should be defined according to the context and process improvement starts from identifying the most important contextual factors and their effect
l High quality products and processes may be too expensive for customers
6 FUTURE WORK
l Describe the case companies by specific to them context
•
Identify the problem areas in the contextl Study the case companies in more
details according to the defined context
•
Look for origins of the identified problemsl Propose the improvement plan
•
How to get rid of the identified problems