This article provides an overview of the elements of C++; specifically, the 'C' portion of C++.
Note how section 2.2 describes tokens as the "minimal chunks of a program". The root goal of programming is solving problems using the 'chunks' of a programming language. Of course, the chunks must be appropriate for the type of problems to be solved. Generally, smaller chunks are applicable to many types of tasks, but involve more effort; larger chunks involve less effort, but are designed for more specific tasks.
Analysis and design
Phase 4: Iterate the use cases
Once the core framework is running, each feature set you add is a small project in itself. You add a feature set during an iteration, a reasonably short period of development.
How
big is an iteration? Ideally, each iteration lasts one to three weeks
(this can vary based on the implementation language). At the end of that
period, you have an integrated, tested system with more functionality
than it had before. But what's particularly interesting is the basis for
the iteration: a single use case. Each use case is a package of related
functionality that you build into the system all at once, during one
iteration. Not only does this give you a better idea of what the scope
of a use case should be, but it also gives more validation to the idea
of a use case, since the concept isn't discarded after analysis and
design, but instead it is a fundamental unit of development throughout
the software-building process.
You
stop iterating when you achieve target functionality or an external
deadline arrives and the customer can be satisfied with the current
version. (Remember, software is a subscription business). Because the
process is iterative, you have many opportunities to ship a product
instead of a single endpoint; open-source projects work exclusively in
an iterative, high-feedback environment, which is precisely what makes
them successful.
An iterative development process is valuable for many reasons. You can reveal and resolve critical risks early, the customers have ample opportunity to change their minds, programmer satisfaction is higher, and the project can be steered with more precision. But an additional important benefit is the feedback to the stakeholders, who can see by the current state of the product exactly where everything lies. This may reduce or eliminate the need for mind-numbing status meetings and increase the confidence and support from the stakeholders.