This week I’ve been approached by two co-workers with business background who asked me questions regarding an interesting matter:

  • what’s the best way to get basic information about software development fundamentals, if you’re a business-oriented person
Obviously, none of them wanted to switch his career path to programming. They are just aware of the fact that our fundamental rule is mixing client business understanding with ability to solve business-originated problems using IT technologies. Mapping business needs to actual IT products is not that trivial (if it was trivial, who’d need consultants?) and it requires understanding of:
  1. What are the core software development assumptions, practices, restrictions, dependencies.
  2. How should you communicate with developers, assign tasks to them and receive the work done (review, monitor, accept, etc.).
  3. What are the risks related to software development on the lower (non-management) level.
Believe me or not, but answering them was not easy. They were asking about something that is (and always was) obvious and self-explanatory to me. Not because I pretend to be omniscient or something, but because that was my chosen path of career ever since I can remember.
To shorten it up, I’ll skip my whole consideration process here :) At the end, I’ve recommended them:

  • to check with your company training advisor if a suitable trainings have been organized some day in the past (they may not be the only people with such a demand)

  • to get a book on software development fundamentals to catch some basic foundation / common sense

  • to start developing some simple application for their own, private use - something that they could really appreciate as a help in everyday life, like:

  • financial planner

  • task scheduler

  • shopping list

  • calendar / reminder

  • CD / DVD / book registry

  • etc.

This way, they would encounter some real-life problems all other programmers encounter as well. They’d have to gather some requirements (from themselves, but still) and test them to prove them working, etc.

Do you have any other ideas? How could we help our business-oriented pals in understanding technology basics?