After 7 years of software-engineering experience, I wonder what kinds of problems do we solve. Is it technical problems - like how to write a web-page that can upload a picture to the server? Or, is it the business problem that the client wants his customers to save their searches?
If we look at the problems around us - and by this I mean all problems or questions we face in a given day - be it personal questions, like what color shirt would go best with these pants (believe me this is the best I can get with personal questions , lol), or problems related to spending, whether I should buy a large plasma-TV, or be content with the flat-Television I bought last month.
So, if we look at these questions, they can not only be categorized as financial, personal, psycological etc categories, they actually fall in a unique plane-of-abstraction. Abstraction: that is set by the context of the environment around that problem
I'll try to explain it by an example. One that we find at work. I am in software industry and we come across a lot of programming problems - like how to display all the customer's details in a single page in a user-friendly manner? This is a valid problem, and needs a special experience with the underlying programming language.
Also, you'll agree that designing the particular web-site is also a problem, and requires graphical-design experience and expertise with the underlying designing tools etc
Now think, is managing this development and design team a problem? Yes it is, and requires project management expertise. Now lets see this, there's also a problem of getting funding for this project - either through external customers, or internal departments, but this is a problem, and needs experience of handling funding. Running an IT department of a commpany and co-ordinating different software projects is also a problem. And so, is running the whole company, making sure the company yields profits at the end of the day..
Now, all this may sound trivial, and obvious details - probably too obvious to be noticed. The point i am trying to make is all these (and many more) are real-life problems that can be solved in a few simple steps:
a) Problem statement
b) Expected results
c) Statement of required Experience
d) Identification of people with required expertise, and
Also, it may seem (and many managers love to this of this), as if these problems are different 'levels'. Managing a team is a higher-level problem than operations. Funding is a higher level than managing. Heading an IT deptt is at a higher level than all others, and so on...
Well, this may be one way of looking at things. But this certainly doesn't reflect the relative importance of these problem-planes. These are all equally important and critical planes of problems, and require all 5 steps from problem-statement to execution.
(more to come)