Anti-patterns: bad practices in code development, see also code smells
Applications (Apps): programs that run on a computer or electronic device. Apps that can be downloaded for a mobile phone via an app store are known as ‘native apps’ because they run on a particular mobile platform, for example Android or iOS
Attribute: (in databases) a data element (field) associated with an entity, for example a customer number, customer name, customer address or current balance
Behaviour driven development (BDD): a top-down development approach where the user goals and product behaviour are defined collaboratively
Blockchain: a system where the transactions made using an electronic currency (for example BitCoin) are logged
Continuous integration (CI): a development practice where small pieces of work are submitted frequently to a shared repository containing the most up-to-date version of a product
Class (object oriented terminology): a template for something used in your system, for example an order
Code smells: bad practices that may be used when writing code, see also anti-patterns
Data dictionary: a list of data items with descriptions of their data type and use in the system
Database: a collection of logically related data that can be defined and controlled independently of user applications. They are made up of tables (for example ‘Customers’ or ‘Accounts’) which consist of rows (typically one row for each customer or account) which are, in turn, made up of columns (each of which is a piece of data related to the row)
Database management system (DBMS): the software used for developing and managing a database independently of any programs that use the data
Deployment: the stage in product development when you ship the product to the customer
DRY: don’t repeat yourself, a development principle which helps avoid duplicated logic by having one procedure which can be called by other procedures; in other words, a piece of reusable code
Encapsulation: (object oriented terminology) the concept of an object containing its data and the methods that can be used to read or change that data
Entity: (in databases) something which an organisation collects and stores data on, for example a customer, an order or a bank account
Entity relationship diagram (ERD): the diagram part of an ERM
Entity relationship model (ERM): a mixture of diagrams and text description which describe data usually held in a database
False feature rich: in simple terms, this means giving the user more than they asked for in the way of software or webpage functionality
Global positioning system (GPS): a way of determining your location on the planet
Global variables: variables are the yellow sticky notes of the programming world, they hold data temporarily for use at a later time in your code, then they can be thrown away. A global variable is one that can be used anywhere in your program
Identifier: (in databases) an entity has an identifier, that is, an attribute that uniquely identifies an occurrence of a particular entity among many occurrences of the same entity; for example the identifier for a customer might be Customer Number. An identifier is sometimes called a Primary Key
Inheritance: (object oriented terminology) an object can use (inherits) the methods and properties defined by its class
Instance: (object oriented terminology) a copy of a class; an instance of a class is called an object
Internet of things (IoT): a system of interrelated or interconnected electronic computer devices; for example, the ability to control your home heating with an app on your phone
JSON: a simple data-interchange format, often used when sending data across the internet
Method: (object oriented terminology) something that can be done by an object (a piece of functionality); for example, you can Place an Order (Place is the method, Order is the object)
Modules: sections or parts of code
Normalisation: (in database design) a set of rules and guidelines that help you create well-designed databases
Object: (object oriented terminology) an instance of a defined class, for example the Order object, when you place an order the system will create an order object in the code to represent your particular order
Pair programming: a technique where two people work/collaborate on the same piece of code
Patterns: (in code or development) good practice, tried and tested ways of developing code in order to solve a particular problem
Property: (object oriented terminology) a piece of data relating to an object
Refactoring: the name given to rewriting a piece of code in order to improve the quality, readability or maintainability of that code
Relationship: (in databases) the term used for the association between entities, for example a customer is related to an order by the relationship ‘places’
Robust code: software that is written in such a way that it does not break easily when errors occur
Scrum: a methodology used to implement Agile practices during product development
Software or systems development life cycle (SDLC): the lifetime of a product/system, from conception to eventual decommissioning
SQL: Structured Query Language, a language used to access data from a database
Stakeholders: people (or sometimes other systems or groups) that have an interest in a product’s development
Syntactic sugar: a phrase often used about a development libraries capabilities; it refers to the fact that the library provides an easy to use way of doing something. It hides the underlying difficulties of a language or process
Technical debt: the term used when refactoring is identified as necessary but not carried out
Test driven development (TDD): a technique where tests are created at the same time (before) the code that they test
UML: Unified Modelling Language, a set of modelling techniques which are grouped together under one title. They can be used to diagrammatically represent a system
URL: Uniform Resource Locator, an address on the internet
Use cases: used to describe what a system does from the standpoint of an external observer, in development this is used to work out what the boundaries of a system are, what is included and what is excluded
User stories: a technique used widely in modern software development methodologies such as Agile/Scrum. They are simple-to-read definitions of a user’s goal for a product
Waterfall: a model which shows a traditional (older style) software development life cycle
PREFACE
When I first started writing code we were simply known as programmers. The roles in my first work experience as a programmer were well defined:
1. The analyst analysed the problem.
2. The designer designed the solution.
3. The programmer wrote the code (by hand, on COBOL coding sheets) and then wrote the Job Control Request sheet to define what needed running and how.
4. The punch operator transferred the code onto punched cards.
5. These were passed to the operator who ran the code on the big old mainframe.
6. Some days later, the programmer was given a (memory) core dump with error listing, they worked out what was wrong and wrote out the corrections, which went to the punch card operator etc.
Try transferring that process to modern text messaging: