See for yourself. Below is a company's propaganda poster, doctored to hide the company name & logo saving it from embarrassment. I was told it was plastered all over the hallway prominently.
Perhaps, there is some truth in that poster!
A site devoted to discussing techniques that promote quality and ethical practices in software development.
Base One found that the code consists mostly of general algorithms arranged in a manner to implement the breath testing sequence. "That is, the code is not really unique or proprietary."I doubt there are too many genuinely proprietary IP stuff in many today's commercial software. The more well established they are, the less they are and many are just a quilt of widely publicised algorithms poorly implemented to meet the so-called commercial dead lines.
source code appears to have evolved over numerous transitions and versioning, which is responsible for cyclomatic complexity.While this is a likely cause, and is in agreement with my experience in the Australian-made ERP software, it only indicates both companies have a very poor software maintenance process. Most likely it is based on code-and-fix with little regards to refactoring during a bug fix phase.
"At the moment the world is all doom and gloom, recession, credit crunching and downsizing. This site gives you a chance to gloat that your business has not fallen victim to short-sightedness, that even through bad times you value your staff enough to keep them for when times are good."Most companies only give lip-service when they tout that they value staff as assets but tough times sort out the sheep from the goats causing them to reveal their true selves.
Good APIs are a joy to use. They work without friction and almost disappear from sight: the right call for a particular job is available at just the right time, can be found and memorized easily, is well documented, has an interface that is intuitive to use, and deals correctly with boundary conditions.The article went on to provide a list of guidelines. It also offers the following top advice:
So, why are there so many bad APIs around? The prime reason is that, for every way to design an API correctly, there are usually dozens of ways to design it incorrectly. Simply put, it is very easy to create a bad API and rather difficult to create a good one. Even minor and quite innocent design flaws have a tendency to get magnified out of all proportion because APIs are provided once, but are called many times. If a design flaw results in awkward or inefficient code, the resulting problems show up at every point the API is called.
APIs should be designed from the perspective of the caller. When a programmer is given the job of creating an API, he or she is usually immediately in problem-solving mode: What data structures and algorithms do I need for the job, and what input and output parameters are necessary to get it done? It's all downhill from there: the implementer is focused on solving the problem, and the concerns of the caller are quickly forgotten.This recommendation is not dissimilar to the advice "Your users is not you" or another saying is "there are more users than developers".
[...]
This alternative definition requires the implementer to think about the problem in terms of the caller.
The fewer types, functions, and parameters an API uses, the easier it is to learn, remember, and use correctly. This minimalism is important. Many APIs end up as a kitchen sink of convenience functions that can be composed of other, more fundamental functions.This topic was given a detail treatment by Scott Meyers, "When it comes to encapsulation, sometimes less is more.". Or the YAGNI principle.
In many ways, the programming model has gone back to the model that dominated the mid1970s, when large mainframes served output to terminals connected directly to them. Users would submit jobs to the mainframe and get output to their terminals. So, what’s changed here? First, the terminal is a lot fancier—it’s a powerful PC running a browser that interprets HTML. The endpoint to which the browser connects is a Web server (or perhaps a server farm). Finally, the connection protocol used by the client and the server is indirect (and a request can quite literally cross the globe before the user sees a result).
...an Advanced Technology Group engineer named Sam Holland, who in 1986 convinced Gassee that Apple should design its own microprocessor chips.The italics emphasis is mine.
[...]
Believing that Gassee and the engineers knew best, Sculley gave Aquarius his unequivocal support, to the extend that he even bought the engineers a $15 million Cray supercomputer they could use to perform their design work on.
[...]
The underlying motivation behind the Aquarius project was Apple's fear that the Motorola line of microprocessors that it was dependent on would soon run out of steam and be surpassed by the rival line from Intel.
[...]
Holland proposed that Apple design not only a new chip but one that would incorporate four microprocessors onto a single piece of silicon.
[...]
The only problem was that this had never been attempted before in a computer as small as a desktop.
[...]
"Aquarius was an example of the willingness of the top management of Apple to embark on grand projects that skilled technical management would have known was unfeasible," Alcorn [Al Alcorn was an Apple Fellow] says.
"He said, 'What do you think about Aquarius?", Martin recalls. "I said, John, that's ridiculous. Apple has no fab or chip experience. How do you compete with Intel and Motorola?"Within 6 month after that conversation, the project was canceled.
"In 90 per cent of the research, the outcome of working in an open-plan office was seen as negative, with open-plan offices causing high levels of stress, conflict, high blood pressure, and a high staff turnover.This is not a startling result because Tom DeMarco & Timothy Lister had reported similar finding way back in the '80 and they concluded that:"The high level of noise causes employees to lose concentration, leading to low productivity, there are privacy issues because everyone can see what you are doing on the computer or hear what you are saying on the phone, and there is a feeling of insecurity.''
Workers who reported before the exercise that their workplace was acceptably quiet were 0ne-third more likely to deliver zero-defect work.Furthermore, Tom and Timonthy discovered, at that time,
The advocates of the new format produced not one shred of evidence that effectiveness would not impaired.One digging around published data, they found the following justification for open plan office:
The fundamental areas of consideration in designing an open-plan office within an information processing environment are: the system's electrical distribution capabilities, computer support capabilities and manufacturer and dealer service.In other words, open-plan was not designed for the benefit of human and is still is not even today!