Category Archives: Digitalization

The history of software engineering

grady_booch2c_chm_2011_2_cropped

The History of Software Engineering
an ACM webinar presentation by
ACM Fellow Grady Booch, Chief Scientist for Software Engineering, IBM Software
(PDF slides here.)

Note: These are notes taken while listening to this webinar. Errors, misunderstandings and misses aplenty…

(This is one of the perks of being a member of ACM – listening to legends of the industry talking about how it got started…)

Trust is fundamental – and we trust engineering because of licensing and certification. This is not true of software systems – and that leads us to software engineering. Checks and balances important – Hammurabi code of buildings, for instance. First licensed engineer was Charles Bellamy, in Wyoming, in 1907, largely because of former failures of bridges, boilers, dams, etc.

Systems engineering dates back to Bell labs, early 1940s, during WWII. In some states you can declare yourself a software engineer, in others licensing is required, perhaps because the industry is young. Computers were, in the beginning, human (mostly women). Stibitz coined digital around 1942, Tukey coined software in 1952. 1968-69 conference on software engineering coined the term, but CACM letter by Anthony Oettinger used the term in 1966, but the term was used before that (“systems software engineering”), most probably originated by Margaret Hamilton in 1963, working for Draper Labs.

Programming – art or science? Hopper, Dijkstra, Knuth, sees them as practical art, art, etc. Parnas distinguished between computer science and software engineering. Booch sees it as dealing with forces that are apparent when designing and building software systems. Good engineering based on discovery, invention, and implementation – and this has been the pattern of software engineering – dance between science and implementation.

Lovelace first programmer, algorithmic development. Boole and boolean algebra, implementing raw logic as “laws of thought”.

First computers were low cost assistants to astronomers, establishing rigorous processes for acting on data (Annie Cannon, Henrietta Leavitt.) Scaling of problems and automation towards the end of the 1800s – rows of (human) computers in a pipeline architecture. The Gilbreths created process charts (1921). Edith Clarke (1921) wrote about the process of programming. Mechanisation with punch cards (Gertrude Blanch, human computing, 1938; J Presper Eckert on punch car methods (1940), first methodology with pattern languages.

Digital methods coming – Stibitz, Von Neumann, Aitken, Goldstein, Grace Hopper with machine-independent programming in 1952, devising languages and independent algorithms. Colossus and Turing, Tommy Flowers on programmable computation, Dotthy du Boisson with workflow (primary operator of Colossus), Konrad Zuse on high order languages, first general purpose stored programs computer. ENIAC with plugboard programming, dominated by women, (Antonelli, Snyder, Spence, Teitelbaum, Wescoff). Towards the end of the war: Kilburn real-time (1948), Wilson and Gill subroutines (1949), Eckert and Mauchly with software as a thing of itself (1949). John Bacchus with imperative programming (Fortran, 1946), Goldstein and von Neumann flowcharts (1947). Commercial computers – Leo for a tea company in England. John Pinkerton creating operating system, Hoper with ALGOL and COBOL, reuse (Bener, Sammet). SAGE system important, command and control – Jay Forrester and Whirlwind 1951, Bob Evans (Sage, 1957), Strachey time sharing 1959, St Johnson with the first programming services company (1959).

Software crisis – not enough programmers around, machines more expensive than the humans, priesthood of programming, carry programs over and get results, batch. Fred Brooks on project management (1964), Constantin on modular programming (1968), Dijkstra on structured programming (1969). Formal systems (Hoare and Floyd) and provable programs; object orientation (Dahl and Nygaard, 1967). Main programming problem was complexity and productivity, hence software engineering (Margaret Hamilton) arguing that process should be managed.

Royce and the waterfall method (1970), Wirth on stepwise refinement, Parnas on information hiding, Liskov on abstract data types, Chen on entity-relationship modelling. First SW engineering methods: Ross, Constantine, Yourdon, Jackson, Demarco. Fagin on software inspection, Backus on functional programming, Lamport on distributed computing. Microcomputers made computing cheap – second generation of SW engineering: UML (Booch 1986), Rumbaugh, Jacobsen on use cases, standardization on UML in 1997, open source. Mellor, Yourdon, Worfs-Brock, Coad, Boehm, Basils, Cox, Mills, Humphrey (CMM), James Martin and John Zachman from the business side. Software engineering becomes a discipline with associations. Don Knuth (literate programming), Stallman on free software, Cooper on visual programming (visual basic).

Arpanet and Internet changed things again: Sutherland and SCRUM, Beck on eXtreme prorgamming, Fowler and refactoring, Royce on Rational Unified Process. Software architecture (Kruchten etc.), Reed Hastings (configuration management), Raymond on open source, Kaznik on outsourcing (first major contract between GE and India).

Mobile devices changed things again – Torvalds and git, Coplien and organiational patterns, Wing and computational thinking, Spolsky and stackoverflow, Robert Martin and clean code (2008). Consolidation into cloud: Shafer and Debois on devops (2008), context becoming important. Brad Cox and componentized structures, service-oriented architectures and APIs, Jeff Dean and platform computing, Jeff Bezos.

And here we are today: Ambient computing, systems are everywhere and surround us. Software-intensive systems are used all the time, trusted, and there we are. Computer science focused on physics and algorithms, software engineering on process, architecture, economics, organisation, HCI. SWEBOK first 2004, latest 2014, codification.

Mathematical -> Symbolic -> Personal -> Distributed & Connected -> Imagined Realities

Fundamentals -> Complexity -> HCI -> Scale -> Ethics and morals

Scale is important – risk and cost increases with size. Most SW development is like engineering a city, you have to change things in the presence of things that you can’t change and cannot change. AI changes things again – symbolic approaches and connectionist approaches, such as Deepmind. Still a lot we don’t know what to do – such as architecture for AI, little rigorous specification and testing. Orchestration of AI will change how we look at systems, teaching systems rather than programming them.

Fundamentals always apply: Abstraction, separation, responsibilities, simplicity. Process is iterative, incremental, continuous releases. Future: Orchestrating, architecture, edge/cloud, scale in the presence of untrusted components, dealing with the general product.

“Software is the invisible writing that whispers the stories of possibility to our hardware…” Software engineering allows us to build systems that are trusted.

Sources: https://twitter.com/Grady_Boochhttps://computingthehumanexperience.com/

A tour de Fry of technology evolution

There are many things to say about Stephen Fry, but enough is to show this video, filmed at Nokia Bell Labs, explaining, amongst other things, the origin of microchips, the power of exponential growth, the adventure and consequences of performance and functionality evolution. I am beginning to think that “the apogee, the acme, the summit of human intelligence” might actually be Stephen himself:

(Of course, the most impressive feat is his easy banter on hard questions after the talk itself. Quotes like: “[and] who is to program any kind of moral [into computers ]… If [the computer] dives into the data lake and learns to swim, which is essentially what machine learning is, it’s just diving in and learning to swim, it may pick up some very unpleasant sewage.”)

Big Data and analytics – briefly

DFDDODData and data analytics is becoming more and more important for companies and organizations. Are you wondering what data and data science might do for your company? Welcome to a three-day ESP (Executive Short Program) called Decisions from Data: Driving an Organization with Analytics. It will take place at BI Norwegian Business School from December 5-7 this year. The short course is an offshoot from our very popular executive programs Analytics for Strategic Management, which are fully booked. (Check this list (Norwegian) for a sense of what those students are doing.)

Decisions from Data is aimed at managers who are curious about Big Data and data science and wants an introduction and an overview, without having to take a full course. We will talk about and show various forms of data analysis, discuss the most important obstacles to becoming a data driven organization and how to deal with data scientists, and, of course, give lots of examples of how to compete with analytics. The course will not be tech heavy, but we will look at and touch a few tools, just to get an idea of what we are asking those data scientists to do.

The whole thing will be in English, because, well, the (in my humble opinion) best people we have on this (Chandler Johnson og Alessandra Luzzi) are from the USA and Italy, respectively. As for myself, I tag along as best I can…

Welcome to the data revolution – it start’s here!

Smarthelp: Locating and messaging passengers

 

If you are a public transportation company: How do you tell your prospective passengers that their travel plans may have to change?

Public transportation companies know a lot about their passengers’ travel patterns, but not as much as you would think – and, surprisingly, they know less now when ticket sales have been automated than they used to know before.

screen696x696

RuterBillett – a ticketing app

Let’s take a concrete company as an example: Ruter AS, the public transportation authority of Greater Oslo. Ruter is a publicly owned company that coordinates various suppliers of transportation services (bus, tram, train, some ferries) in the Oslo area. The company has been quite innovative in their use of apps, selling most of their tickets on the RuterBillett app, and having many of their customers plan their journey on the RuterReise app. The apps are very popular because they make it very easy both to figure out which bus or train to take, and to buy a ticket.

The company has a problem, though: While they know that someone bought a ticket on the ticketing app, they don’t know which particular bus, tram or other service the passenger took (a ticket typically gives you one hour of open travel on their services, no matter how many of them you use).

screen696x6961

RuterReise – a journey planning app

They could get some information from what people have been searching for, but the two apps are not linked, and they don’t know whether a passenger who searched for a particular route actually bought a ticket and did the journey – or not. There are many reasons for this lack of knowledge, but privacy issues – Norway has very strict laws on privacy – are important. Ruter does not want to track where its customers are travelling, at least not if it in any way involves identifying who a passenger actually is.

Not knowing where passengers are is a problem in many situations: It creates difficulties for dimensioning capacity, and it makes it difficult to communicate with passengers when something happens – such as a bus delay or cancellation.

Identifying travel patterns and communicating with passengers

The problem for Ruter is that they want to know where people are travelling (so they can figure out how many buses or trams they need to schedule), they ned to know who regularly takes certain journeys (so they know whom to send a message to if that route is not working) and they need to know who is in a certain area at a certain time (so they don’t send you a message about your bus being delayed if you are out of town, for instance). All of this is easy, except for one thing: Norway has very strict privacy laws – already quite similar to EU’s General Data Protection Regulation, which goes into effect in 2018 – and Ruter cares deeply about not being seen as a company that monitors where people travel.

In short, they need to know where you travel, but do not want to know who you are.

This is a seemingly impossible challenge, but Smarthelp Secure Infrastructure, in combination with Smart Decision Support, makes it possible. The communications platform creates an end-to-end encrypted communication channel between a central system and the smartphone. Using technology developed because we had to solve the problem of medical-level encrypted communication between emergency centers and individual users, Smarthelp has technology that allows someone to track specific information you allow access to – say, the fact that you are in a certain area, or that you regularly travel certain paths – without sharing other information, such as your name.

This would allow Ruter, when something happens, to send a message to people who a) regularly takes, say, bus route 85, and who b) is in an area where it is conceivable that they could take the bus, given their prior patterns, the time of day, and so on. For the individual passenger, this would mean that you only get pertinent messages – you don’t get messages about bus routes you don’t normally take (unless you actually get on the bus), and you don’t get messages when you are far enough from the bus that it is clear you are not going to take it anyway. In a world of information overload, this is extremely important – flood the user with many messages, and they do not read them.

The future of public transportation

A selective message and geolocation service, such as Smarthelp provides, is an evolutionary step, an optimization of the current way transportation is coordinated. In the long term (especially if we start to talk about seld-driving vehicles), the whole way we coordinate public transportation will change. As one Ruter employee told me: A public transportation company is “someone who takes you from a place you are not to a place you don’t want to go.”

The next step in public transportation is that the users tells the company not just that they want to get on the bus, but also where they want to go. I have been told that in an experiment, Telenor found that, one sunny summer afternoon, fully half of their employees (located at Fornebu outside Oslo) planned to go to Huk, a public beach on Bygdøy. The distance from Telenor’s headquarters at Fornebu is 10 minutes by car, but takes more than 30 minutes by public transportation, involving two bus routes. If Ruter had known about these travel plans, though, it could have just rolled up some buses and driven the employees directly, vastly improving the service – and avoiding clogging up the regular buses to Bygdøy.

And that is the future of public transportation: Instead of planning where you will go in terms of geography, you will tell the public transportation company where you want to go, and they will get you there. With self-driving cars, they will be able to tell you when you will be at your destination – but, perhaps, not willing to tell you the actual route. As a passenger, you probably will not care – after all, what matters to you is when you arrive, not by which route.

That would, in effect, mean that we have transitioned public transportation from line switching to packet switching, effectively turning the bus into the Internet. But that is for the future.

In the meantime, there is Smarthelp.


(I am on the board of Råd AS, a company that has developed the platform SmartHelp for Norwegian emergency services, allowing shared situational awareness, communication and privacy. The company is now seeking customers and collaborators outside this market.)

Smarthelp is a platform technology consisting of, at present, three elements: Smarthelp Rescue, an app for iPhone and Android that allows users to transmit their position to an emergency service; Smarthelp Decision Support, a decision support system which allows an operator to locate and communicate with users (both with the app and without), and Smarthelp Secure Infrastructure, a granularly encrypted communications platform for secure, private communication. If you want more information, please contact me or Fredrik Øvergård, CEO of SmartHelp.

SmartHelp: Locating employees in a crisis

If there is a crisis – do you know where your people are?

Imagine the situation: An event (terrorist attack, industrial accident, public transportation accident) of some proportion happens. Many people are hurt, lots of rumors abound, emergency services are responding. Almost immediately, the question arises: Are any of my employees affected by this – and do they need help?

At present, most organizations locate their employees by calling them or sending emails. This is slow and ineffective – when Norway was hit by a terrorist bomb in the Oslo city centre in 2011 during the summer holiday, it took one of the large newspapers more than two days of frantic telephoning to find all their employees. Most of the employees were, of course, just fine, but the company still had to locate them all. In such a situation, knowing who is not in danger quickly is very important, because it lets you concentrate resources on those who need help.

Smarthelp Decision Support, the emergency service communication platform, allows an organization to quickly – within minutes – determine where its employees are and whether they need help. Smarthelp does this while maintaining privacy of the individual employee.

Most large organizations have a system where employees register where they travel on business. For this service to work, the employee has to remember to update it, though for some companies, this happens automatically if they purchase their tickets through a specific travel agency. While this may help, people travel for pleasure, deviate from their itineraries, forget to register their travels, and purchase their tickets from the cheapest, rather than the official source. Consequently, nobody knows where they really are.

SmartHelp Decision Support (see picture) allows the company to set up a geographical area surrounding the event, and contact all their employees (based on lists of telephone numbers) to determine whether they are inside this area or not.

terroreksempel

Here is another example: You are responsible for security in a large company facility – say, an office building. The company receives a bomb threat which necessitates evacuating the building with thousands of employees. If the employees have SmartHelp on their phones, you can communicate with them all, and determine whether they (or at least their smartphones have left the building (limited by GPS accuracy). You can define a rallying point or area and get an automatic message as soon as someone enters the area, allowing you to quickly determine who is not accounted for. (At this point, GPS location – which we use – does not allow precise location inside a building, but that could change as WiFi locationing services get better.)

rumorsparisAnother advantage is information: In the November 2015 terrorist attack in Paris happened, there where (as is usual) lots of rumors circulating in the hundreds of thousands of Twitter messages and other social channels. With SmartHelp, the authorities would have been able to send targeted messages to specific areas, conveying a precise and autorative message across a cacophony of noise and misinformation.

SmartHelp works anywhere in the world where there is mobile reception (I have used it to signal my position to my host in Shanghai, for instance.) Privacy is handled through an ingenious cryptographic architecture that is secure and fast – the platform is certified for the medical information under the Norwegian data privacy laws, among the strictest in the world.

If you want more information, please contact me or Fredrik Øvergård, CEO of SmartHelp.


(I am on the board of Råd AS, a company that has developed the platform SmartHelp for Norwegian emergency services, allowing shared situational awareness, communication and privacy. The company is now seeking customers and collaborators outside this market.)

Smarthelp is a platform technology consisting of, at present, three elements: Smarthelp Rescue, an app for iPhone and Android that allows users to transmit their position to an emergency service; Smarthelp Decision Support, a decision support system which allows an operator to locate and communicate with users (both with the app and without), and Smarthelp Secure Infrastructure, a granularly encrypted communications platform for secure, private communication. If you want to see how the system works in a 911 central situation, see this video:

Made my day!

digøkskjermI just got the message that the new bachelor program Informatikk: Digital Økonomi og Ledelse (Informatics: Digital Economics and Management) is now the most sought-after study program in Norway, with 19 applicants per available place (514 first-priority applicants for 27 available places).

Since I have taken the initiative to this program and developed it with colleagues at the University of Oslo (where I have an adjunct position, this definitely made my day. Week, actually.

Just sayin’…

Notes from ACM Webinar on blockchain (etc.)

The Next Radical Internet Transformation: How Blockchain Technology is Transforming Business, Governments, Computing, and Security Models

Speaker: Mark Mueller-Eberstein, CEO & Founder at Adgetec Corporation, Professor at Rutgers University, Senior Research Fellow at QIIR

Moderator: Toufi Saliba, CEO, PrivacyShell and Chair of the ACM PB Conference Committee

Warning: These are notes taken live. Errors and omissions will occur. No responsibility whatsoever.

  • intro: old enough to remember the discussions in the early 90s about how the internet would change mail services – completely forgetting shopping, entertainment and others
  • Blockchain solves the problem of transferring value between Internet users without a third party
  • goes beyond the financial industry, can handle any kind of transaction
  • most of the world has access to a mobile phone, only about 20% has access to the banking system
  • Blockchain is the banking industry’s Uber movement
  • Blockchain much wider than Bitcoin, will facilitate new business models.
  • Blockchain transfers rather than copies digital assets, making sure there is only one instance of it.
    • settlement process: no clearing houses or central exchanges
    • peer-to-peer transfers, validation by network
  • Example: WeChat taking over payments in China, no link to banks
  • many commercial or government services are basically “databases” that are centrally managed, with one central point of failure
  • Blockchain allows a distributed ledger, information put in cannot be changed
    • Estonia thinking about a Blockchain in case of hacking or occupation
  • public (open), private and government blockchainsxx1
  • allows new services to existing customers, lots of inefficiencies up for grabs
    • estate records, voting, domain control, escrow, etc…
    • iPayYou allows use of Bitcoin
    • Walt Disney looking at Blockchain (DragonChain) for internal transfers, also use it for tracking supply chain to their cruise ships. Opensourced it.
  • 80% of Bitcoin mining done in China
  • regulation comes with a cost
  • Shenzhen want to be Blockchain Tech capital
  • 6-level security model, developed by William Mougayar (goes through it in detail: transaction, account, programming, distributed organizations, network (51% attacks, perhaps as low as 30%, smaller blockchains more vulnerable), governance)
  • Ethereum blockchain focusing on smart contracts: Hard forked in 2016, DAO issue where somebody hacked DAO code to siphon off money, hacking the program using the blockchain (not the blockchain),
  • credit card transaction can take up to 30 days, with disputes and everthing, Blockchain is almost instant
  • How “real” is blockchain technology
    • Goldman-Sachs invested $500m+
    • 15% of top global banks intend to roll out full-scale, commercial blockchain
    • etc.
  • what is holding it back?
    • difficult to use, understand, buy in; perception of risk and legality
    • difficult to see value for the individual
  • questions:
    • what are the incentives and adoption models?
      • different philosophies: computing power must be made available in the network: industrial mining vs. BitTorrent model, the amount of computing provided will be important, if we can find a model where just a little bit from every mobile phone is required
    • what are the hard costs of Blockchain?
      • you can google the costs. There are other approaches being developed, will post some links
    • can Blockchain be compromized by a virus?
      • theoretically, yes. Bitcoin is 10 years without, open source means verification (change is happening slowly because of code inspection)
      • comes back to incentive and governance model
  • and that was that…recording will be at webinar.acm.org in a few days.