The two biggest problems in software engineering are the process of efficiently and effectively developing requirements and the tooling required for creating truly solutions that can change as quick as your clients mind. This should be solved.
We still have problems in developing the right solution to meet your business needs on time and on budget, but at least you have enough money to hire the kind of people who are smart enough (and will have enough time) to figure it out.
The major problems of Software are:
- Current complexity of most programming languages
- Poorly predictable relationship of project duration to program functionality
- Adding additional manpower to a lagging software project may actually cause further schedule slippage due to overhead experienced during the integration of new employees.
- List of antipatterns, that might be thought of as statements of poor practice, in contradistinction to the list of design patterns
- Systematic detection of software defects
- Current complexity of most applications to the extent that companies fail when programmers leave
- Programming Complexity
- Statistical tendency of project to run behind schedule and over-budget
We also noticed that while you could use various pieces of packaged software, getting them to play together nicely was a real issue. This has gotten better over the years, but try to implement a single sign on for your e-commerce, secure extranet, discussion board and email marketing software packages with a single admin screen for managing permissions across all of the systems bearing in mind that the entire integration project must be under 2 man days of work and see how it goes! Then try to keep that working for no additional charge as the versions of all of the various pieces of software change over time. That was the problem we need to solve.
So, we realized that we need a single piece of software to solve all of customers problem where every piece of the design is flexible enough to be replaced.