What Do You Hate About Developing Software?

May 22, 2012 · 0 comments

I have asked the question “What don’t you like about developing software” to thousands of developer and I often hear similar answers. The list is a bit longer than the list of what we love about developing software, discussed in my last post, but don’t infer that it outweighs what we love about it.

I don’t think any of us what to make software development easy. We like the challenge but sometimes it could be a little easier, at least in areas that don’t have to be hard. Here are a few of the challenges I hear from developers:

  • Lack of standards
  • Hard to communicate a design
  • Constraints
  • Not having enough information
  • Too much process
  • Missing the big picture
  • Not focusing on the customer
  • Legacy code
  • Too much to learn
  • Easy to get lost in the details
  • Time it takes to deliver business value
  • Not having a common language
  • Resistance to change
  • Convincing others
  • Too much process/documentation
  • Test dependencies/slow builds
  • Wrong use of patterns
  • Too much time debugging
  • Waste in process
  • Unsustainable practices
  • Complexity
  • Repetitive, un-cohesive code
  • Bad coupling
  • Procedural code
  • Changing code
  • Lack of good requirements
  • Repetitive tasks
  • Maintaining code
  • Helping the client understand
  • No access to the client
  • Poor requirements
  • Hidden bugs
  • Gold plating
  • Poor examples
  • Staying focused on what is
  • Not knowing why something works
  • Other people’s code
  • Not understanding a design
  • Too much red tape
  • Perfectionism
  • Dependencies
  • Understanding tradeoffs
  • Not being on the “same page”
  • Project cuts
  • Over design

What is interesting to me is that Agile, especially eXtreme Programming, can help address most of these issues. We make a similar list at the beginning of my developer trainings and by the end of class we realize that we’ve covered many things that can help with most of these issues.

Technical problems are usually manageable and oftentimes a matter of building a shared understanding of the issues and techniques for handling them throughout the team.

Of course, sometimes somone says that the thing they dislike the most about developing software is their manager’s unrealistic expectations. Sorry, I can’t help you with that one except to remind you that encapsulation, along with many other Agile developer practices, can be applied to domains beyond software.

{ 0 comments… add one now }

Leave a Comment

Previous post:

Next post: