Software Documentation Quotes

We've searched our database for all the quotes and captions related to Software Documentation. Here they are! All 100 of them:

In a small company, the CTO, R&D, the COO, and even the CEO or cofounders or owners can be responsible for reviewing documentation. Don’t rely on your memory; write it down. Ideas become reality when we speak them and write them. So document them in an idea journal (digital or traditional) without judgment at the time. Inventors (and especially software developers) tend to edit or judge ideas and conclude they are not patentable because they were simple—even though they solve important problems and do not exist elsewhere.
JiNan George (The IP Miracle: How to Transform Ideas into Assets that Multiply Your Business)
You wouldn’t believe the scope for mischief that the Beast of Redmond unintentionally builds into its Office software by letting it execute macros that have unlimited access to the hardware. I remember a particular post-prandial PowerPoint presentation where I was one of only two survivors (and the other wasn’t entirely human). However, this is the first time I’ve seen a Word document eat a man’s soul.
Charles Stross (Equoid (Laundry Files, #2.9))
A basic principle of data processing teaches the folly of trying to maintain independent files in synchonism.
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
By documenting a design, the designer exposes himself to the criticisms of everyone, and he must be able to defend everything he writes. If the organizational structure is threatening in any way, nothing is going to be documented until it is completely defensible.
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
If it's not written, it never happened. If it is written, it doesn't matter what happened.
Sercan Leylek
I vividly remember going to Google Docs, opening a document at the same time other students were working on it, and seeing their differently colored cursors moving around the screen, typing new words and making edits in real time. It was an epiphany.
Ian Lamont (Google Drive And Docs In 30 Minutes: The unofficial guide to Google's free online office and storage suite)
The ONI’s software and documentation have already been emailed to your private OASIS account,
Ernest Cline (Ready Player Two (Ready Player One, #2))
Beginners think that there is no documentation in agile, which is not true. It’s about choosing the types of documentation that are useful.
Gojko Adzic (Specification by Example: How Successful Teams Deliver the Right Software)
An architecture that is not documented, and not communicated, may still be a good architecture, but the risks surrounding it are enormous. —RK
Len Bass (Software Architecture in Practice)
The approach to digital culture I abhor would indeed turn all the world's books into one book, just as Kevin (Kelly) suggested. It might start to happen in the next decade or so. Google and other companies are scanning library books into the cloud in a massive Manhattan Project of cultural digitization. What happens next is what's important. If the books in the cloud are accessed via user interfaces that encourage mashups of fragments that obscure the context and authorship of each fragment, there will be only one book. This is what happens today with a lot of content; often you don't know where a quoted fragment from a news story came from, who wrote a comment, or who shot a video. A continuation of the present trend will make us like various medieval religious empires, or like North Korea, a society with a single book. The Bible can serve as a prototypical example. Like Wikipedia, the Bible's authorship was shared, largely anonymous, and cumulative, and the obscurity of the individual authors served to create an oracle-like ambience for the document as "the literal word of God." If we take a non-metaphysical view of the Bible, it serves as a link to our ancestors, a window. The ethereal, digital replacement technology for the printing press happens to have come of age in a time when the unfortunate ideology I'm criticizing dominates technological culture. Authorship - the very idea of the individual point of view - is not a priority of the new ideology. The digital flattening of expression into a global mush is not presently enforced from the top down, as it is in the case of a North Korean printing press. Instead, the design of software builds the ideology into those actions that are the easiest to perform on the software designs that are becoming ubiquitous. It is true that by using these tools, individuals can author books or blogs or whatever, but people are encouraged by the economics of free content, crowd dynamics, and lord aggregators to serve up fragments instead of considered whole expressions or arguments. The efforts of authors are appreciated in a manner that erases the boundaries between them. The one collective book will absolutely not be the same thing as the library of books by individuals it is bankrupting. Some believe it will be better; others, including me, believe it will be disastrously worse. As the famous line goes from Inherit the Wind: 'The Bible is a book... but it is not the only book' Any singular, exclusive book, even the collective one accumulating in the cloud, will become a cruel book if it is the only one available.
Jaron Lanier (You Are Not a Gadget)
Like cheap wine, long paper documentation ages rapidly and leaves you with a bad headache if you try to use it a year after it was created. On the other hand, maintaining a system without any documentation also causes headaches.
Gojko Adzic (Specification by Example: How Successful Teams Deliver the Right Software)
This document describes progress to date in establishing a defensive network capable of repelling wide-scale incursions by reconfiguring the national closed-circuit television surveillance network as a software-controlled look-to-kill multiheaded basilisk. To
Charles Stross (The Atrocity Archives (Laundry Files, #1))
Any attempt to fix it with minimum effort will repair the local and obvious, but unless the structure is pure or the documentation very fine, the far-reaching effects of the repair will be overlooked. Second, the repairer is usually not the man who wrote the code, and often he is a junior programmer or trainee.
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
Security is a big and serious deal, but it’s also largely a solved problem. That’s why the average person is quite willing to do their banking online and why nobody is afraid of entering their credit card number on Amazon. At 37signals, we’ve devised a simple security checklist all employees must follow: 1. All computers must use hard drive encryption, like the built-in FileVault feature in Apple’s OS X operating system. This ensures that a lost laptop is merely an inconvenience and an insurance claim, not a company-wide emergency and a scramble to change passwords and worry about what documents might be leaked. 2. Disable automatic login, require a password when waking from sleep, and set the computer to automatically lock after ten inactive minutes. 3. Turn on encryption for all sites you visit, especially critical services like Gmail. These days all sites use something called HTTPS or SSL. Look for the little lock icon in front of the Internet address. (We forced all 37signals products onto SSL a few years back to help with this.) 4. Make sure all smartphones and tablets use lock codes and can be wiped remotely. On the iPhone, you can do this through the “Find iPhone” application. This rule is easily forgotten as we tend to think of these tools as something for the home, but inevitably you’ll check your work email or log into Basecamp using your tablet. A smartphone or tablet needs to be treated with as much respect as your laptop. 5. Use a unique, generated, long-form password for each site you visit, kept by password-managing software, such as 1Password.§ We’re sorry to say, “secretmonkey” is not going to fool anyone. And even if you manage to remember UM6vDjwidQE9C28Z, it’s no good if it’s used on every site and one of them is hacked. (It happens all the time!) 6. Turn on two-factor authentication when using Gmail, so you can’t log in without having access to your cell phone for a login code (this means that someone who gets hold of your login and password also needs to get hold of your phone to login). And keep in mind: if your email security fails, all other online services will fail too, since an intruder can use the “password reset” from any other site to have a new password sent to the email account they now have access to. Creating security protocols and algorithms is the computer equivalent of rocket science, but taking advantage of them isn’t. Take the time to learn the basics and they’ll cease being scary voodoo that you can’t trust. These days, security for your devices is just simple good sense, like putting on your seat belt.
Jason Fried (Remote: Office Not Required)
As test documentation goes, test plans have the briefest actual lifespan of any test artifact. Early in a project, there is a push to write a test plan [...]. Indeed, there is often an insistence among project managers that a test plan must exist and that writing it is a milestone of some importance. But, once such a plan is written, it is often hard to get any of those same managers to take reviewing and updating it seriously. The test plan becomes a beloved stuffed animal in the hands of a distracted child. We want it to be there at all times. We drag it around from place to place without ever giving it any real attention. We only scream when it gets taken away.
James A. Whittaker (How Google Tests Software)
According to Petroski, real knowledge from real failure is the most powerful source of progress we have, provided we have the courage to carefully examine what happened. Perhaps this is why The Boeing Company, one of the largest airplane design and engineering firms in the world, keeps a black book of lessons it has learned from design and engineering failures.[4] Boeing has kept this document since the company was formed, and it uses it to help modern designers learn from past attempts. Any organization that manages to do this not only increases its chances for successful projects, but also helps create an environment that can discuss and confront failure openly, instead of denying and hiding from it. It seems that software developers need to keep black books of their own.
Scott Berkun (Making Things Happen: Mastering Project Management)
The Xerox Corporation’s Palo Alto Research Center, known as Xerox PARC, had been established in 1970 to create a spawning ground for digital ideas. It was safely located, for better and for worse, three thousand miles from the commercial pressures of Xerox corporate headquarters in Connecticut. Among its visionaries was the scientist Alan Kay, who had two great maxims that Jobs embraced: “The best way to predict the future is to invent it” and “People who are serious about software should make their own hardware.” Kay pushed the vision of a small personal computer, dubbed the “Dynabook,” that would be easy enough for children to use. So Xerox PARC’s engineers began to develop user-friendly graphics that could replace all of the command lines and DOS prompts that made computer screens intimidating. The metaphor they came up with was that of a desktop. The screen could have many documents and folders on it, and you could use a mouse to point and click on the one you wanted to use.
Walter Isaacson (Steve Jobs)
2006 interview by Jim Gray, Amazon CTO Werner Vogels recalled another watershed moment: We went through a period of serious introspection and concluded that a service-oriented architecture would give us the level of isolation that would allow us to build many software components rapidly and independently. By the way, this was way before service-oriented was a buzzword. For us service orientation means encapsulating the data with the business logic that operates on the data, with the only access through a published service interface. No direct database access is allowed from outside the service, and there’s no data sharing among the services.3 That’s a lot to unpack for non–software engineers, but the basic idea is this: If multiple teams have direct access to a shared block of software code or some part of a database, they slow each other down. Whether they’re allowed to change the way the code works, change how the data are organized, or merely build something that uses the shared code or data, everybody is at risk if anybody makes a change. Managing that risk requires a lot of time spent in coordination. The solution is to encapsulate, that is, assign ownership of a given block of code or part of a database to one team. Anyone else who wants something from that walled-off area must make a well-documented service request via an API.
Colin Bryar (Working Backwards: Insights, Stories, and Secrets from Inside Amazon)
In effect, we know from Darwin that there are only four characteristics necessary in order to get adaptive evolution, right? If you have reproduction, variation, differential success, and an environment of limited resources, you're going to get adaptive evolution. When we set up an economic system, or a political system...*it evolves*. Things evolve within it. And if we don't anticipate that what we write down in our documents about what we're trying to accomplish does not have the capacity to overwhelm whatever niche we have set up and that we will ultimately see the creatures that are supported by the environment that we created, then we will never get this right. Because we will always be fooled by our own intentions, and we will create structures that create predators of an arbitrary kind. So we need to start thinking evolutionarily, because that's the mechanism for shaping society into something of a desirable type rather than a monstrous type. [...] So let's say we're talking about a political structure...and we know we don't like corruption...and we're going to set a penalty for attempting to corrupt the system. OK, now what you've done is you've built a structure in which evolution is going to explore the questions, 'What kind of corruptions are invisible?' and 'What kinds of penalties are tolerable from the point of view of discovering how to alter policy in the direction of some private interest?' Once you've set that up, if you let it run, evolutionarily it will create a genius corruptor, right? It will generate something that is capable of altering the functioning of the system without being spotted, and with being only slightly penalized -- and then you'll have no hope of confronting it, because it's going to be better at shifting policy than you will be at shifting it back. So what you have to do is, you have to build a system in which there *is no selection* that allows for this process to explore mechanisms for corrupting the system, right? You may have to turn the penalties up much higher than you would think, so that any attempt to corrupt the system is ruinous to the thing that attempts it. So the thing never evolves to the next stage, because it keeps going extinct, right? That's a system that is resistant to the evolution of corruption, but you have to understand that it's an evolutionary puzzle in the first place in order to accomplish that goal. [...] We sort of have this idea that we inherited from the wisdom of the 50s that genes are these powerful things lurking inside of us that shift all of this stuff that we can't imagine they would have control over, and there's some truth in it. But the larger truth is that so much of what we are is built into the software layer, and the software layer is there because it is rapidly changeable. That's why evolution shifted things in that direction within humans. And we need to take advantage of that. We need to be responsible for altering things carefully in the software, intentionally, in order to solve problems and basically liberate people and make life better for as many people as possible, rather than basically throw up our hands because we are going to claim that these things live at the genetic layer and therefore what can we do?
Bret Weinstein
Some basic guidelines are: Don’t click on links within emails from unknown sources (no matter how curious you might be). Don’t open attachments from unknown sources (malware can be embedded into many different files, such as Portable Document Format (PDF) files, Word documents, Zip files, and more). Be wary of free downloads from the Internet (Trojans entice you with something free but include malware). Limit information you post on social media sites (criminals use this to answer password reset questions). Back up your data regularly (unless you’re willing to see it disappear forever). Keep your computer up to date with current patches (but beware of zero-day exploits). Keep antivirus software up to date (but don’t depend on it to catch everything).
Darril Gibson (CompTIA Security+: Get Certified Get Ahead: SY0-401 Study Guide)
Lync has its title altered. And so what sort of computer software is it now? Well, it is identified as Lync Mac Business. The particular motive for carrying this out is a need to combine the familiar experience and level of popularity from consumers associated with Lync Mac along with security regarding Lync as well as control feature set. Yet another thing which Lync has got influenced in this specific new version of Lync happens to be the transformation associated with particular graphical user interface aspects which are used in the popular program of Lync Mac. It has been chose to utilize the same icons as in Lync as an alternative to attempting to make new things. Microsoft Company furthermore included the particular call monitor screen which happens to be applied within Lync in order that consumers could preserve an active call seen inside a small display when customers happen to be focusing on yet another program. It is additionally essential to point out that absolutely no features which were obtainable in Lync are already eliminated. And you should additionally understand that Lync Mac happens to be nevertheless utilizing the foundation regarding Lync. And it is very good that the actual software is nevertheless operating on the previous foundation since it happens to be known for the security. However what helps make Lync Mac a great choice if perhaps you're searching for an immediate texting software? There are a wide range of advantages which this particular application has got and we'll have a look at a few of these. Changing from instantaneous messaging towards document sharing won't take a great deal of time. Essentially, it provides a flawless incorporation associated with the software program. An improved data transfer administration is yet another factor that you'll be in a position enjoy from this program. Network supervisors can assign bandwidth, limit people and also split video and audio streams throughout each application and control the effect of bandwidth. In case you aren't making use of Microsoft Windows operating system and prefer Lync in that case possibly you're concerned that you will not be able to utilize this particular application or it is going to possess some constraints? The reply happens to be no. As we've talked about many times currently, Lync is currently best-known as being Lync For Mac Business .There is nothing that is actually extracted from the main edition therefore the full functionality is actually offered for you. And it is certainly great to understand the fact that Lync that we should simply call Lync For Mac version is actually capable to provide you all the characteristics which you'll need. If you happen to be trying to find a fantastic application for your own organization, in that case this is the one particular you are in search of Lync For Mac which will still be acknowledged as being Lync for a long period edition is actually competent to present you with everything that is actually necessary for your organization even if you decided to not utilize Microsoft operating system. Know about more detail please visit lyncmac.com
Addan smith
Status reports usually show up because a distant executive feels out of touch with part of his or her organization, and they believe getting everyone to efficiently document their week is going to help. It doesn’t.
Michael Lopp (Managing Humans: Biting and Humorous Tales of a Software Engineering Manager)
documenting exclusively through code has some of the same basic problems as using comprehensive UML diagrams.
Eric Evans (Domain-Driven Design: Tackling Complexity in the Heart of Software)
A document shouldn’t try to do what the code already does well.
Eric Evans (Domain-Driven Design: Tackling Complexity in the Heart of Software)
Written documents should complement the code and the talking.
Eric Evans (Domain-Driven Design: Tackling Complexity in the Heart of Software)
you may hear the UBIQUITOUS LANGUAGE changing naturally while a document is being left behind.
Eric Evans (Domain-Driven Design: Tackling Complexity in the Heart of Software)
Finally, unlike Plan-and-Document, in Agile you revise code continuously to improve the design and to add functionality starting with the second iteration.
Armando Fox (Engineering Software as a Service: An Agile Approach Using Cloud Computing + $10 AWS Credit)
It’s well-documented that stress and low self-confidence are detrimental to productivity, especially on tasks requiring creative thinking. Maintaining a healthy exercise routine saves time, creativity, and energy in the long run.
Timur Zhiyentayev (Software for Productive People And Businesses: The Guidebook To The Best And Latest Apps, Websites And Online Services.)
Your Kindle Paperwhite has been updated. In addition to performance improvements for your Kindle Paperwhite, new features include: PDF Improvements: Pan and zoom more easily and quickly in PDF documents, and customise the margins for an optimised reading experience. Enhancements to Cloud Collections: See all of your collections in Collections View, and customise where your collections are displayed on your device. To learn more about these features, download the updated version of the Kindle Paperwhite User’s Guide 2nd Edition from the Cloud. Please keep your Kindle connected to a Wi-Fi network to make sure you receive all future software updates. We hope you enjoy the improvements we've made. 
Anonymous
Great documentation makes new hires productive in days instead of weeks, prevents thousands of calls to customer support, is the difference between crippling downtime and rock solid stability, and inspires true, fervent love of development platforms.
Andrew Etter (Modern Technical Writing: An Introduction to Software Documentation)
Project manager and business analyst roles have many intersection points. Scope management is one of them. While the project manager is responsible for “project” scope management, the business analysts are responsible for “product” scope management. Project scope is defined as the work that needs to be accomplished to deliver a product with specified features, whereas product scope represents the features of the product to meet the business needs of the project. Therefore, in order to determine the project scope correctly, the project manager should assist business analysts in defining a clear and correct product scope. After business analysts reach an agreement with business units about product scope and prepare the business case or vision and scope document, the project manager should define the project scope on the project charter document.
Emrah Yayici (Business Analyst's Mentor Book : With Best Practice Business Analysis Techniques and Software Requirements Management Tips)
Software development is all about knowledge and decision-making based on that knowledge, which in turn creates additional knowledge.
Cyrille Martraire (Living Documentation: Continuous Knowledge Sharing by Design)
The Manifesto for Agile Software Development was put together by a group of developers at a ski resort in Utah in 2001. It contains four simple but powerful value comparisons: individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan. You can apply these principles to any kind of subscription service. Innovation doesn’t happen in a vacuum. It’s the result of iterating a concept over a period of time. Big “boom or bust” product launches can actually be a recipe for burnout: they result in unhealthy peaks and troughs of productivity and inspiration. The idea is to create an environment that supports sustainable development—the team should be able to maintain a constant pace of innovation indefinitely. That’s the only way to stay responsive, to stay agile.
Tien Tzuo (Subscribed: Why the Subscription Model Will Be Your Company's Future - and What to Do About It)
Managers handle parallel projects all the time. They juggle with people, work tasks, and goals to ensure the success of every project process. However, managing projects, by design, is not an easy task. Since there are plenty of moving parts, it can easily become disorganized and chaotic. It is vital to use an efficient project management system to stay organized at work while designing and executing projects. Project Management Online Master's Programs From XLRI offers unique insights into project management software tools and make teams more efficient in meeting deadlines. How can project management software help you? Project management tools are equipped with core features that streamline different processes including managing available resources, responding to problems, and keeping all the stakeholders involved. Having the best project management software can make a significant influence on the operational and strategic aspects of the company. Here is a list of 5 key benefits to project professionals and organizations in using project management software: 1. Enhanced planning and scheduling Project planning and scheduling is an important component of project management. With project management systems, the previous performance of the team relevant to the present project can be accessed easily. Project managers can enroll in an online project management course to develop a consistent management plan and prioritize tasks. Critical tasks like resource allocation, identification of dependencies, and project deliverables can be completed comfortably using project management software. 2. Better collaboration Project teams sometimes have to handle cross-functional projects along with their day to day responsibilities. Communication between different team members is critical to avoid expensive delays and precludes the waste of precious resources. A key upside of project management software is that it makes effectual collaboration extremely simple. All project communication is stored in a universally accessible place. The project management online master's program offers unique insights to project managers on timeline and status updates which leads to a synergy between the team’s functions and project outcomes. 3. Effective task delegation Assigning tasks to team members in a fair way is a challenging proposition for most project managers. With a project management program, the delegation of project tasks can be easily done. In most instances, these programs send out automatic reminders when deadlines are approaching to ensure a smooth and efficient project workflow. 4. Easier File access and sharing Important documents should be safely accessed and shared among team members. Project management tools provide cloud-based storage which enables users to make changes, leave feedback and annotate easily. PM software logs any user changes to ensure project transparency within the team. 5. Easier integration of new members Project managers are responsible to get new members up to speed on the important project parameters within a short time. Project management online master's programs from XLRI Jamshedpuroffer vital learning to management professionals in maintaining a project log and in simplistically visualizing the complete project. Takeaway Choosing the perfect PM software for your organization helps you to effectively collaborate to achieve project success. Simple and intuitive PM tools are useful to enhance productivity in remote-working employees.
Talentedge
If a system has a clean and obvious design, then it will need less documentation. The need for extensive documentation is often a red flag that the design isn’t quite right.
John Ousterhout (A Philosophy of Software Design)
had been impressed with a software development technique called CMMI (Capability Maturity Model Integrated). CMMI ranked how mature software development processes at an organization were on a 1 to 5 scale, with 5 being the best. A level 1 development process was “unpredictable, poorly controlled, and reactive,” while a level 5 process was well organized, well understood, and focused on continuous improvement.3 With a level 5 process, you had a robust, documented development procedure in place that minimized errors and enabled the entire organization to learn from errors so as not to repeat them.
David Cote (Winning Now, Winning Later: How Companies Can Succeed in the Short Term While Investing for the Long Term)
Factom, an Austin, Texas, company that created an audit trail of financial documents’ changes, creating a model that, if it’s widely adopted, will eventually replace the whole industry of quarterly and annual accounting and auditing with something that happens in real time. Another player in this space is called, appropriately, Stampery. Stampery was founded by Luis Iván Cuende, a remarkable young Spanish entrepreneur who founded his first major software project at the age of twelve and at the age of twenty-one had amassed a reputation as one of the world’s most innovative hackers and developers. Stampery takes hashes of documents and records the trail of changes to them to the blockchain, providing valuable proof of status for companies involved in negotiations or litigation.
Michael J. Casey (The Truth Machine: The Blockchain and the Future of Everything)
In a 2006 interview by Jim Gray, Amazon CTO Werner Vogels recalled another watershed moment: We went through a period of serious introspection and concluded that a service-oriented architecture would give us the level of isolation that would allow us to build many software components rapidly and independently. By the way, this was way before service-oriented was a buzzword. For us service orientation means encapsulating the data with the business logic that operates on the data, with the only access through a published service interface. No direct database access is allowed from outside the service, and there’s no data sharing among the services.3 That’s a lot to unpack for non–software engineers, but the basic idea is this: If multiple teams have direct access to a shared block of software code or some part of a database, they slow each other down. Whether they’re allowed to change the way the code works, change how the data are organized, or merely build something that uses the shared code or data, everybody is at risk if anybody makes a change. Managing that risk requires a lot of time spent in coordination. The solution is to encapsulate, that is, assign ownership of a given block of code or part of a database to one team. Anyone else who wants something from that walled-off area must make a well-documented service request via an API.
Colin Bryar (Working Backwards: Insights, Stories, and Secrets from Inside Amazon)
In my tenure at Amazon I heard him say many times that if we wanted Amazon to be a place where builders can build, we needed to eliminate communication, not encourage it. When you view effective communication across groups as a “defect,” the solutions to your problems start to look quite different from traditional ones. He suggested that each software team should build and clearly document a set of application program interfaces (APIs) for all their systems/services. An API is a set of routines, protocols, and tools for building software applications and defining how software components should interact. In other words, Jeff’s vision was that we needed to focus on loosely coupled interaction via machines through well-defined APIs rather than via humans through emails and meetings. This would free each team to act autonomously and move faster.
Colin Bryar (Working Backwards: Insights, Stories, and Secrets from Inside Amazon)
If you were to ask recently hired Amazon employees about what has surprised them most in their time at the company so far, one response would certainly top the list: “The eerie silence in the first 20 minutes of many meetings.” At Amazon, after a brief exchange of greetings and chitchat, everyone sits at the table, and the room goes completely silent. Silent, as in not a word. The reason for the silence? A six-page document that everyone must read before discussion begins. Amazon relies far more on the written word to develop and communicate ideas than most companies, and this difference makes for a huge competitive advantage. In this chapter we’ll talk about how and why Amazon made the transition from the use of PowerPoint (or any other presentation software) to written narratives, and how it has benefited the company—and can benefit yours too. Amazon uses two main forms of narrative. The first is known as the “six-pager.” It is used to describe, review, or propose just about any type of idea, process, or business. The second narrative form is the PR/FAQ. This one is specifically linked to the Working Backwards process for new product development. In this chapter, we’ll focus on the six-pager and in the following chapter we’ll look at the PR/FAQ.
Colin Bryar (Working Backwards: Insights, Stories, and Secrets from Inside Amazon)
Economics and P&L What are the per-unit economics of the device? That is, what is the expected gross profit and contribution profit per unit? What is the rationale for the price point you have chosen for the product? How much will we have to invest up front to build this product in terms of people, technology, inventory, warehouse space, and so on? For this section of the PR/FAQ, ideally one or more members of your finance team will work with you to understand and capture these costs so you can include a simplified table of the per-unit economics and a mini P&L in the document. A resourceful entrepreneur or product manager can do this work themselves if they do not have a finance manager or team. For new products, the up-front investment is a major consideration. In the case of Melinda, there is a requirement for 77 people to work on the hardware and software, for an annualized cost of roughly $15 million. This means that the product idea needs to have the potential to earn well in excess of $15 million per year in gross profit to be worth building. The consumer questions and economic analysis both have an effect on the product price point, and that price point, in turn, has an effect on the size of the total addressable market. Price is a key variable in the authoring of your PR/FAQ. There may be special assumptions or considerations that have informed your calculation of the price point—perhaps making it relatively low or unexpectedly high—that need to be called out and explained. Some of the best new product proposals set a not-to-exceed price point because it forces the team to innovate within that constraint and face the tough trade-offs early on. The problem(s) associated with achieving that price point should be fully explained and explored in the FAQ.
Colin Bryar (Working Backwards: Insights, Stories, and Secrets from Inside Amazon)
A group at Microsoft surveyed a significant number of Microsoft MVPs and asked them what they thought the value of the documentation was as a percentage of the price of the software.[10] The responses were entirely subjective, to be sure, but they provided compelling information that enabled that documentation group to argue for a better percentage of the engineering budget to fund their content improvement efforts.
Christopher Gales (The Product is Docs: Writing technical documentation in a product development group)
Our law firm was founded on the principles of efficiency, fiscal responsibility, and collaboration. We know that time is money and we take our commitment to efficiency very seriously. While our qualifications, experience, and technology are comparable to that of our large firm counterparts, we deliver value by keeping our overhead low and by leveraging technology, including the latest document management software to allow our lawyers to collaborate seamlessly. Passing the cost saving on to you.
The Calgary Legal Team
When you've got your devices down to the ideal number, use these tips to minimize them and prevent distractions: - Remove as many icons from your desktop as possible. - Uninstall software you don't need. - Delete unneeded files from your Documents folder. (If you don't want to delete them completely, at least move them to an archive folder so they don't clutter your most-used folder anymore.) - Develop a simple but logical folder structure so that you can find documents you want easily. - Unsubscribe to blogs, email newsletters, and advertisements that no longer serve your interests. - Delete internet bookmarks, cookies, and temporary internet files you no longer need. - Delete apps you don't need, remembering that if you need them later, you can always download them again. Put only your most crucial apps (such as your calendar and your phone) on your home screen. Put the rest in folders on your second screen. - Turn off notifications, including social media push notifications and email audio alerts. - Make sure your spam filters are working. - Delete photos that are of poor quality or that you don't need. - Delete unused music and movies. - Subscribe to a password manager so that you don't have to keep track of a bunch of passwords.
Joshua Becker (The Minimalist Home: A Room-by-Room Guide to a Decluttered, Refocused Life)
Spec (Specification) — A document that tells you how it is. The process of writing a specification tends to be more useful than someone reading it.
Michael Lopp (Managing Humans: Biting and Humorous Tales of a Software Engineering Manager)
Project house is a warehouse of more than 100+ projects in all platforms focused on effectively helping understudies with quality, well-informed, dependable and project ideas and task materials that helps the final year projects for computer science students to make a good academic project and improving their project ideas.This website not only helps you to choose a project but also provides step by step instructions on how to make it happen by providing abstract, demo videos and screenshots and also an option to upload your individual project. The top project categories are python, unity, machine learning, android, .net, java and php. All software projects are exploring IEEE Papers. We provide all the documents regarding the projects. And the code deployment will also be given to you. All the software needed to the project will be given by us. You just do one thing; Pick a project that matches your interest and then you can request to the administrator for that project then administrator group will reach you for further procedures. We help you to identify the best project for you. Project house also helps to identify free internship for final year Computer science and Information science and job training facility. Register now site link is in my profile
Ananya micheal
Cloud Service Any service made available to users on demand via the Internet from a cloud computing provider's servers rather than from a company's own on-premises servers is referred to as a cloud service. Cloud services are managed by a cloud services provider and are designed to enable easy, scalable access to applications, resources, and services. CLOUD SERVICES ARE SCALABLE AND DYNAMIC. A cloud service may dynamically scale to meet the needs of its customers, and because the service provider provides all of the necessary hardware and software, a corporation does not need to provision or deploy its own resources or dedicate IT people to operate the service. Online data storage and backup solutions, Web-based e-mail services, hosted office suites and document collaboration services, database processing, managed technical support services, and more are all examples of cloud services.
Crafsol Technology
AWS Training in Chennai | AWS Certification Course | Placement About Us We offer thorough AWS Training in Chennai at SLA to assist you in managing cloud ecosystems and building adaptable cloud apps without worrying about infrastructure provisioning and administration. Our instructors give students with AWS products, solutions, pricing, documentation, and services so that they may understand the specific needs of their clients and provide solutions appropriately. In our AWS Training Institute in Chennai, we provide classroom and instructor-led online teaching with hands-on experience ranging from the foundation to the advanced level, as well as 100% placement assistance. Description We offer complete practical implementations of AWS Cloud Computing services in trending technologies such as blockchain, manageable cloud migration, content delivery, containers, data lakes, edge computing, front-end web application development, mobile app development, modern application development, remote learning and work, serverless computing, and digital marketing, among others, for startups, enterprises, and government agencies. Conclusion Join our AWS Course in Chennai, which includes all required programs with the most recent updates and plugins, as well as limitless lab hours for practice, study materials, and free software installation on your systems.
SLAinstitute
At Google, we often attach “freshness dates” to documentation. Such documents note the last time a document was reviewed, and metadata in the documentation set will send email reminders when the document hasn’t been touched in, for example, three months.
Titus Winters (Software Engineering at Google: Lessons Learned from Programming Over Time)
Consider the following statements from two hypothetical technical writers: "In my professional opinion, the content is clear, concise, correct, and complete. The language is professional, conforms to our style guide, and projects a strong brand. Some of the tables were too wide for print, so we now enforce a two-column limit on all tables. Overall, I'm happy with the quality of the documentation." "The application logs show that the product only has 1,300 users, yet the documentation received 2,400 page views last month. In that same timespan, readers reported six inaccuracies, all of which I resolved within 72 hours. The five most popular search terms return the pages I would expect, and the design team recently helped me optimize the header margins for readability. Overall, I'm happy with the quality of the documentation." I sincerely hope that you find the second argument more compelling. In any field, opinions become more credible when you attach quantitative metrics to them. Documentation is no different.
Andrew Etter (Modern Technical Writing: An Introduction to Software Documentation)
It doesn’t take a huge amount of knowledge and skill to get a program working. Kids in high school do it all the time. Getting it right is another matter entirely. And when you get the software right, something magical happens: You don’t need hordes of programmers to keep it working. You don’t need massive requirements documents and huge issue tracking systems. You don’t need global cube farms and 24/7 programming. When software is done right, it requires a fraction of the human resources to create and maintain.
Robert C. Martin. (Clean Architecture)
WHY COMMUNITY IS MORE REPRESENTATIVE THAN “USERS” In the traditional software development model, we're used to writing technical documentation with a specific user in mind. However, this approach can be limiting because it assumes a single "ideal" user represents your entire user base. The docs-as-ecosystem model proposes a different way of thinking about technical documentation; it recognizes technical documentation is not just a product but an ongoing conversation between diverse documentation creators (contributors) and the community. Thinking in terms of community has several advantages over focusing only on users: More inclusive: Focusing on the community is more inclusive than focusing only on users because it recognizes that many different types of stakeholders contribute to and read the documentation. More diverse: Focusing on the community encourages diversity and inclusion because it recognizes many different backgrounds and experiences. More collaborative: Focusing on the community also fosters a more collaborative approach to documentation because it encourages anyone from any background to participate. By focusing on community, the docs-as-ecosystem approach offers a more flexible, adaptable, and sustainable way to approach technical documentation. Rather than assuming that there is a single "ideal" user, we recognize that technical documentation is a dynamic and ongoing conversation between documentation creators and the community.
Alejandra Quetzalli (Docs-as-Ecosystem: The Community Approach to Engineering Documentation)
Here are some reasons for the software developer community to adopt "docs-as-ecosystem": Proposes a more holistic and community-centered approach: The term "docs-as-ecosystem" recognizes that documentation is not just a set of markdown files or code snippets but an ecosystem that needs to be managed and nurtured. The term "docs-as-code" has been widely adopted recently, but it may not fully capture the complexity and diversity of documentation development. The term "docs-as-ecosystem" aligns with the industry trend towards a more holistic and community-centered approach to documentation development. Encourages collaboration: The term "docs-as-ecosystem" acknowledges that documentation development involves different roles and stakeholders, such as technical writers, designers, developers, community members, and beyond. By adopting this term, the software developer community can encourage collaboration across diverse stakeholders and facilitate the creation of high-quality documentation. Emphasizes the importance of retrieving and incorporating community feedback: The term "docs-as-ecosystem" highlights the importance of retrieving and integrating community feedback in documentation development. It recognizes that documentation is about providing information and meeting community needs and preferences.
Alejandra Quetzalli (Docs-as-Ecosystem: The Community Approach to Engineering Documentation)
These microservices were delivered not as a pile of code, nor as a website, but as a web-based API. APIs are well-defined interfaces that enable code to talk to other bits of code. Once a team builds and exposes an API to others, it’s important that they teach other teams how to use it via documentation that’s accurate and up to date.
Jeff Lawson (Ask Your Developer: How to Harness the Power of Software Developers and Win in the 21st Century)
By 2006, they had created an international exemplar of interconnectedness. Estonian software engineers had not only created Skype; they were helping to build a new society, where the only rituals requiring you to show up in person and present a document were marriage, divorce, and buying property. Everything else was online—government, banking, finance, insurance, communications, broadcast and print media, the balloting for elections. Wi-Fi was strong, ever present, and free. People began to call their homeland e-Estonia. They had created the first country whose political and social architectures were framed by an internet infrastructure—and perhaps the most technologically sophisticated nation on earth. In April 2007, the authorities in Tallinn decided to move the Bronze Soldier from its pedestal to a military cemetery. Estonian patriots found it offensive, Russian nationalists came to Estonia to rally around it, and the statue became a flash point of confrontation. Russia’s foreign affairs minister, Sergey Lavrov, called the decision disgusting; he warned of serious consequences for Estonia. An angry mob of Russians ran riot in the capital. In Moscow, young thugs laid siege to the Estonian embassy and forced it to shut down. And then Putin waged political warfare in a way that made Estonia’s strength its weakness.
Tim Weiner (The Folly and the Glory: America, Russia, and Political Warfare 1945–2020)
Sutherland and a group of top software development gurus met for three days in 2001 to find an alternative. They hammered out a one-page document called the “Manifesto for Agile Software Development,
Jeff Lawson (Ask Your Developer: How to Harness the Power of Software Developers and Win in the 21st Century)
The meetings are published on a public calendar to which anyone can subscribe. Two days before the meeting, participants must publish a document about what they’re presenting. Everyone participating is required to read the document before the meeting.
Jeff Lawson (Ask Your Developer: How to Harness the Power of Software Developers and Win in the 21st Century)
At many companies, product ideas or reviews will center on strategy documents, competitive analysis, or maybe wireframes. At Twilio, the first step in defining a new product or feature is writing the press release. This may sound counterintuitive, as the press release is usually the last step before launching a product. But this practice is part of a process of “working backward” from the customer need that has roots at Amazon. The press release is a great artifact on which to base product conversations, but it’s easily misunderstood. The goal isn’t to actually send the press release out on the wire. Rather, the format of a press release, if written correctly, relays in order of importance why customers will care about the product you’re building—which is a great basis around which to build a product from the get-go.
Jeff Lawson (Ask Your Developer: How to Harness the Power of Software Developers and Win in the 21st Century)
Extreme Programming concentrates exclusively on the active elements of a program and executable tests. Even comments added to the code do not affect program behavior, so they always fall out of sync with the active code and its driving model. External documents and diagrams do not affect the behavior of the program, so they fall out of sync. On the other hand, spoken communication and ephemeral diagrams on whiteboards do not linger to create confusion. This dependence on the code as communication medium motivates developers to keep the code clean and transparent.
Evans Eric (Domain-Driven Design: Tackling Complexity in the Heart of Software)
This change in our thinking was of course nudged along by Jeff. In my tenure at Amazon I heard him say many times that if we wanted Amazon to be a place where builders can build, we needed to eliminate communication, not encourage it. When you view effective communication across groups as a “defect,” the solutions to your problems start to look quite different from traditional ones. He suggested that each software team should build and clearly document a set of application program interfaces (APIs) for all their systems/services. An API is a set of routines, protocols, and tools for building software applications and defining how software components should interact. In other words, Jeff’s vision was that we needed to focus on loosely coupled interaction via machines through well-defined APIs rather than via humans through emails and meetings. This would free each team to act autonomously and move faster.
Colin Bryar (Working Backwards: Insights, Stories, and Secrets from Inside Amazon)
When documenting a variable, think nouns, not verbs.
John Ousterhout (A Philosophy of Software Design)
If you want code that presents good abstractions, you must document those abstractions with comments.
John Ousterhout (A Philosophy of Software Design)
The first step in documenting abstractions is to separate interface comments from implementation comments. Interface comments provide information that someone needs to know in order to use a class or method; they define the abstraction. Implementation comments describe how a class or method works internally in order to implement the abstraction. It’s important to separate these two kinds of comments, so that users of an interface are not exposed to implementation details.
John Ousterhout (A Philosophy of Software Design)
Cosgrove advocates treating all plans, milestones, and schedules as tentative, so as to facilitate change. This goes much too far—the common failing of programming groups today is too little management control, not too much. Nevertheless, he offers a great insight. He observes that the reluctance to document designs is not due merely to laziness or time pressure. Instead it comes from the designer's reluctance to commit himself to the defense of decisions which he knows to be tentative. "By documenting a design, the designer exposes himself to the criticisms of everyone, and he must be able to defend everything he writes. If the organizational structure is threatening in any way, nothing is going to be documented until it is completely defensible." Structuring an organization for change is much harder than designing a system for change. Each man must be assigned to jobs that broaden him, so that the whole force is technically flexible. On a large project the manager needs to keep two or three top programmers as a technical cavalry that can gallop to the rescue wherever the battle is thickest. Management structures also need to be changed as the system changes. This means that the boss must give a great deal of attention to keeping his managers and his technical people as interchangeable as their talents allow.
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
The activities defined by BSIMM don’t come directly from the BSIMM authors’ experience in creating secure software; instead, the authors interviewed security executives at 30 organizations with world-class software security initiatives and created the BSIMM activities from the commonalities that those organizations reported. So the security testing activity to ensure that quality assurance engineers include edge case tests in their test plans comes from the fact that most of the 30 organizations interviewed also perform this activity. As a result, BSIMM is not meant to be prescriptive; it is only meant to be descriptive. Instead of thinking of it like a cookbook full of recipes, the BSIMM documentation states, you should think of it like a trail guide full of waypoints.
Bryan Sullivan (Web Application Security, A Beginner's Guide)
Writing the comments first makes documentation part of the design process. Not only does this produce better documentation, but it also produces better designs and it makes the process of writing documentation more enjoyable.
John Ousterhout (A Philosophy of Software Design)
We are big fans of the agile software movement. In 2001, seventeen software developers met in Snowbird, Utah, and published the “Manifesto for Agile Software.” The four main values in the manifesto remind us how the best friction fixers think and act: (1) “individuals and interactions over processes and tools”; (2) “working software over comprehensive documentation”; (3) “customer collaboration over contract negotiation”; and (4) “responding to change over following a plan.” Agile software teams deliver their work in small increments rather than in one “big bang” launch. Rather than following a rigid plan, they constantly evaluate results and constraints and update the software, and how they work, along the way.
Robert I. Sutton (The Friction Project: How Smart Leaders Make the Right Things Easier and the Wrong Things Harder)
Here are a few of of the most important red flags discussed in this book. The presence of any of these symptoms in a system suggests that there is a problem with the system’s design: Shallow Module: the interface for a class or method isn’t much simpler than its implementation (see pp. 25, 110). Information Leakage: a design decision is reflected in multiple modules (see p. 31). Temporal Decomposition: the code structure is based on the order in which operations are executed, not on information hiding (see p. 32). Overexposure: An API forces callers to be aware of rarely used features in order to use commonly used features (see p. 36). Pass-Through Method: a method does almost nothing except pass its arguments to another method with a similar signature (see p. 52). Repetition: a nontrivial piece of code is repeated over and over (see p. 68). Special-General Mixture: special-purpose code is not cleanly separated from general purpose code (see p. 71). Conjoined Methods: two methods have so many dependencies that its hard to understand the implementation of one without understanding the implementation of the other (see p. 75). Comment Repeats Code: all of the information in a comment is immediately obvious from the code next to the comment (see p. 104). Implementation Documentation Contaminates Interface: an interface comment describes implementation details not needed by users of the thing being documented (see p. 114). Vague Name: the name of a variable or method is so imprecise that it doesn’t convey much useful information (see p. 123). Hard to Pick Name: it is difficult to come up with a precise and intuitive name for an entity (see p. 125). Hard to Describe: in order to be complete, the documentation for a variable or method must be long. (see p. 133). Nonobvious Code: the behavior or meaning of a piece of code cannot be understood easily. (see p. 150).
John Ousterhout (A Philosophy of Software Design)
So can we arrive at a general principle as to why e-books have flopped in developed markets while audio and video streaming have triumphed? The technology commentator and best-selling author Edward Tenner argues that there are several reasons people are sometimes reluctant to abandon an old technology in favor of a new one. The first involves the potential vulnerabilities of the new thing. For instance, the fax machine is now a museum piece, but for a while people continued to prefer it over emailing scanned documents out of security concerns. Another potential reason involves aesthetics and nostalgia. Although dwarfed by music CDs and streaming, vinyl record sales continue to grow within the niche market of music aficionados. And despite improvements in automatic transmissions, certain car lovers prefer stick shifts. Perhaps the key to understanding format resilience is that technologies rise and fall as part of ecosystems, rarely on their own or by themselves. Those ecosystems need to evolve quickly, through open innovation, in order to appeal to new generations of users, transforming the landscape in the process. E-book platforms have remained fundamentally closed to external innovators, especially on the software side. As a result, the functionality of e-books remains limited. Moreover, research indicates that reading a physical book enables the reader to absorb information more efficiently than reading the same book on an e-reader or a tablet. “The implicit feel of where you are in a physical book turns out to be more important than we realized,” argues Abigail Sellen, a scientist and engineer at Microsoft Research Cambridge in England. “Only when you get an e-book do you start to miss it. I don’t think e-book manufacturers have thought enough about how you might visualize where you are in a book.
Mauro F. Guillén (2030: How Today's Biggest Trends Will Collide and Reshape the Future of Everything)
The Star workstation he shepherded to launch was an amazing accomplishment. Enclosed in a squat beige-colored box which, like its ancestral Alto, slid on casters under a desk, the machine came packed with features no one had ever seen before and few envisioned in a commercial office machine. These included a bitmapped screen (in “muted blue,” as Xerox promotional literature described it at the time), a mouse (“an electronic pointing device”), windowed displays, and “What You See Is What You Get” document preparation. The bundled functions included text processing, a drawing program, the first integrated “help” program, and electronic mail. By far the system’s most striking feature was its graphical user interface, the stylized display that communicated with the user via the bitmapped screen. This arrangement of icons and folders built around what the Star designers called the “desktop metaphor” is so familiar today that it seems to have been a part of computing forever. But its pioneering implementation on the Star included some capabilities that had yet to resurface on the market nearly two decades later. Text, formulas, and graphics could all be edited in the same document. (Compare today’s “integrated” software, in
Michael A. Hiltzik (Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age)
which a drawing imported into a text document can no longer be altered, but must be changed in the original graphics program and reintroduced into the text document.) Out of the box the Star was multilingual, offering typefaces and keyboard configurations that could be implemented in the blink of an eye for writing in Russian, French, Spanish, and Swedish through the use of “virtual keyboards”—graphic representations of keyboards that appeared on screen to show the user where to find the unique characters in whatever language he or she was using. In 1982 an internal library of 6,000 Japanese kanji characters was added; eventually Star users were able to draft documents in almost every modern language, from Arabic and Bengali to Amharic and Cambodian. As the term implied, the user’s view of the screen resembled the surface of a desk. Thumbnail-sized icons representing documents were lined up on one side of the screen and those representing peripheral devices—printers, file servers, e-mail boxes—on the other. The display image could be infinitely personalized to be tidy or cluttered, obsessively organized or hopelessly confused, alphabetized or random, as dictated by the user’s personality and taste. The icons themselves had been painstakingly drafted and redrafted so they would be instantaneously recognized by the user as document pages (with a distinctive dog-eared upper right corner), file folders, in and out baskets, a clock, and a wastebasket. Thanks to the system’s object-oriented software, the Star’s user could launch any application simply by clicking on the pertinent icon; the machine automatically “knew” that a text document required it to launch a text editor or a drawing to launch a graphics program. No system has ever equaled the consistency of the Star’s set of generic commands, in which “move,” “copy,” and “delete” performed similar operations across the entire spectrum of software applications. The Star was the epitome of PARC’s user-friendly machine. No secretary had to learn about programming or code to use the machine, any more than she had to understand the servomechanism driving the dancing golf ball to type on an IBM Selectric typewriter. Changing a font, or a margin, or the space between typed lines in most cases required a keystroke or two or a couple of intuitive mouse clicks. The user understood what was happening entirely from watching the icons or documents move or change on the screen. This was no accident: “When everything in a computer system is visible on the screen,” wrote David Smith, a designer of the Star interface, “the display becomes reality. Objects and actions can be understood purely in terms of their effects on the display.
Michael A. Hiltzik (Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age)
Even before you get to any serious software engineering, the applied part of computing involves a neverending struggle to make machines do what you need them to do—get a document to print, a website to load, a software package to install—in ways that are harrowing and not the slightest bit intellectually interesting. You learn, not about the nature of reality, but only about the terrible design decisions of other people. (“On being faceless”, blog post on March 6, 2024)
Scott Aaronson
Inadequate documentation creates a huge and unnecessary drag on software development.
John Ousterhout (A Philosophy of Software Design)
the process of writing comments, if done correctly, will actually improve a system’s design. Conversely, a good software design loses much of its value if it is poorly documented.
John Ousterhout (A Philosophy of Software Design)
In-code documentation plays a crucial role in software design. Comments are essential to help developers understand a system and work efficiently, but the role of comments goes beyond this. Documentation also plays an important role in abstraction; without comments, you can’t hide complexity.
John Ousterhout (A Philosophy of Software Design)
Systems are complex. A computer system is not just hardware, not just software, not even just people plus hardware plus software. The procedures, formal and informal, that have evolved with the system are part of the system; so is the current load on various components, and so is the attitude and experience of the users. Even among the commonly accepted “parts” of a system, clear lines of separation do not exist. Hardware merges with operating system, operating system merges with programming language, programming language merges with debugging tools, debugging tools merge with documentation, and documentation merges with training, and all of them mingle with the social climate in which the system is used.
Gerald M. Weinberg (The Psychology of Computer Programming)
Selecting names for variables, methods, and other entities is one of the most underrated aspects of software design. Good names are a form of documentation: they make code easier to understand. They reduce the need for other documentation and make it easier to detect errors. Conversely, poor name choices increase the complexity of code and create ambiguities and misunderstandings that can result in bugs.
John Ousterhout (A Philosophy of Software Design)
If multiple teams have direct access to a shared block of software code or some part of a database, they slow each other down. Whether they’re allowed to change the way the code works, change how the data are organized, or merely build something that uses the shared code or data, everybody is at risk if anybody makes a change. Managing that risk requires a lot of time spent in coordination. The solution is to encapsulate, that is, assign ownership of a given block of code or part of a database to one team. Anyone else who wants something from that walled-off area must make a well-documented service request via an API.
Colin Bryar (Working Backwards: Insights, Stories, and Secrets from Inside Amazon)
A computer program is a message from a man to a machine. The rigidly marshaled syntax and the scrupulous definitions all exist to make intention clear to the dumb engine. But a written program has another face, that which tells its story to the human user. For even the most private of programs, some such communication is necessary; memory will fail the author-user, and he will require refreshing on the details of his handiwork. How much more vital is the documentation for a public program, whose user is remote from the author in both time and space! For the program product, the other face to the user is fully as important as the face to the machine.
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
Even at a cost of $100,000, a purchased piece of software is costing only about as much as one programmer-year. And delivery is immediate! Immediate at least for products that really exist, products whose developer can refer the prospect to a happy user. Moreover, such products tend to be much better documented and somewhat better maintained than homegrown software. The development of the mass market is, I believe, the most profound long-run trend in software engineering. The cost of software has always been development cost, not replication cost. Sharing that cost among even a few users radically cuts the per-user cost. Another way of looking at it is that the use of n copies of a software system effectively multiplies the productivity of its developers by n. That is an enhancement of the productivity of the discipline and of the nation.
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
This really does attack essence. Because the build-on-package phenomenon does not today affect the average MIS programmer, it is not yet very visible to the software engineering discipline. Nevertheless, it will grow rapidly, because it does attack the essence of fashioning conceptual constructs. The shrink-wrapped package provides a big module of function, with an elaborate but proper interface, and its internal conceptual structure does not have to be designed at all. High-function software products such as Excel or 4th Dimension are big modules indeed, but they serve as known, documented, tested modules with which to build customized systems. Next-level application builders get richness of function, a shorter development time, a tested component, better documentation, and radically lower cost. The difficulty, of course, is that the shrink-wrapped software package is designed as a stand-alone entity whose functions and interfaces metaprogrammers cannot change. Moreover, and more seriously, shrink-wrapped package builders seemingly have little incentive to make their products suitable as modules in a larger system. I
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
A computer program is a message from a man to a machine. The rigidly marshaled syntax and the scrupulous definitions all exist to make intention clear to the dumb engine. But a written program has another face, that which tells its story to the human user. For even the most private of programs, some such communication is necessary; memory will fail the author-user, and he will require refreshing on the details of his handiwork. How much more vital is the documentation for a public program, whose user is remote from the author in both time and space! For the program product, the other face to the user is fully as important as the face to the machine. Most of us have quietly excoriated the remote and anonymous author of some skimpily documented program. And many of us have therefore tried to instill in new programmers an attitude about documentation that would inspire for a lifetime, overcoming sloth and schedule pressure. By and large we have failed. I think we have used wrong methods.
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
Why Have Formal Documents? First, writing the decisions down is essential. Only when one writes do the gaps appear and the inconsistencies protrude. The act of writing turns out to require hundreds of mini-decisions, and it is the existence of these that distinguishes clear, exact policies from fuzzy ones. Second, the documents will communicate the decisions to others. The manager will be continually amazed that policies he took for common knowledge are totally unknown by some member of his team.
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
Finally, a manager's documents give him a data base and checklist. By reviewing them periodically he sees where he is, and he sees what changes of emphasis or shifts in direction are needed.
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
unlike the building industry, the software development industry lacks a standard, consistent way to think about, describe and visually communicate software architecture
Simon Brown (Software Architecture for Developers: Volume 2 - Visualise, document and explore your software architecture)
colour coding to decipher. Can you work out what the colour coding means? Is it related to input vs output functions? Or perhaps it’s business vs infrastructure? Existing vs new? Buy vs build? Or maybe different people simply had different colour pens! Who knows.
Simon Brown (Software Architecture for Developers: Volume 2 - Visualise, document and explore your software architecture)
All joking aside, these diagrams do suffer from one or more of the following problems: • Notation (e.g. colour coding, shapes, etc) is not explained or is inconsistent. • The purpose and meaning of elements is ambiguous. • Relationships between elements are missing or ambiguous. • Generic terms such as “business logic” are used. • Technology choices (or options, if doing up front design) are omitted. • Levels of abstraction are mixed. • Too much or too little detail. • No context or a logical starting point.
Simon Brown (Software Architecture for Developers: Volume 2 - Visualise, document and explore your software architecture)
Any narrative should complement the diagram rather than explain it.
Simon Brown (Software Architecture for Developers: Volume 2 - Visualise, document and explore your software architecture)
Perhaps this is why The Boeing Company, one of the largest airplane design and engineering firms in the world, keeps a black book of lessons it has learned from design and engineering failures.[4] Boeing has kept this document since the company was formed, and it uses it to help modern designers learn from past attempts. Any organization that manages to do this not only increases its chances for successful projects, but also helps create an environment that can discuss and confront failure openly, instead of denying and hiding from it. It seems that software developers need to keep black books of their own.
Scott Berkun (Making Things Happen: Mastering Project Management)
In a 2006 article in Management Science, Alan MacCormack and Carliss Baldwin document an example of a product that successfully evolved from an integral to a modular architecture.21 When the software was put into the public domain as open source, the commercial firm that owned the copyright invested significant resources to make the transition. This was critical because the software could not have been maintained by distributed teams of volunteer developers if it had not been broken into smaller subsystems.
Geoffrey G. Parker (Platform Revolution: How Networked Markets Are Transforming the Economy and How to Make Them Work for You: How Networked Markets Are Transforming the Economy―and How to Make Them Work for You)
The idea that schedules can be shortened in order to reduce cost or speed up delivery is a very common misconception. You‘ll commonly see attempts to require overtime or sacrifice ―less important scheduled tasks (like unit-testing) as a way to reduce delivery dates or increase functionality while keeping the delivery dates as is. Avoid this scenario at all costs. Remind those requesting the changes of the following facts: - A rushed design schedule leads to poor design, bad documentation and probable Quality Assurance or User Acceptance problems. - A rushed coding or delivery schedule has a direct relationship to the number of bugs delivered to the users. - A rushed test schedule leads to poorly tested code and has a direct relationship to the number of testing issues encountered. - All of the above lead to Production issues which are much more expensive to fix.
Richard Monson-Haefel (97 Things Every Software Architect Should Know)
One assumption that is already being shattered is the idea that only routine, semi-skilled jobs like taxi driving, food delivery, or household chores are susceptible. Even traditional professions like medicine and law are proving to be susceptible to platform models. We’ve already mentioned Medicast, which applies an Uber-like model to finding a doctor. Several platform companies are providing online venues where legal services are available with comparable ease, speed, and convenience. Axiom Law has built a $200 million platform business by using a combination of data-mining software and freelance law talent to provide legal guidance and services to business clients; InCloudCounsel claims it can process basic legal documents such as licensing forms and nondisclosure agreements at a savings of up to 80 percent compared with a traditional law firm.11 In the decades to come, it seems likely that the platform model will be applied—or at least tested—in virtually every market for labor and professional services. How will this trend impact the service industries—not to mention the working lives of hundreds of millions of people? One likely result will be an even greater stratification of wealth, power, and prestige among service providers. Routine and standardized tasks will move to online platforms, where an army of relatively low-paid, self-employed professionals will be available to handle them. Meanwhile, the world’s great law firms, medical centers, consulting partnerships, and accounting practices will not vanish, but their relative size and importance will shrink as much of the work they used to do migrates to platforms that can provide comparable services at a fraction of the cost and with far greater convenience. A surviving handful of world-class experts will increasingly focus on a tiny subset of the most highly specialized and challenging assignments, which they can tackle from anywhere in the world using online tools. Thus, at the very highest level of professional expertise, winner-take-all markets are likely to emerge, with (say) two dozen internationally renowned attorneys competing for the splashiest and most lucrative cases anywhere on the globe.
Geoffrey G. Parker (Platform Revolution: How Networked Markets Are Transforming the Economy and How to Make Them Work for You: How Networked Markets Are Transforming the Economy―and How to Make Them Work for You)
Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
Duncan C. E. Winn (Cloud Foundry: The Cloud-Native Platform)
In recent years, Eric Ries famously adapted Lean to solve the wicked problem of software startups: what if we build something nobody wants?[ 41] He advocates use of a minimum viable product (“ MVP”) as the hub of a Build-Measure-Learn loop that allows for the least expensive experiment. By selling an early version of a product or feature, we can get feedback from customers, not just about how it’s designed, but about what the market actually wants. Lean helps us find the goal. Figure 1-7. The Lean Model. Agile is a similar mindset that arose in response to frustration with the waterfall model in software development. Agilistas argue that while Big Design Up Front may be required in the contexts of manufacturing and construction where it’s costly if not impossible to make changes during or after execution, it makes no sense for software. Since requirements often change and code can be edited, the Agile Manifesto endorses flexibility. Individuals and interactions over processes and tools. Working software over comprehensive documentation. Customer collaboration over contract negotiation. Responding to change over following a plan.
Peter Morville (Planning for Everything: The Design of Paths and Goals)
How Individual License Package of OLM Converter Pro Helpful in OLM to MBOX Conversion! Most of the companies, do not bother about user’s problems they only want to make money either fair or unfair means. It’s very difficult o finds a user-friendly company which performs their social responsibilities also. Gladwev is the only one IT company which cares about users and provides the high-grade product. Nowadays it in the limelight for its excellent innovation “OLM Converter Pro” the admirable migration tool can Convert Outlook for Mac to Apple Mail. Gladwev launched Individual License Package, which composes of many advantages. Let's look at various features of the Individual version of OLM Converter Pro: 1. Individual License Package can be very helpful to an individual or single user those have limited files for to convert Outlook Mac to Mac Mail. It can merge multiple files of Contact and calendar into .vcf and .ical respectively. 2. This software is capable to converts single user Email’s Accounts along with their attached documents, audio, video, pictures, drafts, etc. it ensures the complete and accurate OLM to MBOX Conversion. 3. An individual version of this software application can install on TWO Mac devices; it is compatible with all version of Mac system. This software provides high-performance speed as compared to other migration tools. 4. Gladwev offers this License Package for both Mac and Windows systems. The user can buy it according to their necessity of conversion. 5. Moreover, it is under the budget of the user. The user can purchase at only US$ 39. 6. Gladwev also provides easiness for locating this conversion software on the Web as highlighting the option, “Download Now.” 7. The best part of Individual License Package is that Gladwev has provided A to Z proper instruction or guidance that makes the user comfortable with this migration application. 8. This version of OLM Converter Pro satisfies all the conversion requirement and expectations of an individual. 9. Gladwev always readily available to provide day and night customer support services that resolve the problems of users and make Export Mail from Outlook for Mac to Apple Mail. 10. If the user wants more details about company or product. All the information and privacy policy have briefly explained in very simple and understandable language. 11. Gladwev also best in the matter of keeping privacy. It never reveals user’s private information to outsiders or any other.
Email Conversion
I asked him what he did. He said his name was John Lord and that he was in the software business. “What kind of software?” I asked. He said that his company’s goal was to make “lawyers obsolete” wherever possible by creating software applications that enable individuals to do more and more legal work without the aid of an attorney. Indeed, Neota Logic, his company, says that its goal is to massively improve access to advice and justice for “the 40+% of Americans who can’t afford an attorney when they need one”—in order to produce wills and basic legal documents and even to handle crucial life events such as home foreclosure, domestic abuse, or child protection. Neota Logic is part of a new strain of software called “expert systems” that aims to identify a large chunk of business that clients need, and that lawyers charge for, but that actually can be done by software: think TurboTax for the legal profession. The company’s website quoted one commentator complaining that Neota Logic’s technology cannot “read between the lines … [or] hold hands and wipe away tears.” To which Neota Logic responded: “You will surely see a press release when we can.” Lord later explained to me that “I have always had a special respect for trial lawyers and hope it will be a long time before algorithms replace them and juries.” Alas, he added, that is “not beyond the realm of possibility of course, but not yet Neota’s mission.” Suddenly I was glad my daughters were not planning to be lawyers.
Thomas L. Friedman (Thank You for Being Late: An Optimist's Guide to Thriving in the Age of Accelerations)
Noah Kagan went to UC Berkeley and graduated with degrees in Business and Economics. He worked at Intel for a short stint, and then found himself at Facebook, as employee #30. You’d think this is where the story would get really good: Noah went on to become the head of product and is now worth 10 billion dollars! That’s not what happened. Instead, he was fired after eight months. Noah has been very public about this, and it’s well documented. He even wrote about why it happened, which mostly comes down to the fact that he was young and inexperienced. Here’s where the real story gets interesting. After being fired, Noah spent ten months at Mint, another successful startup. For Noah, that was a side-hustle. After Mint, he founded KickFlip, a payment provider for social games. He also started an ad company called Gambit. Both of those companies fluttered around for a while and then fizzled out. Next came AppSumo, a daily deals website for tech software. AppSumo has done very well, and it’s still in business as of this writing, but Noah eventually turned his attention to another opportunity. While building up his other businesses, he had become an expert at email marketing, and realized there was a huge need for effective marketing tools. So he created SumoMe, a software company that helps people and companies build their email lists. SumoMe has exploded since its launch. Over 200,000 sites now use it in some capacity, and that number is growing every day. It’s easy to imagine SumoMe becoming a $100 million dollar company in a matter of years, and it’s completely bootstrapped. The company has taken zero funding from venture capitalists. That means Noah can run the business exactly how he wants. I’ve known Noah for almost ten years. I met him when my first company was getting off the ground. Several months ago, we were emailing back and forth about promoting my first book. He ended one of the emails with, “Keep the hustle strong.” I smiled when I read that. Noah is, and always will be, a hustler. He’s been hustling for his entire career―for over a decade. And he deserves everything that’s coming his way. Hustle never comes without defeat. It never comes without detours and side-projects. But the best hustlers all know this simple truth: All that matters is that you keep on hustling.
Jesse Tevelow (Hustle: The Life Changing Effects of Constant Motion)
The Linux world behaves in many respects like a free market or an ecology, a collection of selfish agents attempting to maximize utility which in the process produces a self-correcting spontaneous order more elaborate and efficient than any amount of central planning could have achieved. Here, then, is the place to seek the “principle of understanding”. The “utility function” Linux hackers are maximizing is not classically economic, but is the intangible of their own ego satisfaction and reputation among other hackers. (One may call their motivation “altruistic”, but this ignores the fact that altruism is itself a form of ego satisfaction for the altruist). Voluntary cultures that work this way are not actually uncommon; one other in which I have long participated is science fiction fandom, which unlike hackerdom has long explicitly recognized “egoboo” (ego-boosting, or the enhancement of one’s reputation among other fans) as the basic drive behind volunteer activity. Linus, by successfully positioning himself as the gatekeeper of a project in which the development is mostly done by others, and nurturing interest in the project until it became self-sustaining, has shown an acute grasp of Kropotkin’s “principle of shared understanding”. This quasi-economic view of the Linux world enables us to see how that understanding is applied. We may view Linus’s method as a way to create an efficient market in “egoboo” — to connect the selfishness of individual hackers as firmly as possible to difficult ends that can only be achieved by sustained cooperation. With the fetchmail project I have shown (albeit on a smaller scale) that his methods can be duplicated with good results. Perhaps I have even done it a bit more consciously and systematically than he. Many people (especially those who politically distrust free markets) would expect a culture of self-directed egoists to be fragmented, territorial, wasteful, secretive, and hostile. But this expectation is clearly falsified by (to give just one example) the stunning variety, quality, and depth of Linux documentation. It is a hallowed given that programmers hate documenting; how is it, then, that Linux hackers generate so much documentation? Evidently Linux’s free market in egoboo works better to produce virtuous, other-directed behavior than the massively-funded documentation shops of commercial software producers. Both the fetchmail and Linux kernel projects show that by properly rewarding the egos of many other hackers, a strong developer/coordinator can use the Internet to capture the benefits of having lots of co-developers without having a project collapse into a chaotic mess. So to Brooks’s Law I counter-propose the following: Provided the development coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.
Eric S. Raymond (The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary)
The Lockean logic of custom suggests strongly that open-source hackers observe the customs they do in order to defend some kind of expected return from their effort. The return must be more significant than the effort of homesteading projects, the cost of maintaining version histories that document “chain of title”, and the time cost of making public notifications and waiting before taking adverse possession of an orphaned project. Furthermore, the “yield” from open source must be something more than simply the use of the software, something else that would be compromised or diluted by forking. If use were the only issue, there would be no taboo against forking, and open-source ownership would not resemble land tenure at all. In fact, this alternate world (where use is the only yield, and forking is unproblematic) is the one implied by existing open-source licenses. We can eliminate some candidate kinds of yield right away. Because you can’t coerce effectively over a network connection, seeking power is right out. Likewise, the open-source culture doesn’t have anything much resembling money or an internal scarcity economy, so hackers cannot be pursuing anything very closely analogous to material wealth (e.g. the accumulation of scarcity tokens). There is one way that open-source activity can help people become wealthier, however — a way that provides a valuable clue to what actually motivates it. Occasionally, the reputation one gains in the hacker culture can spill over into the real world in economically significant ways. It can get you a better job offer, or a consulting contract, or a book deal. This kind of side effect, however, is at best rare and marginal for most hackers; far too much so to make it convincing as a sole explanation, even if we ignore the repeated protestations by hackers that they’re doing what they do not for money but out of idealism or love. However, the way such economic side effects are mediated is worth examination.
Eric S. Raymond (The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary)
The success of these projects and others like them is thanks to developers. The millions of programmers across the world who use, develop, improve, document, and rely upon open source are the main reason it’s relevant, and the main reason it continues to grow. In return for this support, open source has set those developers free from traditional procurement. Forever. Financial constraints that once served as a barrier to entry in software not only throttled the rate and pace of innovation in the industry, they ensured that organizational developers were a subservient class at best, a cost center at worst. With the rise of open source, however, developers could for the first time assemble an infrastructure from the same pieces that industry titans like Google used to build their businesses  —  only at no cost, without seeking permission from anyone. For the first time, developers could route around traditional procurement with ease. With usage thus effectively decoupled from commercial licensing, patterns of technology adoption began to shift.
Stephen O’Grady (The New Kingmakers: How Developers Conquered the World)