Have developers "forgotten their place"
I don't know why the talkback to Kathy Sierra's blog upset me so much. She wrote a well reasoned piece on developer/customer interaction and JBob's response is that it "Sounds like developers have forgotten their place."
Their place? As in "in the home" or "to be seen and not heard" or "locked in a cubicle writing code"? JBob writes that "A developer's job is to write code. Period. They have a very focused and specialized trade and that is writing code which works and performs well."
Oh, wait a minute. He said "developers have forgotten their place." He's not a developer. He's telling others what their job is and what their place is. Perhaps I am wrong to be offended, but I have been told by others what my place is (usually in order to keep me in it) and I find both the language and the underlying attitude offensive.
What started this off was Kathy Sierra's debut entry in our
href="http://weblogs.java.net/">Weblogs section titled Have your developers seen a real customer in the wild?. Kathy writes that it is valuable for developers to interact with customers. JBob writes "It is the job of the product manager, business development manager, and marketing manager to make it their business to know what the market wants and to get customer feedback."
But Kathy has already addressed this. She says that "there were plenty of regular reports with titles like, 'Voice of the Customer', where we were given info about what the customers (faceless and nameless) supposedly said and wanted. But there was no *real* voice (the kind you could actually hear) behind the report. No real human with stress of his own. No person whose life we were actually affecting, good or bad."
Kathy is talking about meeting the needs of real customers. Find out how your product affects their lives. "Can you picture what would happen if EVERYONE who worked on a software program had to spend time teaching customers to use it? If they had to experience the frustration not just during development, but AFTER it's deployed in the field?"
JBob is worried about blame and accountability. He writes that "If your product does not meet the needs of your market or is not satisfying your customer, you need to point the finger at the Marketing department first. If their research and PRD clearly articulated the market and customer needs, then they are off the hook. Then you have to find out why the development team didn't follow the PRD." The PRD? Marketing? Sigh.
Kathy writes that when developers "don't have to see or talk to customers, they can tell themselves happy little stories like, 'This is what our customers want.' or 'It's not our fault.'" JBob writes "All too frequently, developers pretend that they know better about what the user/customer wants. It's at those times that you need to remind them that it is not their job to know or to even figure out. Their job is to write good code."
Feel free to weigh in with your thoughts in the feedback to Kathy's blog. Perhaps I'm off base. I like JBob and consider him a friend - we just happen to disagree on this. I will follow on this tomorrow.
The other two blogs are John Mitchell's pointer to Greg Wilkin's complaints about the servlet spec titled Killing the Servlets, softly, with his song... and Joshua Marinacci presents Swing Hack 7: Let it Snow!. Joshua presents a seasonal hack to make snow flakes appear to be outside of your frame using transparent windows and the full screen mode.
href="http://today.java.net/pub/q/alsotoday"> Also in Java
Today we link to Martin Fowler's piece on Command Oriented Interfaces. He explains that a "command oriented interface would have a command class for each operation, and be called with something like
thisCalculateChargeCommand.new(aContract).run(). Essentially you have one command class for each method that you would have in the method-oriented interface." In Command Oriented Interface he describes the benefits and appropriateness of using this approach as opposed to calling a method from an object like
Erik M Burke's ONJava article presents his Top 15 Ant Best Practices. He writes that he begins a new project "by creating the Ant buildfile. Ant defines the build process and is used by every programmer on the team throughout the day. All of the tips in this article assume the Ant buildfile is an important artifact that must be written with care, maintained in version control, and refactored periodically."
In Projects and
Communities, learn more about fun you can have customizing your JLabels and JButtons. Follow this Java Desktop link to the recent core Java Tech Tip on Using HTML in Swing Components you'll see how to add simple HTML to JButtons, JLabels and other Swing components and how to reference a Cascading Style Sheet (which I didn't know you could do). Also, the Java User Groups community now features their own JUGs wiki with pages from various member user groups. Check out the even includes a map and information about the next meeting.
In today's java.net News
- JavaServer Faces Beta Released
- Drive the Mars Rover
- Blojsom 2.06
- Book Review: J2EE Security for Servlets, EJBs, and Web Services
- FreeTTS 1.2beta
Registered users can submit news items for the
href="http://today.java.net/today/news/">java.net News Page using
All submissions go through an editorial review by news director Steve
Mallet before being posted to the site. You can also subscribe to the
href="http://today.java.net/pub/q/news_rss?x-ver=1.0">java.net News RSS
Current and upcoming Java
- December 27 JUG.RU meeting at
Registered users can submit event listings for the
href="http://www.java.net/events">java.net Events Page using our
href="http://today.java.net/cs/user/create/e"> events submission
All submissions go through an editorial review before being posted to
This blog is delivered weekdays as the
feed. Once this page is no longer featured as the front page of href="http://www.java.net"> java.net it will be archived at href="http://today.java.net/today/archive/index_12232003.html">
http://today.java.net/today/archive/index_12232003.html. You can
access other past issues in the href="http://today.java.net/today/archive/">java.net Archive.