Test Center programming survey

InfoWorld's Test Center is conducting another survey. This time the subject is programming. Tom Yager and I contributed questions, and then it occurred to me that readers of this weblog might like to weigh in on the questions we proposed, or to contribute others. If so, please fire away!

(Note: This is not an actual survey. It's an invitation to help us shape what the survey will ask.)


• How much do you spend per year on internal software development (not including staff salaries)?

   - ...range of choices...

• What did you spend last year on outsourced development?

   - ...range of choices...

• What will you spend in the next 12 months on outsourced development?

   - ...range of choices...

• Which frameworks or APIs do you and your engineers use for your projects (choose all that apply)?

   - J2EE
   - Microsoft .Net
   - Microsoft Win32/COM/DCOM or VB6
   - Unix or Linux
   - Macintosh Classic or OS X
   - Common Gateway Interface (CGI)/HTML/xScript/DOM
   - Other

• The software you write is used by (choose as many as apply)

   - Internal users
   - External customers
   - Partners

• Which programming languages do you and your engineers use for development (choose as many as apply)?

   - Java
   - C
   - Visual Basic
   - C++
   - C#
   - Perl
   - PHP
   - Python
   - JavaScript/ECMAScript
   - Unix shell scripts
   - Other interpreted languages (e.g. Ruby, Eiffel, Oberon)

• Which vendors supply your development tools?

   - Borland
   - Microsoft
   - IBM
   - Sun Microsystems
   - BEA
   - Oracle
   - Other

• Do you, or would you, permit your programmers to use some work time for open source projects?

• Do you require new hires to be proficient in multiple programming languages and tools?

• You tend to upgrade to new versions of tools or frameworks:

   - As soon as they become available
   - Only when they solve specific problems or supply needed features
   - Only for new projects
   - Rarely
   - Never

• Which technologies are part of your server development (choose as many as apply)?

   - Web services
   - Business process management
   - Web applications (Dynamic HTML, server-side scripting)
   - XML
   - XSLT
   - Relational databases
   - XML or object-oriented databases
   - Clustering
   - Monitoring and self-healing
   - Object brokers
   - Speech
   - Other

• What are the types of data stored and manipulated by the software you and your engineers write (choose as many as apply)?

   - Relational
   - XML
   - Unstructured text
   - Persistent objects
   - PDF/spreadsheet/others (please specify)

• Your preferred programming abstraction for dealing with data is:

   - Relational
   - Object
   - XML

• Do you find dynamic languages (e.g., Python, Perl, VBScript) appropriate, neutral, or inappropriate for:

   - Automation of build and test procedures
   - Data reduction and analysis
   - Consumption of components and/or Web services
   - Production of components and/or Web services
   - Production of user-facing Web applications
   - Production of GUI applications

• How do you and your programmers write tests (choose as many as apply)?

   - Before coding
   - While coding
   - After coding
   - Never

• Are you satisfied with the level of software reuse you achieve?

   - Yes
   - No
   - Not sure

• Rate the following strategies (0 = low benefit, 1 = some benefit, 2 = high benefit) used to package software for reuse:

   - Shared libraries (e.g., .so or .dll, Java class, .NET assembly)
   - Components (e.g., COM objects, Java beans)
   - Shared scripts dynamic-language (e.g., Python or Perl) modules
   - Web services
   - Other

• The single biggest obstacle to reuse is:

   - Effort required to design software for reuse
   - Programmer disinclination to package software for reuse
   - Effort required to package software for reuse
   - Lack of awareness of what software is available for reuse
   - Effort required to learn and effectively apply software available for reuse
   - Other

• When your software fails to satisfy users, the reason is most likely:

   - Implementation of a flawed spec
   - Flawed implementation of a correct spec
   - Inability to integrate with other software
   - Poor application response time
   - Dissatisfaction with user interface
   - Failure to evolve in a timely way as business needs change
   - Other

• When your software presents a user interface, your preferred technology is:

   - Web-style (HTML/DHTML/JavaScript)
   - fat-client GUI (such as Windows, Flash, or Java/Swing)
   - thin-client (remote) GUI
   - Other

• The ability to present a user interface single common GUI on various client platforms (Windows, Unix/Linux, Mac OS X) is:

   - Essential
   - Important
   - Not needed

• Activities currently supported by your programming tools include (choose all that apply):

   - Edit / compile / link / debug
   - Testing
   - Documentation/modeling/diagramming
   - Source control/version management
   - Configuration/deployment management
   - Logging/monitoring
   - Issue tracking/bug database
   - Business rules/workflow

• The activity, not currently supported by your programming tools, for which you most need support (rank top 3) are:

   - Testing
   - Documentation/modeling/diagramming
   - Source control/version management
   - Configuration/deployment management
   - Logging/monitoring
   - Issue tracking/bug database
   - Business rules/workflow


Former URL: http://weblog.infoworld.com/udell/2003/07/14.html#a744