OBJECT-ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES and APPLICATIONS
 
 
Program
 


Program (2mb PDF)

Explore
  Invited Speakers
  Onward!
  Panels
  Workshops
Discover
  Research Papers
  Student Research Comp.
  Posters
  Doctoral Symposium
  Educators' Symposium
  Wiki Symposium
  Dynamic Lang. Symp.
Understand
  Tutorials
  Essays
  Practitioner Reports
  Demonstrations
Create
  DesignFest
  Lightning Talks
  FlashBoF
  Instant Arts School Exp.
 
Other Events
 
Resort Map (364kb PDF)
 
Resort Map (JPG)

 

 
Basket
 

view, help

"We the People"

 

 
Page
 

Printer-friendly

 
 
  > Onward! > Breakthrough Ideas



We the People

Andrew Hunt, The Pragmatic Programmers

Software development isn't about technology: it's about people. We are the raw material of software development, and that fact seems to have been lost in the continuing, hope-filled rush of new technology.

The two most important skills a software developer must have are the ability to communicate well and to learn quickly. We, the people, act as communication hubs: we have to communicate to the machine, using a variety of arcane syntactical constructs; to the end users, determining their wants, needs, and desires; and with our team members and the rest of our organization. Similar to a network router, we spend our days interpreting and retransmitting packets of ideas back and forth between these entities.

Similarly, we are constantly learning. Beyond the obvious learning of new and improved (sic) technology, we are learning subtleties of the problem domain, of the dynamics and quirks of the team, and the evolving characteristics of the system itself. We have to be skilled at rapidly evaluating, digesting, and applying ideas from a variety of sources, often in the face of incomplete or contradictory information.

The lucky undergraduate may have had a technical writing course, and perhaps some experience working a team environment, but that's probably all. We must do better: specific communication skills including facilitation, public speaking, interviewing techniques, and conflict resolution need to be addressed. Exposure to effective learning methods including summarizing techniques, speed-reading, and knowledge management/organizational techniques such as mind mapping need to be central to the developer's education; the specific technologies used for development (theories of computing, languages, design patterns, methodologies, and so on) remain transient, and thus secondary.

Software has become a pervasive and fundamental part of our society. It's time to move beyond producing computer scientists or mere programmers, and get serious about developing Software Developers.

 
.