07 February 2006

OOP: Abstraction (Definitions)

"A view of a problem that extracts the essential information relevant to a particular purpose and ignores the remainder of the information." (IEEE, 1983)

"[A] simplified description, or specification, of a system that emphasizes some of the system's details or properties while suppressing others. A good abstraction is one that emphasizes details that are significant to the reader or user and suppress details that are, at least for the moment, immaterial or diversionary." (M Shaw, Abstraction Techniques in Modern Programming Languages", IEEE Software Vol. 1 (4), 1984)

"[abstraction:] (1) A view of an object that focuses on the information relevant to a particular purpose and ignores the remainder of the information.(2) The process of formulating a view as in (1)."(IEEE," IEEE Standard Glossary of Software Engineering Terminology", 1990)  

"[data abstraction:] (1) The process of extracting the essential characteristics of data by defining data types and their associated functional characteristics and disregardng representation details. (2) The result of the process in (1)." (IEEE," IEEE Standard Glossary of Software Engineering Terminology", 1990) 

"Abstraction is a process whereby we identify the important aspects of a phenomenon and ignore its details." (Ghezzi et al, Fundamentals of Software Engineering, 1991)

"Abstraction is generally defined as 'the process of formulating generalised concepts by extracting common qualities from specific examples.'" (Blair et al, "Object-Oriented Languages, Systems and Applications", 1991)

"An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of object and thus provide crisply defined conceptual boundaries, relative to the perspective of the viewer." (Grady Booch, Object-Oriented Design With Applications, 1991)

"The act of concentrating the essential or general qualities of similar things. Also, the resulting essential characteristics of a thing." (Craig Larman, "Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process", 1997)

"Abstraction is the purposeful suppression, or hiding, of some details of a process or artifact, in order to bring out more clearly other aspects, details, or structure." (Timothy Budd, "An Introduction to Object-Oriented Programming" 3rd Ed., 2002)

"Abstraction can have several meanings depending on the context. In software, it often means combining a set of small operations or data items and giving them a name. For example, control abstraction takes a group of operations, combines them into a procedure, and gives the procedure a name. As another example, a class in object-oriented programming is an abstraction of both data and control. More generally, an abstraction is a representation that captures the essential character of an entity, but hides the specific details. Often we will talk about a named abstraction without concern for the actual details, which may not be determined." (Beverly A Sanders, "Patterns for Parallel Programming", 2004)

"Abstraction, as a process, denotes the extracting of the essential details about an item, or a group of items, while ignoring the inessential details. Abstraction, as an entity, denotes a model, a view, or some other focused representation for an actual item." (Edward V Berard, "Abstraction, Encapsulation, and Information Hiding", cca. 2006)

"The idea of minimizing the complexity of something by hiding the details and just providing the relevant information. It’s about providing a high-level specification rather than going into lots of detail about how something works. In the cloud, for instance, in an IaaS delivery model, the infrastructure is abstracted from the user." (Marcia Kaufman et al, "Big Data For Dummies", 2013)

"Minimizing the complexity of something by hiding the details and just providing the relevant information. It’s about providing a high-level specification rather than going into a lot of detail about how something works. In the cloud, for instance, in an IaaS delivery model, the infrastructure is abstracted from the user." (Judith S Hurwitz, "Cognitive Computing and Big Data Analytics", 2015)

"A model of a complex system that includes only the details essential to the viewer" (Nell Dale & John Lewis, "Computer Science Illuminated, 6th Ed.", 2015)

"The capability to suppress unnecessary details so the important, inherent properties can be examined and reviewed." (Adam Gordon, "Official (ISC)2 Guide to the CISSP CBK" 4th Ed., 2015)

"A model of a system that includes only the details essential to the perspective of the viewer of the system" (Nell Dale et al, "Object-Oriented Data Structures Using Java" 4th Ed., 2016)

"Way of expressing an idea in a specific context while at the same time suppressing details irrelevant in that context." (Karl Beecher, "Computational Thinking - A beginner's guide to problem-solving and programming", 2017)

"The act of representing essential features while hiding the details to reduce complexity." (O Sami Saydjari, "Engineering Trustworthy Systems: Get Cybersecurity Design Right the First Time", 2018)

"The deliberate reduction in dependency between a component and other components it works with is a way to make the component generally more useful." (Judith Hurwitz et al, "Service Oriented Architecture For Dummies" 2nd Ed., 2009)

03 February 2006

OOP: Visibility (Definitions)

[COM Visibility:] "Indicates whether a .NET type or member is accessible from COM. Anything public in .NET is visible to COM unless it’s marked with the ComVisibleAttribute custom attribute with its argument set to false, or its containing assembly is marked with the attribute with its argument set to false." (Adam Nathan, ".NET and COM: The Complete Interoperability Guide", 2002)

"The level of access granted to other classes or variables. Indicates whether something can be 'seen' from a location in a program." (Marcus Green & Bill Brogden, "Java 2™ Programmer Exam Cram™ 2 (Exam CX-310-035)", 2003)

"The ability to see or have reference to an object." (Craig Larman, "Applying UML and Patterns", 2004)

"Ability to enforce fine-grained access to and operations on data at the record, attribute, and attribute-value levels based on user entitlements and data usage and access policies." (Alex Berson & Lawrence Dubov, "Master Data Management and Data Governance", 2010)

"An attribute of operation in object-oriented design that tells whether the operation can be 'seen' by any program, or whether it is 'private' - only accessible within the model involved." (David C Hay, "Data Model Patterns: A Metadata Map", 2010)

"The scope in which a declared type or type member is visible to other types and members." (Dean Wampler, "Functional Programming for Java Developers", 2011)

02 February 2006

OOP: Encapsulation (Definitions)

"It is a simple, yet reasonable effective, system-building tool. It allows suppliers to present cleanly specified interfaces around the services they provide. A consumer has full visibility to the procedures offered by an object, and no visibility to its data. From a consumer's point of view, and object is a seamless capsule that offers a number of services, with no visibility as to how these services are implemented [...] technical term for this is encapsulation." (Brad J Cox, "Object Oriented Programming: An Evolutionary Approach", 1986)

A software development technique that consists of isolating a system function or a set of data and operations on those data within a module and providing precise specifications for the module. (IEEE," IEEE Standard Glossary of Software Engineering Terminology", 1990)

"The concept of encapsulation as used in an object-oriented context is not essentially different from its dictionary definition. It still refers to building a capsule, in the case a conceptual barrier, around some collection of things." (Rebecca Wirfs-Brock et al, "Designing Object-Oriented Software", 1990]

"Encapsulation or equivalently information hiding refers to the practice of including within an object everything it needs, and furthermore doing this in such a way that no other object need ever be aware of this internal structure." (Ian Graham, "Object-Oriented Methods", 1991]

"Data hiding is sometimes called encapsulation because the data and its code are put together in a package or 'capsule.'" (David N Smith, "Concepts of Object-Oriented Programming", 1991)

"Encapsulation is used as a generic term for techniques which realize data abstraction. Encapsulation therefore implies the provision of mechanisms to support both modularity and information hiding. There is therefore a one to one correspondence in this case between the technique of encapsulation and the principle of data abstraction." (Gordon Blair et al, "Object-Oriented Languages, Systems and Applications", 1991)

"Encapsulation (also information hiding) consists of separating the external aspects of an object which are accessible to other objects, from the internal implementation details of the object, which are hidden from other objects." (James Rumbaugh et al, "Object-Oriented Modeling and Design", 1991)

"[...] encapsulation - also known as information hiding - prevents clients from seeing its inside view, were the behavior of the abstraction is implemented." (Grady Booch, "Object-Oriented Design With Applications", 1991)

"We say that the changeable, hidden information becomes the secret of the module; also, according to a widely used jargon, we say that such information is encapsulated within the implementation." (Carlo Ghezzi et al, "Fundamentals of Software Engineering", 1991]

"As a process, encapsulation means the act of enclosing one or more items within a (physical or logical) container. Encapsulation, as an entity, refers to a package or an enclosure that holds (contains, encloses) one or more items. It is extremely important to note that nothing is said about 'the walls of the enclosure'. Specifically, they may be 'transparent', 'translucent', or even 'opaque'." Compare with information hiding, which implies invisibility." (Bill Pribyl & Steven Feuerstein, "Learning Oracle PL/SQL", 2001)

"Encasing information and behavior within an object so that its structure and implementation are hidden to other objects that interact with it." (Marcus Green & Bill Brogden, "Java 2 Programmer Exam Cram 2 (Exam CX-310-035)", 2003)

"A mechanism used to hide the data, internal structure, and implementation details of some element, such as an object or subsystem. All interaction with an object is through a public interface of operations." (Craig Larman, "Applying UML and Patterns", 2004)

"An object-oriented technique that may hide, or abstract, the inner workings of an object and expose only the relevant characteristics and operations on the object to other objects." (Bob Bryla, "Oracle Database Foundations", 2004)

"Restricting the visibility of members of a type so they are not visible to clients of the type when they shouldn’t be. This is a way of exposing only the abstraction supported by the type, while hiding implementation details, which prevents unwanted access to them from clients and keeps the abstraction exposed by the type consistent and minimal." (Dean Wampler & Alex Payne, "Programming Scala", 2009)

"In object-oriented design, the principle that it should be possible to refer to an object with behavior and not know anything about how that behavior is implemented." (David C Hay, "Data Model Patterns: A Metadata Map", 2010)

"Detail hiding. A class hides its internal details so the rest of the program doesn't need to understand how they work, just how to use them." (Rod Stephens, "Stephens' Visual Basic® Programming 24-Hour Trainer", 2011)

"(1) A language mechanism for restricting access to some of an object’s components. (2) A language construct that facilitates the bundling of data with methods (or other functions) operating on that data." (Craig S Mullins, "Database Administration: The Complete Guide to DBA Practices and Procedures", 2012)

"The veil of abstraction separating the interface from the implementation (whether enforced or not), which mandates that all access to an object’s state be through methods alone." (Jon Orwant et al, "Programming Perl" 4th Ed., 2012)

"A language feature that enforces information hiding; bundling data and actions so that the logical properties of data and actions are separated from the implementation details" (Nell Dale & John Lewis, "Computer Science Illuminated" 6th Ed., 2015)

"The bundling of data with the procedures that operate on that data, such that data may only be changed by those procedures - a technique for reducing program complexity." (O Sami Saydjari, "Engineering Trustworthy Systems", 2018)

"The object-oriented programming technique of limiting the exposure of variables and methods to simplify the API of a class or package. Using the private and protected keywords, a programmer can limit the exposure of internal ('black box') parts of a class. Encapsulation reduces bugs and promotes reusability and modularity of classes. This technique is also known as data hiding." (Daniel Leuck et al, "Learning Java" 5th Ed., 2020)

01 February 2006

OOP: Inheritance (Definitions)

"Creating a new type that can extend the characteristics of an existing type." (Jesse Liberty, "Sams Teach Yourself C++ in 24 Hours" 3rd Ed., 2001)

"The ability of one data object to gain characteristics from another object." (Greg Perry, "Sams Teach Yourself Beginning Programming in 24 Hours" 2nd Ed., 2001)

"The process of passing methods and instance variables from a class, starting with the root object down to subclasses." (Stephen G Kochan, "Programming in Objective-C", 2003)

"A feature of object-oriented programming languages by which classes may be specialized from more general superclasses. Attributes and method definitions from superclasses are automatically acquired by the subclass." (Craig Larman, "Applying UML and Patterns", 2004)

"Acquiring the properties of the parent, or base object, in a new object." (Bob Bryla, "Oracle Database Foundations", 2004)

"The ability of a class to inherit features from another class via the < operator. See multiple inheritance, single inheritance." (Michael Fitzgerald, "Learning Ruby", 2007)

"A strong relationship between one class or trait and another class or trait. The inheriting (derived) class or trait incorporates the members of the parent class or trait, as if they were defined within the derivative. The derivative may override inherited members (in most cases). Instances of a derivative are substitutable for instances of the parent." (Dean Wampler & Alex Payne, "Programming Scala", 2009)

"A general to specific relationship between classes in an object-oriented environment." (Jan L Harrington, "SQL Clearly Explained 3rd Ed. ", 2010)

"A strong coupling between one class or interface and another. The inheriting (derived) class or interface incorporates the members of the parent class or interface, as if they were defined within the derivative. Hence, inheritance is a form of reuse. The derivative may override inherited members (unless declared final). For a properly defined derived type, instances of it are substitutable for instances of the parent, satisfying the Liskov Substitution Principle." (Dean Wampler, "Functional Programming for Java Developers", 2011)

"The process of passing methods and instance variables from a class, starting with the root object, down to subclasses." (Stephen G Kochan, "Programming in Objective-C" 4th Ed., 2011)

"What you get from your ancestors, genetically or otherwise. If you happen to be a class, your ancestors are called base classes and your descendants are called derived classes. See single inheritance and multiple inheritance." (Jon Orwant et al, "Programming Perl" 4th Ed., 2012)

"Building a class from the basic functionality of an existing class and then adding new functions." (Matt Telles, "Beginning Programming", 2014)

"A mechanism by which one class acquires the properties - data fields and methods - of another class" (Nell Dale & John Lewis, "Computer Science Illuminated" 6th Ed., 2015)

"An important feature of object-oriented programming that involves defining a new object by changing or refining the behavior of an existing object. Through inheritance, an object implicitly contains all of the non-private variables and methods of its superclass. Java supports single inheritance of classes and multiple inheritance of interfaces." (Daniel Leuck et al, "Learning Java" 5th Ed., 2020)

18 January 2006

🧿Steve Jobs - Collected Quotes

"Computers are the first thing to come along since books that will sit there and interact with you endlessly, without judgment." (Steve Jobs, Playboy, 1985)

"You can’t just ask customers what they want and then try to give that to them. By the time you get it built, they’ll want something new." (Steve Jobs, 1989)

"What a computer is to me is the most remarkable tool that we have ever come up with. It’s the equivalent of a bicycle for our minds." (Steve Jobs, "Memory and Imagination: New Pathways to the Library of Congress", 1991)

"Technology is nothing. What’s important is that you have a faith in people, that they’re basically good and smart, and if you give them tools, they’ll do wonderful things with them." (Steve Jobs, Rolling Stone, 1994)

"You can’t really predict exactly what will happen, but you can feel the direction that we’re going. And that’s about as close as you can get. Then you just stand back and get out of the way, and these things take on a life of their own." (Steve Jobs, Rolling Stone, 1994)

"For me, the most exciting thing in the software area is the Internet, and part of the reason for that is no one owns it. It’s a free for all, it’s much like the early days of the personal computer." (Steve Jobs, Wall $treet Week, 1995)

"Creativity is just connecting things. When you ask creative people how they did something, they feel a little guilty because they didn’t really do it, they just saw something. It seemed obvious to them after a while. That’s because they were able to connect experiences they’ve had and synthesize new things." (Steve Jobs, 1996)

"The Web is not going to change the world, certainly not in the next 10 years. It’s going to augment the world." (Steve Jobs, Wired, 1996)

"It’s really hard to design products by focus groups. A lot of times, people don’t know what they want until you show it to them." (Steve Jobs, BusinessWeek, 1998)

"That’s been one of my mantras - focus and simplicity. Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it’s worth it in the end because once you get there, you can move mountains." (Steve Jobs, Business Week, 1998)

"The problem with the Internet startup craze isn’t that too many people are starting companies; it’s that too many people aren’t sticking with it. That’s somewhat understandable, because there are many moments that are filled with despair and agony, when you have to fire people and cancel things and deal with very difficult situations. That’s when you find out who you are and what your values are." (Steve Jobs, Fortune, 2000)

"Process makes you more efficient." (Steve Jobs, BusinessWeek, 2004)

"To turn really interesting ideas and fledgling technologies into a company that can continue to innovate for years, it requires a lot of disciplines."  (Steve Jobs, BusinessWeek, 2004)

"You need a very product-oriented culture, even in a technology company. Lots of companies have tons of great engineers and smart people. But ultimately, there needs to be some gravitational force that pulls it all together. Otherwise, you can get great pieces of technology all floating around the universe." (Steve Jobs, Newsweek, 2004)

"Things don’t have to change the world to be important." (Steve Jobs, Wired, 2006)

"Sometimes when you innovate, you make mistakes. It is best to admit them quickly, and get on with improving your other innovations." (Steve Jobs)

"The broader one’s understanding of the human experience, the better design we will have." (Steve Jobs)

16 January 2006

OOP: Function (Definitions)

"(1) A defined objective or characteristic action of a system or component. For example, a system may have inventory control as its primary function. (2) A software module that performs a specific action, is invoked by the appearance of its name in an expression, may receive input values, and returns a single value." (IEEE," IEEE Standard Glossary of Software Engineering Terminology", 1990) 

"A set of instructions that operates as a single logical unit, can be called by name, accepts input parameters, and returns information. In programming languages such as C, a function is a named subroutine of a program that encapsulates some logic. The function can be called by name, using parameters to pass data into the function and retrieve data produced by the function." (Microsoft Corporation, "SQL Server 7.0 System Administration Training Kit", 1999)

"A block of code that performs a service, such as adding two numbers or printing to the screen." (Jesse Liberty, "Sams Teach Yourself C++ in 24 Hours" 3rd Ed., 2001)

"A program that returns a value to the program or environment from which it is called." (Bill Pribyl & Steven Feuerstein, "Learning Oracle PL/SQL", 2001)

"A routine that processes data inside a program." (Greg Perry, "Sams Teach Yourself Beginning Programming in 24 Hours" 2nd Ed., 2001)

"A block of statements identified by a name that can accept one or more arguments passed to it by value and can optionally return a value. Functions can be local (static) to the file in which they're defined or global, in which case they can be called from functions or methods defined in other files." (Stephen G Kochan, "Programming in Objective-C", 2003)

"A named set of predefined programming language commands that performs a specific task given zero, one, or more arguments and returns a value." (Bob Bryla, "Oracle Database Foundations", 2004)

"A piece of code that operates as a single logical unit. A function is called by name, accepts optional input parameters, and returns a status and optional output parameters. Many programming languages support functions, including C, Visual Basic, and Transact-SQL. Transact-SQL supplies built-in functions, which cannot be modified, and supports user-defined functions, which can be created and modified by users." (Jim Joseph, "Microsoft SQL Server 2008 Reporting Services Unleashed", 2009)

"A block of statements identified by a name that can accept one or more arguments passed to it by value and can optionally return a value. Functions can be either local (static) to the file in which they’re defined or global, in which case they can be called from functions or methods defined in other files." (Stephen G Kochan, "Programming in Objective-C" 4th Ed., 2011)

"A packaged set of code that other pieces of code can invoke and that returns a result value." (Rod Stephens, "Stephens' Visual Basic Programming 24-Hour Trainer", 2011)

"A single block of code that accomplishes a single task and can be reused." (Matt Telles, "Beginning Programming", 2014)

13 January 2006

OOP: Aggregation (Definitions)

"A form of Unified Modeling Language (UML) association that denotes the grouping of multiple instances of one class into a composite entity." (Sharon Allen & Evan Terry, "Beginning Relational Data Modeling" 2nd Ed., 2005)

"Aggregation is the process of compiling information on an object, thereby abstracting a higher-level object." (S. Sumathi & S. Esakkirajan, "Fundamentals of Relational Database Management Systems", 2007)

"A special type of abstraction relationship that defines a higher-level entity that is an aggregate of several lower-level entities; a 'part-of' type relationship. For example, a bicycle entity would be an aggregate of wheel, handlebar, and seat entities." (Toby J Teorey, ", Database Modeling and Design" 4th Ed., 2010)

"In an object-oriented environment, a class that manages objects created from another class." (Jan L Harrington, "SQL Clearly Explained" 3rd Ed., 2010)



10 January 2006

OOP: Subclass (Definitions)

"A class that extends another class directly or indirectly. In Java, all classes (except Object itself) are subclasses of the class Object." (Marcus Green & Bill Brogden, "Java 2™ Programmer Exam Cram™ 2 (Exam CX-310-035)", 2003)

"Also known as a child class, a subclass inherits the methods and instance variables from its parent or superclass." (Stephen G Kochan, "Programming in Objective-C", 2003)

"A specialization of another class (the superclass). A subclass inherits the attributes and methods of the superclass." (Craig Larman, "Applying UML and Patterns", 2004)

"A class that is derived from a parent or superclass. Compare with superclass." (Michael Fitzgerald, "Learning Ruby", 2007)

"A class at the 'specific' end of an inheritance relationship; a child class." (Jan L Harrington, "SQL Clearly Explained" 3rd Ed., 2010)

"A class that is derived from a parent class. Also called a sub class or derived class." (Rod Stephens, "Start Here!™ Fundamentals of Microsoft® .NET Programming", 2011)

"The act of making a subclass from a parent class." (Rod Stephens, "Start Here!™ Fundamentals of Microsoft® .NET Programming", 2011)

"A class that defines some of its methods in terms of a more generic class, called a base class. Note that classes aren’t classified exclusively into base classes or derived classes: a class can function as both a derived class and a base class simultaneously, which is kind of classy." (Jon Orwant et al, "Programming Perl" 4th Ed., 2012)

"A class derived from a parent class. The child class inherits properties, methods, and events from the parent class." (Rod Stephens, "Beginning Software Engineering", 2015)

"If class A inherits from class B, then we say that 'A is a subclass of B'" (Nell Dale et al, "Object-Oriented Data Structures Using Java" 4th Ed., 2016)

"A class that extends another. The subclass inherits the public and protected methods and variables of its superclass. See also extends." (Daniel Leuck et al, "Learning Java" 5th Ed., 2020)

07 January 2006

OOP: Interface (Definitions)

"A contract that specifies the members a class or struct can implement to receive generic services for that type." (Jesse Liberty, "Programming C#" 2nd Ed., 2002)

"In Java, an interface is similar to a class definition, except that no detailed implementation of methods is provided. A class that implements an interface must provide the code to implement the methods. You can think of an interface as defining a contract between the calling method and the class that implements the interface." (Marcus Green & Bill Brogden, "Java 2™ Programmer Exam Cram™ 2 (Exam CX-310-035)", 2003)

"A set of signatures of public operations." (Craig Larman, "Applying UML and Patterns", 2004)

"A defined set of properties, methods, and collections that form a logical grouping of behaviors and data. Classes are defined by the interfaces that they implement. An interface can be implemented by many different classes." (Jim Joseph et al, "Microsoft SQL Server 2008 Reporting Services Unleashed", 2009)

"The specification of the means by which services can be invoked and data can be manipulated across an encapsulation boundary (e.g., class)." (Bruce P Douglass, "Real-Time Agility", 2009)

"The externally visible definition of the operations permitted on an application component." (David Lyle & John G Schmidt, "Lean Integration", 2010)

"Defines a set of members that a class can provide." (Rod Stephens, "Start Here! Fundamentals of Microsoft .NET Programming", 2011)

"Defines public properties, methods, and events that a class must provide to satisfy the interface." (Rod Stephens, "Stephens' Visual Basic Programming 24-Hour Trainer", 2011)

"A defined set of properties, methods, and collections that form a logical grouping of behaviors and data." (Microsoft, "SQL Server 2012 Glossary", 2012)

"The services a piece of code promises to provide forever, in contrast to its implementation, which it should feel free to change whenever it likes." (Jon Orwant et al, "Programming Perl" 4th Ed., 2012)

"A keyword used to declare an interface." (Daniel Leuck et al, "Learning Java" 5th Ed., 2020)

04 January 2006

🧿Sriram Narayan - Collected Quotes

"A dashboard is like the executive summary of a report. We read executive summaries and skip the body of the report if the summary is more or less in line with our expectations. Trouble is, measurement is never exhaustive. It is only when we dive in that we realize what areas may have been missed." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"A project plan is a prediction. It predicts that a team of N people will complete X amount of work by Y date." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"A software team can get severely constrained when a velocity target is imposed on it. Velocity works well as a measurement, not as a target. Targets limit choice of actions. A team may find itself unable to address technical debt if it is constrained by velocity targets. At a certain threshold of constraints, team members lose the sense of empowerment (autonomy)." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"A value stream is a series of activities required to deliver an outcome. The software development value stream may be described as: validate business case, analyze, design, build, test, deploy, learn from usage analytics and other feedback - rinse and repeat." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Although essential, governance is an activity, not an outcome. This makes it risky to grant autonomy to a pure governance team. Instead, it is better to constitute each area of governance as a community of practice consisting of practitioners from various capability teams." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"[…] an overall green status indicator doesn’t mean anything most of the time. All it says is that the things under measurement seem okay. But there always will be many more things not under measurement. To celebrate green indicators is to ignore the unknowns. […] The tendency to roll up metrics into dashboards promotes ignorance of the real situation on the ground. We forget that we only see what is under measurement. We only act when something is not green." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Business strategy comes first. IT can be aligned with business provided that business strategy is commonly understood and accepted. Sometimes, this first step itself is a hurdle. Business strategy may exist in the heads of the execs but it may not be articulated or shared beyond vision, mission, and a plan for the year." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"[…] culture cannot be changed directly. It changes as a result of changes to organizational beliefs and rituals." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Development is a design process. Design processes are generally evaluated by the value they deliver rather than a conformance to plan. Therefore, it makes sense to move away from plan-driven projects and toward value-driven projects. […] The realization that the source code is part of the design, not the product, fundamentally rewires our understanding of software." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"DevOps recognizes the importance of culture. The acronym CAMS (culture, automation, measurement, and sharing) is used to encapsulate its key themes. Culture is acknowledged as all important in making development and IT operations work together effectively. But what is culture in this context? It is not so much about an informal dress code, flexible hours, or a free in-house cafeteria as it is about how decisions are taken, norms of behavior, protocols of communication, and the ways of navigating hierarchy and bureaucracy to get things done." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Feedback is what makes it iterative; otherwise, it is just mini-waterfall. Merely splitting use cases into stories does not make for iterative development if we wait until all stories are developed before we seek feedback. The point of splitting is to get feedback faster so that it can be incorporated into ongoing development. However, seeking stakeholder/user feedback for small batches of functionality (stories) is often not feasible with formal stage-gate processes. They were conceived with linear flows of large batches in mind." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Good user stories are expected to be independent, negotiable, valuable, estimable, small, and testable (mnemonic INVEST). Good tasks are expected to be specific, measurable, achievable, relevant, and time-boxed (mnemonic SMART). The key difference is that tasks need not be independent or valuable by themselves." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Grouping a bunch of related fine-grained metrics into an aggregate metric works better than handling them individually. This is commonly achieved by defining an aggregate metric as a weighted sum of contributory metrics. It is the sort of technique used in credit scoring, insurance risk scoring, or the points system for immigration. Thresholds are then set on the aggregate score to define different categories of eligibility." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"In order to control where a team devotes its energies, all you need to do is to impose a bunch of targets and track progress at regular intervals. For greater control, increase the range of targets and track more frequently. This is called micromanagement and is universally detested by teams. Doing so increases reporting overhead but rarely improves team performance." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"In order to cultivate a culture of accountability, first it is essential to assign it clearly. People ought to clearly know what they are accountable for before they can be held to it. This goes beyond assigning key responsibility areas (KRAs). To be accountable for an outcome, we need authority for making decisions, not just responsibility for execution. It is tempting to refrain from the tricky exercise of explicitly assigning accountability. Executives often hope that their reports will figure it out. Unfortunately, this is easier said than done." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"In the context of an organization, to have autonomy is to be empowered, not just feel empowered. […] But it does not mean being a lone wolf or being siloed or cut off from the rest of the organization." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Language influences thought, tools influence action. Therefore, it matters a lot how we choose our tools. We shape our tooling and access landscape, and thereafter they shape the contours of our collaboration. When we choose a lot of different specialty tools, they in turn nudge us into different specialty groups." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Many problems stem from a premature attempt at scaling Agile within the organization. The nature of the transformation is such that it is unrealistic to plan upfront for an 18-month organization-wide change program to go from status quo to continuous delivery. People try nevertheless, and when the outcomes don’t materialize, they say Agile doesn’t work." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Rolling up fine-grained metrics to create high-level dashboards puts pressure on teams to keep the fine-grained metrics green even when it might not be the best use of their time." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Scaling supervision using metrics is one thing; scaling results is quite another. The former doesn’t automatically ensure the latter." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Self-organizing teams need autonomy. […] Autonomy allows us to act on the opportunity that purpose provides. Mastery then lets us service the opportunity with a degree of excellence. Targets distort purpose, limit autonomy, and disregard mastery." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015) 

"Some hierarchy is essential for the effective functioning of an organization. Eliminating hierarchy has the frequent side effect of slowing down decision making and diffusing accountability." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Strategy is ineffective if it cannot be articulated in terms of day-to-day tradeoffs." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Teams motivated by targets tend not to take ownership of problems. They attend only to those aspects that affect targets and leave the rest to be picked up by someone else. To some extent, the problem isn’t the target itself but rather the incentive behind the target." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"[…] the practice of continuous integration helps a development team fail-fast in integrating code under development. A corollary of failing fast is to aim for fast feedback. The practice of regularly showcasing (demoing) features under development to product owners and business stakeholders helps them verify whether it is what they asked for and decide whether it is what they really want." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"There is common but flawed notion in enterprise IT circles that maintenance work requires less skill than full-scale development. As a result, project sponsors looking to reduce cost opt for a different team of lower-cost people for maintenance work. This is false economy. It hurts the larger business outcome and reduces IT agility." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"This is what the Agile Manifesto means when it says responding to change over following a plan. To maximize adaptability, it is essential to have good, fast feedback loops. This is why there is so much emphasis on iterative development." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"Whatever way we organize, the unit of organization is a team, and any team can turn into a silo if it acts in an insular manner. Therefore, in a sense, we can’t eliminate silos but only try to design around their side effects." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"When a team is held to targets, it begins to look out for itself. It prioritizes the achievement of its own targets over that of its neighboring teams or parent organizational unit. We know from systems theory that local optima do not necessarily lead to global optimum. On the contrary, a global optimum may call for all subsystems to be at local suboptima." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"[…] when different types of specialists use common tools, techniques, and practices for similar activities, it creates a fertile common ground for cross-functional collaboration." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

"When people use different tools for similar activities (e.g., version control, work tracking, documentation), they tend to form groups (camps) around tool usage boundaries. […] The more we are invested in certain tools, the greater the likelihood of deriving a part of our identity from the tool and its ecosystem." (Sriram Narayan, "Agile IT Organization Design: For Digital Transformation and Continuous Delivery", 2015)

OOP: Object (Definitions)

"The type all other types derive from." (Jesse Liberty, "Programming C# 2nd Ed.", 2002)

"A set of variables and associated methods. An object can be sent messages to cause one of its methods to be executed." (Stephen G Kochan, "Programming in Objective-C", 2003)

"A specific instance of a class." (Marcus Green & Bill Brogden, "Java 2™ Programmer Exam Cram™ 2 (Exam CX-310-035)", 2003)

"In the UML, an instance of a class that encapsulates state and behavior. More informally, an example of a thing." (Craig Larman, "Applying UML and Patterns", 2004)

"An instance of a class, a thing, an entity, or a concept that is represented in contiguous memory in a computer. See instance, class." (Michael Fitzgerald, "Learning Ruby", 2007)

"A unique instance of a data structure defined according to the template provided by its class. Each object has its own values for the variables belonging to its class, and can respond to the methods defined by its class." (Craig F Smith & H Peter Alesso, "Thinking on the Web: Berners-Lee, Gödel and Turing", 2008)

"A cohesive unit with a particular state, possible state transitions, and behaviors. In Scala, the keyword object is used to declare a singleton explicitly, using the same syntax as class declarations, except for the lack of constructor parameters and auxiliary parameters (because objects are instantiated by the Scala runtime, not by user code). To avoid confusion with objects, we use the term instance to refer to instances of classes and objects generically." (Dean Wampler & Alex Payne, "Programming Scala", 2009)

"A cohesive unit with a particular state, possible state transitions, and behaviors. In Java, an object is an instance of a class." (Dean Wampler, "Functional Programming for Java Developers", 2011)

"A structure consisting of data and methods together with their interactions. An object is not just data, but the encapsulation of its state (data) and behavior (methods)." (Craig S Mullins, "Database Administration", 2012)

"An instance of a class. Something that 'knows' what user-defined type (class) it is, and what it can do because of what class it is. Your program can request an object to do things, but the object gets to decide whether it wants to do them or not. Some objects are more accommodating than others." (Jon Orwant et al, "Programming Perl" 4th Ed., 2012)

"A passive entity that contains or receives information. Access to an object potentially implies access to the information that it contains. Examples of objects include records, pages, memory segments, files, directories, directory trees, and programs." (Shon Harris & Fernando Maymi, "CISSP All-in-One Exam Guide, 8th Ed", 2018)

"In object-oriented design or programming, an abstraction that consists of data and operations associated with that data." (Sybase, "Open Server Server-Library/C Reference Manual", 2019)

"In an object-oriented programming context, an object is an instance of a class or type." (Alex Thomas, "Natural Language Processing with Spark NLP", 2020)

"The fundamental structural unit of an object-oriented programming language, encapsulating a set of data and behavior that operates on that data." (Daniel Leuck et al, "Learning Java, 5th Ed.", 2020)

"An instance of a class." (Rod Stephens, "Beginning Software Engineering", 2015)

"An entity or thing that is relevant in the context of a problem" (Nell Dale & John Lewis, "Computer Science Illuminated, 6th Ed.", 2015)

03 January 2006

OOP: Class Diagram (Definitions)

"A Unified Modeling Language (UML) design artifact that shows the object classes and associations that exist between them. This is the rough UML equivalent of a data model." (Sharon Allen & Evan Terry, "Beginning Relational Data Modeling" 2nd Ed., 2005)

"A conceptual data model; a model of the static relationships between data elements of a system (similar to an ER diagram)." (Toby J Teorey, "Database Modeling and Design" 4th Ed., 2010)

"A type of diagram that shows a system's classes, contents, attributes, and relationships, including inheritance. UML is a common format for a class diagram." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the relationships among the classes." (IQBBA, "Standard glossary of terms used in Software Engineering", 2011)

"Used to represent data and their relationships in UML object modeling system notation." (Carlos Coronel et al, "Database Systems: Design, Implementation, and Management" 9th Ed., 2011)

"In UML, a diagram that describes the classes that make up the system, their properties and methods, and their relationships." (Rod Stephens, "Beginning Software Engineering", 2015)

02 January 2006

OOP: Instance (Definitions)

"A concrete representation of a class. Instances are objects that are typically created by sending an alloc or new message to a class object." (Stephen G Kochan, "Programming in Objective-C", 2003)

"An object of a particular class is called an instance of that class." (Marcus Green & Bill Brogden, "Java 2 Programmer Exam Cram 2 (Exam CX-310-035)", 2003)

"An individual member of a class. In the UML, called an object." (Craig Larman, "Applying UML and Patterns", 2004)

"A concrete representation of a class. Instances are objects that are typically created by sending an alloc or new message to a class object." (Stephen G Kochan, "Programming in Objective-C" 4th Ed., 2011)

"A specific object that is of a class type." (Rod Stephens, "Start Here! Fundamentals of Microsoft .NET Programming", 2011)

"An instance of a class is an object of the class's type. Different instances of the same class have the same properties, methods, and events but they may have different property values." (Rod Stephens, "Stephens' Visual Basic Programming 24-Hour Trainer", 2011)

"Another term for an object created by invoking a class constructor or a value of a primitive type." (Dean Wampler, "Functional Programming for Java Developers", 2011)

"(1) An occurrence of an entity. (2) The implementation of a database server (e.g., an Oracle instance)." (Craig S Mullins, "Database Administration: The Complete Guide to DBA Practices and Procedures 2nd Ed", 2012)

"In a map pattern one invocation of an elemental function on one element of the map." (Michael McCool et al, "Structured Parallel Programming", 2012)

"Short for 'an instance of a class', meaning an object of that class." (Jon Orwant et al, "Programming Perl" 4th Ed., 2012)

"One occurrence of something that has many occurrences, such as entities or objects." (James Robertson et al, "Complete Systems Analysis: The Workbook, the Textbook, the Answers", 2013)

"An entity to which a set of operations can be applied and that has a state that stores the effects of the operations." (Sybase, "Open Server Server-Library/C Reference Manual", 2019)

"An occurrence of something, usually an object. When a class is instantiated to produce an object, we say the object is an instance of the class." (Daniel Leuck et al, "Learning Java, 5th Ed.", 2020)

01 January 2006

🧿Tim Berners-Lee - Collected Quotes

"In providing a system for manipulating this sort of information, the hope would be to allow a pool of information to develop which could grow and evolve with the organisation and the projects it describes. For this to be possible, the method of storage must not place its own restraints on the information." (Tim Berners-Lee, "Information Management: A Proposal", 1989)

"Non-centralisation: Information systems start small and grow. They also start isolated and then merge. A new system must allow existing systems to be linked together without requiring any central control or coordination." (Tim Berners-Lee, "Information Management: A Proposal", 1989)

"The actual observed working structure of the organisation is a multiply connected 'web' whose interconnections evolve with time." (Tim Berners-Lee, "Information Management: A Proposal", 1989)

"This is why a 'web' of notes with links (like references) between them is far more useful than a fixed hierarchical system. When describing a complex system, many people resort to diagrams with circles and arrows. Circles and arrows leave one free to describe the interrelationships between things in a way that tables, for example, do not. The system we need is like a diagram of circles and arrows, where circles and arrows can stand for anything." (Tim Berners-Lee, "Information Management: A Proposal", 1989)

"We should work toward a universal linked information system, in which generality and portability are more important than fancy graphics techniques and complex extra facilities. The aim would be to allow a place to be found for any information or reference which one felt was important, and a way of finding it afterwards. The result should be sufficiently attractive to use that it the information contained would grow past a critical threshold, so that the usefulness the scheme would in turn encourage its increased use." (Tim Berners-Lee, "Information Management: A Proposal", 1989)

"A computer typically keeps information in rigid hierarchies and matrices, whereas the human mind has the special ability to link random bits of data." (Tim Berners-Lee, "Weaving the Web", 1999)

"An intriguing possibility, given a large hypertext database with typed links, is that it allows some degree of automatic analysis. [ . . . ] Imagine making a large three-dimensional model, with people represented by little spheres, and strings between people who have something in common at work. Now imagine picking up the structure and shaking it, until you make some sense of the tangle: Perhaps you see tightly knit groups in some places, and in some places weak areas of communication spanned by only a few people. Perhaps a linked information system will allow us to see the real structure of the organization in which we work." (Tim Berners-Lee, "Weaving the Web", 1999)

"I have a dream for the Web [...] and it has two parts. In the first part, the Web becomes a much more powerful means for collaboration between people. I have always imagine  the information space as something to which everyone has immediate and intuitive access, and not just to browse, but to create. Furthermore, the dream of people-to-people communication through shared knowledge must be possible for groups of all sizes, interacting electronically with as much ease as they do now in person." (Tim Berners-Lee, "Weaving the Web", 1999)

"The first form of semantic data on the Web was metadata information about information. (There happens to be a company called Metadata, but I use the term here as a generic noun, as it has been used for many years.) Metadata consist of a set of properties of a document. By definition, metadata are data, as well as data about data. They describe catalogue information about who wrote Web pages and what they are about; information about how Web pages fit together and relate to each other as versions; translations, and reformattings; and social information such as distribution rights and privacy codes." (Tim Berners-Lee, "Weaving the Web", 1999)

"The web is more a social creation than a technical one. I designed it for a social effect - to help people work together - and not as a technical toy. The ultimate goal of the Web is to support and improve our web-like existence in the world. We clump into families, associations, and companies. We develop trust across the miles and distrust around the corner." (Tim Berners-Lee, "Weaving the Web", 1999)

"What we believe, endorse, agree with, and depend on is representable and, increasingly, represented on the Web. We all have to ensure that the society we build with the Web is the sort we intend." (Tim Berners-Lee, "Weaving the Web", 1999)

"The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation." (Tim Berners-Lee et al, "The Semantic Web", Scientific American, 2001)

"The Web does not just connect machines, it connects people." (Tim Berners-Lee, [speech] 2008)

"If Web 2.0 for you is blogs and wikis, then that is people to people. But that was what the Web was supposed to be all along." (Tim Berners-Lee, [interview])

"One of the powerful things about networking technology like the Internet or the Web or the Semantic Web [...] is that the things we've just done with them far surpass the imagination of the people who invented them." (Tim Berners-Lee)

"The first step is putting data on the Web in a form that machines can naturally understand, or converting it to that form. This creates what I call a Semantic Web-a web of data that can be processed directly or indirectly by machines." (Tim Berners-Lee)

"The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect." (Tim Berners-Lee)

OOP: Class (Definitions)

"In object-oriented software design, a blueprint or set of specifications that defines the characteristics of an object and describes how the object should behave. In Object Role Modeling, an object role model can be used as the basis for an entity-relationship-attribute logical data model. The data can then be easily shared with other applications in the enterprise to form an enterprise logical model. In Microsoft Repository, an information model includes classes, relationships, and properties. This information model can be shared across the enterprise." (Microsoft Corporation, "Microsoft SQL Server 7.0 Data Warehouse Training Kit", 2000)

"A description of an object and its properties." (Greg Perry, "Sams Teach Yourself Beginning Programming in 24 Hours" 2nd Ed., 2001)

"The definition of a new type. A class is implemented as data and related functions." (Jesse Liberty, "Sams Teach Yourself C++ in 24 Hours" 3rd Ed., 2001)

"The specification of an object type in object-oriented programming (OOP), although not all OOP languages use this term." (Bill Pribyl & Steven Feuerstein, "Learning Oracle PL/SQL", 2001)

"An extendable reference type that combines data and functionality into one unit." (Jesse Liberty, "Programming C# "2nd Ed., 2002)

"A set of instance variables and methods that have access to those variables. After a class is defined, instances of the class (that is, objects) can be created." (Stephen G Kochan, "Programming in Objective-C", 2003)

"In the UML, “The descriptor of a set of objects that share the same attributes, operations, methods, relationships, and behavior” [RJB99]. May be used to represent software or conceptual elements." (Craig Larman, "Applying UML and Patterns", 2004)

"A collection of code, including methods and variables called members. The code in a class sets the rules for objects of the given class. See instance, module, object." (Michael Fitzgerald, "Learning Ruby", 2007)

"A template for instances that will have the same fields, representing state values, and the same methods. Scala classes support single inheritance and zero or more mixin traits. Contrast with type." (Dean Wampler & Alex Payne, "Programming Scala", 2009)

"The specification of an object instance; an encapsulation boundary including data (attributes) and behavior (operations that manipulate that data)." (Bruce P Douglass, "Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development", 2009)

"A declaration of data and methods that describe a single entity and that will be used as a template to create objects." (Jan L Harrington, "SQL Clearly Explained" 3rd Ed., 2010)

"A set of instance variables and methods that have access to those variables. After a class is defined, instances of the class (that is, objects) can be created." (Stephen G Kochan, "Programming in Objective-C" 4th Ed., 2011)

"A template for creating instances. A class defines implementation of methods and fields. A class defines type." (Dean Wampler, "Functional Programming for Java Developers", 2011)

"Defines a data type with properties, methods, events, and other code encapsulated in a package. After you define a class, you can make as many instances of that class as you like. Very similar to a structure except classes are reference types, whereas structures are value types." (Rod Stephens, "Stephens' Visual Basic Programming 24-Hour Trainer", 2011)

"A construct that works as the blueprint for objects." (Mark C Lewis, "Introduction to the Art of Programming Using Scala", 2012)

"A user-defined type, implemented in Perl via a package that provides (either directly or by inheritance) methods (that is, subroutines) to handle instances of the class (its objects). See also inheritance." (Jon Orwant et al, "Programming Perl" 4th Ed., 2012)

"The encapsulation of a set of functions and data that model a real-world object. Creating a class is like creating a blueprint for a bunch of objects of a given type." (Matt Telles, "Beginning Programming", 2014)

"In object-oriented programming, a construct that defines a type (or class) of items. For example, if you define a Customer class, you can then create many Customer objects representing different real-world customers." (Rod Stephens, "Beginning Software Engineering", 2015)

"In C++, a user-defined data type. A class data type can contain both data representations (data members) and functions (member functions). A description of a set of objects that share the same attributes, operations, methods, relationships, and semantics. A class can use a set of interfaces to specify collections of operations that it provides to its environment." (Sybase, "Open Server Server-Library/C Reference Manual", 2019)

"Abstract entity that represents a kind of things in the world and may serve as semantic type of other entities." (Panos Alexopoulos, "Semantic Modeling for Data", 2020)

"The fundamental unit that defines an object in most object-oriented programming languages. A class is an encapsulated collection of variables and methods that may have privileged access to one another. Usually a class can be instantiated to produce an object that’s an instance of the class, with its own unique set of data." (Daniel Leuck et al, "Learning Java, 5th Ed.", 2020)

Related Posts Plugin for WordPress, Blogger...

About Me

My photo
Koeln, NRW, Germany
IT Professional with more than 24 years experience in IT in the area of full life-cycle of Web/Desktop/Database Applications Development, Software Engineering, Consultancy, Data Management, Data Quality, Data Migrations, Reporting, ERP implementations & support, Team/Project/IT Management, etc.