Saturday, July 17, 2010

Cliffs Notes of Software Development

Most of my articles on software development are targeted towards experienced software developers. That world is a weird one though, filled with thousands of unfamiliar terms and concepts that are difficult to relate. The best developers are also excellent communicators, but that's unfortunately a rarity in our breed.

As a maker of custom software, I've seen it happen many times in the past where the buyer is frustrated with this communication divide of understanding, yet needs us to solve their problem and is forced to navigate the process on their own without a trusted guide.

In the small and medium business world, the most common situation is when a business first outgrows their spreadsheets and access forms, and needs a custom solution to better integrate their information. In these situations, most business owners are quite comfortable admitting they know nothing about custom software; they just want someone to solve their problem. Even in the "enterprise" world it's common for a manager to be responsible for a software solution, yet not have any experience in this dirty process of building software. If they're lucky, they'll have a friend in information technology to whom they can ask their "stupid" questions. Often times though there's no one; just them, a budget way bigger than their bonus, and some resources that were assigned to them from who-knows-where. If they're lucky, not only are they all in the same building, but they're sitting within 30 feet of you. Lucky? Why? Just how important is that? Turns out it's really important. But that's just one of topics that can make or break your project's success. Hmmm...well, why doesn't that ever happen? Turns out that a lot of the people making decisions like this are themselves just trying to keep afloat in the sea of change.

So...this series of articles is my attempt to boil down some of these key questions and topics a person might have about this fast-moving and immature industry. Consider it the cliffs notes of software development. Below is the list; each item will be a hyperlink to the details as it is written:

  • Methodologies at a High Level
  • Choosing a Vendor
  • Build vs. Buy
  • Choosing a Platform
  • Programming Religions
  • Costs
  • Biggest Weaknesses of the Industry
  • Process Requirements
  • Suggested Reading
  • It's All About the People