
The History of Software Engineering in 244 Chapters
About
- This is a curated and experimental site, offering historical and visual index of all collected sources.
- The site does not host any of the files. It only provides an index and links to full text files.
- Full text of many sources is behind a paywall. You may need to obtain a subscription to read full text.
Latest Issue
2024
| ![]() | Latest Issue:
|
History
· | ||
2023
| ![]() | A Year Ago:
|
· · · · | ||
2019
| ![]() | 5 Years Ago:
|
· · · · · | ||
2014
| ![]() | 10 Years Ago:
|
· · · · · | ||
2009
| ![]() | 15 Years Ago:
|
· · · · · | ||
2004
| ![]() | 20 Years Ago:
|
· · · · · · · · · · · · · · · · · · · · · | ||
1984
| ![]() | Premiere Issue:
|
A searchable index (by theme and year) of all 244 IEEE Software cover pages (from 1984 to present).

2024






2023






2022






2021






2020






2019






2018






2017






2016






2015






2014






2013






2012






2011






2010






2009






2008






2007






2006






2005






2004






2003






2002






2001






2000






1999






1998






1997






1996






1995






1994






1993






1992






1991






1990






1989






1988






1987






1986






1985






1984




Departments (Active)
![]() | SE for AI (2020-)A collection of articles from the IEEE Software's 'Software Engineering for AI' column, edited by Tim Menzis. |
![]() | Pragmatic Designer (2019-)A collection of articles from the 'Pragmatic Designer' column (2019-), edited by George Fairbanks. |
![]() | Insights (2015-)A collection of articles from the Insights column (2015-), edited by Cesare Pautasso and Olaf Zimmermann. Insights is a place to write up valuable knowledge nuggets. It gives a voice to busy software professionals so that their stories are heard. This department’s goal is to share and exchange real-world experience and take a snapshot of where practical software engineering has been, is now, and is heading towards. |
![]() | Practitioners' Digest (2015-)A collection of articles from the IEEE Software's 'Practitioners' Digest' column, edited by Jeffrey C. Carver. Practitioner’s Digest aims to bring practitioners into contact with research that might be of interest. Drawing on a team of correspondents, the column highlights industry-relevant research results from software-engineering conferences. |
![]() | Reliable Code (2014-)A collection of articles from the IEEE Software's 'Reliable Code' column, edited by Mik Kersten. |
![]() | Software Engineering Radio (2014-)A collection of SE Radio summaries edited by Robert Blumen. |
![]() | Sounding Board (2011-)A collection of articles from the IEEE Software's 'Sounding Board' column, edited by Philippe Kruchten. |
![]() | Impact (2010-)A collection of articles from the Impact column, edited by Michiel van Genuchten and Les Hatton. The goal of this column is to build better quantitative insight into how software impacts various businesses. How the product uses the software and how the company built it are equally important. |
![]() | Software Technology (2007-)A collection of articles from the IEEE Software's 'Software Technology' column, edited by Christof Ebert (2001-present). |
![]() | Requirements (2005-)A collection of articles from the 'Requirements' column, edited by Neil Maiden (2005-2013), Jane Cleland-Huang (2013-2016), and Sarah Gregory (2017-). |
Departments (Archived)
![]() | Redirections (2018-2019)A collection of articles from the IEEE Software's 'Redirections' column, edited by Tim Menzis. |
![]() | On DevOps (2016-2018)A collection of articles from the IEEE Software's 'On DevOps' column, edited by Mik Kersten. |
![]() | The Pragmatic Architect (2009-2018)A collection of articles from the the IEEE Software's 'Pragmatic Architect' column, edited by Frank Buschmann (2009-2013) and Eoin Woods (2014-present). |
![]() | Voice of Evidence (2007-2017)A collection of articles from the Voice of Evidence column (2007-2017), edited by Forrest Shull (2007-2010), Tore Dybå & Helen Sharp (2011-2013), and Rafael Prikladnicki (2015-2017). |
![]() | On Computing (2012-2016)A collection of articles written by Grady Booch in the IEEE Software column 'On Computing' (2012-2016). Plus some bonus material. |
![]() | Telling Our Stories (2010-2014)A collection of articles from the Linda Rising's 'Insights' column (2010-2014). |
![]() | Tools of the Trade (2005-2014)A collection of articles written by Diomidis Spinellis in IEEE Software column 'Tools of the Trade' (2005-2014). |
![]() | On Architecture (2007-2012)A collection of articles written by Grady Booch in IEEE Software columns 'On Architecture' (2007-2012). |
![]() | Design (2001-2009)A collection of articles from the IEEE Software's 'Design' column, edited by Martin Fowler (2001-2005) and Rebecca Wirfs-Brock (2006-2009). Includes contributions from Robert Cecil Martin (Uncle Bob), Kent Beck, Rebecca Parsons, Dave Thomas, Gregor Hohpe, Michael Feathers, Jim Shore, Scott Meyers, Luke Hohmann, Craig Larman, John Daniels, James Newkirk and Alexei Vorontsov. |
![]() | The Loyal Opposition (1998-2009)A collection of articles written by Robert L. Glass in the IEEE Software column 'Loyal Opposition' (1998-2009).. |
Other
![]() | On Everything (1994-2016)A collection of articles written by Grady Booch in IEEE Software columns 'On Architecture' and 'On Computing' (2007-2016). Plus some bonus material. |
![]() | Agile Manifesto Authors (1992-2010)A collection of IEEE Software articles written by authors of Agile Manifesto. 10 of the 17 authors of the 'Manifesto for Agile Software Development' have written for IEEE Software: Kent Beck, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Andrew Hunt, Ron Jeffries, Robert Martin, Steve Mellor, and Dave Thomas. |
A searchable index (title, author, year) of all 4194 IEEE Software articles (excluding table of contents, front covers, commercials).
Common themes: architecture; requirements; design; model; process; testing; programming; tools; quality; management; business; agile; method; language; reuse; object; component; service; pattern; framework; research; security; reliability; performance; usability; distributed; parallel; web; mobile; cloud;

A searchable index of 4256 IEEE Software authors. 788 authors published multiple articles.

Grady Booch | 69 articles |
Christof Ebert | 62 articles |
Robert Glass | 62 articles |
Steve McConnell | 44 articles |
Forrest Shull | 41 articles |
Neil Maiden | 36 articles |
Jeffrey Carver | 33 articles |
Jeffrey Voas | 31 articles |
Alan Davis | 30 articles |
Rebecca Wirfs-Brock | 25 articles |
Rafael Prikladnicki | 24 articles |
Gerard Holzmann | 24 articles |
Warren Harrison | 24 articles |
Jane Cleland-Huang | 22 articles |
Frank Buschmann | 21 articles |
Les Hatton | 20 articles |
Shari Lawrence Pfleeger | 20 articles |
Barry Boehm | 20 articles |
Greg Goth | 19 articles |
Michiel van Genuchten | 18 articles |
Dave Thomas | 18 articles |
Andy Hunt | 16 articles |
Jakob Nielsen | 16 articles |
Sorel Reisman | 16 articles |
Martin Fowler | 15 articles |
Olaf Zimmermann | 14 articles |
Tom DeMarco | 14 articles |
Terry Bollinger | 14 articles |
Donald Reifer | 14 articles |
Birgit Penzenstadler | 13 articles |
Miroslaw Staron | 13 articles |
Bill Curtis | 13 articles |
Karl Dakin | 13 articles |
Michael Felderer | 12 articles |
Rick Kazman | 12 articles |
Victor Basili | 12 articles |
Jan Bosch | 11 articles |
Ahmed Hassan | 11 articles |
Eoin Woods | 11 articles |
Natalia Juristo Juzgado | 11 articles |
Watts Humphrey | 11 articles |
Tony Gorschek | 10 articles |
Daniela Damian | 10 articles |
Tore Dybå | 10 articles |
Diomidis Spinellis | 10 articles |
Laurianne McLaughlin | 10 articles |
Carl Chang | 10 articles |
Meiyappan Nagappan | 9 articles |
David Garlan | 9 articles |
Tim Menzies | 9 articles |
David Card | 9 articles |
Paul Clements | 9 articles |
Magne Jørgensen | 8 articles |
Panagiotis Louridas | 8 articles |
J. Rainsberger | 8 articles |
Michael Jackson | 8 articles |
Ted Lewis | 8 articles |
Davide Falessi | 7 articles |
Xabier Larrucea | 7 articles |
Sarah Gregory | 7 articles |
Phillip Laplante | 7 articles |
Carolyn Seaman | 7 articles |
Thomas Zimmermann | 7 articles |
Rini van Solingen | 7 articles |
Christian Bird | 7 articles |
Mary Shaw | 7 articles |
Mik Kersten | 7 articles |
Laurie Williams | 7 articles |
Gary McGraw | 7 articles |
Margaret-Anne Storey | 7 articles |
Eduardo Santana de Almeida | 7 articles |
Linda Rising | 7 articles |
Karl Reed | 7 articles |
Suzanne Robertson | 7 articles |
Larry Graham | 7 articles |
David Sharon | 7 articles |
Luqi | 7 articles |
Panos Louridas | 6 articles |
Patricia Lago | 6 articles |
Tao Xie | 6 articles |
Michael Cusumano | 6 articles |
Len Bass | 6 articles |
Elaine Weyuker | 6 articles |
Uwe Zdun | 6 articles |
Walt Scacchi | 6 articles |
Darja Smite | 6 articles |
Ian Gorton | 6 articles |
Chris Kemerer | 6 articles |
Lars Mathiassen | 6 articles |
Annie Kuntzmann-Combelles | 6 articles |
Ian Alexander | 6 articles |
Jeff Patton | 6 articles |
Terry Costlow | 6 articles |
Wolfgang Strigel | 6 articles |
Stephen Mellor | 6 articles |
Ann Miller | 6 articles |
Ware Myers | 6 articles |
Brian Lawrence | 6 articles |
H. Dieter Rombach | 6 articles |
Karen Mackey | 6 articles |
Roger Pressman | 6 articles |
Paul Oman | 6 articles |
Brittany Johnson | 5 articles |
Lorin Hochstein | 5 articles |
Martin Robillard | 5 articles |
James Herbsleb | 5 articles |
Nenad Medvidovic | 5 articles |
David Lorge Parnas | 5 articles |
Zeljko Obrenovic | 5 articles |
Norbert Seyff | 5 articles |
Juha Savolainen | 5 articles |
Cesare Pautasso | 5 articles |
Frank van der Linden | 5 articles |
Philip Johnson | 5 articles |
Maurizio Morisio | 5 articles |
James Whittaker | 5 articles |
John Favaro | 5 articles |
Thomas Hilburn | 5 articles |
Larry Constantine | 5 articles |
John McGregor | 5 articles |
William Everett | 5 articles |
Marvin Zelkowitz | 5 articles |
Robert Martin | 5 articles |
Norman Schneidewind | 5 articles |
Michael Lutz | 5 articles |
Richard Fairley | 5 articles |
John Musa | 5 articles |
Melody Moore | 5 articles |
Alan Karp | 5 articles |
Tomoo Matsubara | 5 articles |
Keith Miller | 5 articles |
Mikio Aoyama | 5 articles |
James Sanders | 5 articles |
Ben Shneiderman | 5 articles |
Alan Chmura | 5 articles |
Pei Hsia | 5 articles |
Harlan Mills | 5 articles |
Elliot Chikofsky | 5 articles |
Ricardo Colomo Palacios | 4 articles |
Jürgen Cito | 4 articles |
Ye Yang | 4 articles |
Robert Blumen | 4 articles |
Ipek Ozkaya | 4 articles |
Jon Whittle | 4 articles |
Bran Selic | 4 articles |
Michael Lyu | 4 articles |
Annie Combelles | 4 articles |
Helena Holmström Olsson | 4 articles |
Casper Lassenius | 4 articles |
Walid Maalej | 4 articles |
Anne-Françoise Rutkowski | 4 articles |
Xavier Franch | 4 articles |
Michael Unterkalmsteiner | 4 articles |
Barbara Paech | 4 articles |
Nancy Mead | 4 articles |
Lionel Briand | 4 articles |
Stefan Tilkov | 4 articles |
Dirk Muthig | 4 articles |
Qinghua Lu | 4 articles |
Xiwei Xu | 4 articles |
Ana María Moreno | 4 articles |
Aiko Yamashita | 4 articles |
Jörg Dörr | 4 articles |
Sarah Beecham | 4 articles |
Raghvinder Sangwan | 4 articles |
Sven Johann | 4 articles |
Gregor Hohpe | 4 articles |
Israel Mojica Ruiz | 4 articles |
Thorsten Berger | 4 articles |
Steffen Dienst | 4 articles |
Erran Carmel | 4 articles |
Chris Verhoef | 4 articles |
Abram Hindle | 4 articles |
Gail Murphy | 4 articles |
David Rosenblum | 4 articles |
Anna Börjesson Sandberg | 4 articles |
Muhammad Ali Babar | 4 articles |
Olly Gotel | 4 articles |
Wolfram Schulte | 4 articles |
Kevlin Henney | 4 articles |
Johanna Rothman | 4 articles |
Judith Segal | 4 articles |
Reidar Conradi | 4 articles |
Spencer Rugaber | 4 articles |
Arthur Pyster | 4 articles |
Diane Kelly | 4 articles |
Douglas Schmidt | 4 articles |
Linda Northrop | 4 articles |
Akif Günes Koru | 4 articles |
Khaled El Emam | 4 articles |
Janice Singer | 4 articles |
William Robinson | 4 articles |
Stan Rifkin | 4 articles |
Johann Rost | 4 articles |
Art Sedighi | 4 articles |
Edward Yourdon | 4 articles |
Wojtek Kozaczynski | 4 articles |
Jorge Díaz-Herrera | 4 articles |
Deependra Moitra | 4 articles |
Jane Huffman Hayes | 4 articles |
Nancy Eickelmann | 4 articles |
Wei-Tek Tsai | 4 articles |
David Weiss | 4 articles |
Ismael Ciordia | 4 articles |
Philipp Janert | 4 articles |
Maarten Boasson | 4 articles |
Capers Jones | 4 articles |
Tim Lister | 4 articles |
Søren Lauesen | 4 articles |
Karl Wiegers | 4 articles |
Nazim Madhavji | 4 articles |
Alan Brown | 4 articles |
Richard Linger | 4 articles |
Stephen Andriole | 4 articles |
Sadahiro Isoda | 4 articles |
George Trubow | 4 articles |
Cleyton de Magalhães | 3 articles |
Balachandran Seetharam | 3 articles |
V. Mani | 3 articles |
Alexander Egyed | 3 articles |
Satish Chandra | 3 articles |
Willem-Jan van den Heuvel | 3 articles |
David Redmiles | 3 articles |
Markus Borg | 3 articles |
Emad Shihab | 3 articles |
Igor Steinmacher | 3 articles |
Andreas Wortmann | 3 articles |
André van der Hoek | 3 articles |
George Fairbanks | 3 articles |
Antonio Martini | 3 articles |
Claus Pahl | 3 articles |
Nicolli Rios | 3 articles |
Camilo Castellanos | 3 articles |
Darío Correal | 3 articles |
Clemente Izurieta | 3 articles |
Felienne Hermans | 3 articles |
Adam Trendowicz | 3 articles |
Eric Yu | 3 articles |
Aurora Vizcaíno | 3 articles |
Cleidson de Souza | 3 articles |
Anita Carleton | 3 articles |
Dag Sjøberg | 3 articles |
Thomas Fritz | 3 articles |
Nate Black | 3 articles |
Christoph Becker | 3 articles |
Andrew Gacek | 3 articles |
Hans Christian Benestad | 3 articles |
Kjetil Strand | 3 articles |
Maria Paasivaara | 3 articles |
Edaena Salinas | 3 articles |
Maleknaz Nayebi | 3 articles |
Guenther Ruhe | 3 articles |
Foutse Khomh | 3 articles |
Nir Kshetri | 3 articles |
Leticia Duboc | 3 articles |
James Lewis | 3 articles |
Stephany Bellomo | 3 articles |
Sjaak Brinkkemper | 3 articles |
Bertrand Meyer | 3 articles |
Hans Aerts | 3 articles |
Lawrence Peters | 3 articles |
Adam Welc | 3 articles |
Steve Counsell | 3 articles |
Helen Sharp | 3 articles |
Jo Erskine Hannay | 3 articles |
Brendan Murphy | 3 articles |
Franck Fleurey | 3 articles |
Matti Rossi | 3 articles |
Harry Sneed | 3 articles |
Gorka Gallardo | 3 articles |
Andriy Miranskyy | 3 articles |
Ian Sommerville | 3 articles |
Dongmei Zhang | 3 articles |
Rebecca Parsons | 3 articles |
Rich Hilliard | 3 articles |
Lianping Chen | 3 articles |
Pedro Reales Mateo | 3 articles |
Tommi Mikkonen | 3 articles |
Daniel Germán | 3 articles |
Heiko Koziolek | 3 articles |
Neil Harrison | 3 articles |
Walker Royce | 3 articles |
Claudia Ayala | 3 articles |
Hans van Vliet | 3 articles |
Ivar Jacobson | 3 articles |
Charles Symons | 3 articles |
Nikolai Tillmann | 3 articles |
Xiping Song | 3 articles |
Kumiyo Nakakoji | 3 articles |
Markus Völter | 3 articles |
Kurt Wallnau | 3 articles |
Yuefeng Zhang | 3 articles |
Dennis Smith | 3 articles |
Grigori Melnik | 3 articles |
Lan Cao | 3 articles |
Gerhard Fischer | 3 articles |
Richard Turner | 3 articles |
Alan MacCormack | 3 articles |
Bill Crandall | 3 articles |
Dewayne Perry | 3 articles |
David Notkin | 3 articles |
Brian Kernighan | 3 articles |
Hugh Robinson | 3 articles |
Gargi Keeni | 3 articles |
Edward Weller | 3 articles |
Daniel Berry | 3 articles |
Jørgen Bøegh | 3 articles |
Jörg Rech | 3 articles |
Scott Ambler | 3 articles |
Anthony Akins | 3 articles |
Roel Wieringa | 3 articles |
Joanne Hale | 3 articles |
D. Ross Jeffery | 3 articles |
Randy Smith | 3 articles |
Danna Voth | 3 articles |
Paolo Donzelli | 3 articles |
James Bach | 3 articles |
Todd Little | 3 articles |
Richard Thayer | 3 articles |
Mordechai Ben-Menachem | 3 articles |
Ali Mili | 3 articles |
Benjamin Alfonsi | 3 articles |
Adam Porter | 3 articles |
Jeff Tian | 3 articles |
Dale Strok | 3 articles |
Ashton Applewhite | 3 articles |
Luke Hohmann | 3 articles |
Nancy Leveson | 3 articles |
Narain Gehani | 3 articles |
Nicholas Zvegintzov | 3 articles |
Klaus Pohl | 3 articles |
Ian Thomas | 3 articles |
Frank McGarry | 3 articles |
Leonard Bass | 3 articles |
Anthony Hall | 3 articles |
Mark Paulk | 3 articles |
Shirley Becker | 3 articles |
Alan Hevner | 3 articles |
Mohamed Fayad | 3 articles |
Timothy Shimeall | 3 articles |
Pamela Zave | 3 articles |
Edmund Arranga | 3 articles |
Mark Christensen | 3 articles |
James Coplien | 3 articles |
Dolores Wallace | 3 articles |
Tsuneo Yamaura | 3 articles |
Matthias Jarke | 3 articles |
Robert Charette | 3 articles |
Brad Cox | 3 articles |
Taghi Khoshgoftaar | 3 articles |
Krishna Kavi | 3 articles |
Tarek Abdel-Hamid | 3 articles |
Jawed Siddiqi | 3 articles |
Shinichi Honiden | 3 articles |
Rodney Bell | 3 articles |
Guillermo Arango | 3 articles |
Robert Poston | 3 articles |
Robert Grady | 3 articles |
Susan Gerhart | 3 articles |
Gail Kaiser | 3 articles |
Jack Dongarra | 3 articles |
David Luckham | 3 articles |
Steven Reiss | 3 articles |
Piero Torrigiani | 3 articles |
Shreekant Thakkar | 3 articles |
Theodore Baker | 3 articles |
Brent Hailpern | 3 articles |
Ali Shahrokni | 2 articles |
Houari Sahraoui | 2 articles |
Jessica Lin | 2 articles |
Jill Dicker | 2 articles |
Collin Green | 2 articles |
Maggie Hodges | 2 articles |
Bradley Schmerl | 2 articles |
Alexander Serebrenik | 2 articles |
Tevfik Bultan | 2 articles |
Ben Holtz | 2 articles |
Henry Muccini | 2 articles |
Rodrigo Souza | 2 articles |
Lionel van den Berg | 2 articles |
Hadi Hemmati | 2 articles |
David Roberts | 2 articles |
Geir Kjetil Hanssen | 2 articles |
Karen Holtzblatt | 2 articles |
Jordi Cabot | 2 articles |
D. Richard Kuhn | 2 articles |
Stéphane Ducasse | 2 articles |
Michael Weyrich | 2 articles |
Robert Feldt | 2 articles |
Philip Winston | 2 articles |
Marco Aurélio Gerosa | 2 articles |
Minghui Zhou | 2 articles |
Kieran Conboy | 2 articles |
Vinay Kulkarni | 2 articles |
Ruth Breu | 2 articles |
Valéria Cesário Times | 2 articles |
André Magno Costa de Araújo | 2 articles |
Jin Guo | 2 articles |
Björn Lundell | 2 articles |
Jinghui Cheng | 2 articles |
Boris Pérez | 2 articles |
Robert Ramac | 2 articles |
Alexia Pacheco | 2 articles |
Rodrigo Oliveira Spínola | 2 articles |
Darius Sas | 2 articles |
Ilaria Pigazzini | 2 articles |
Alfredo Goldman | 2 articles |
Premkumar Devanbu | 2 articles |
Michael Pradel | 2 articles |
Eduard Groen | 2 articles |
Jens Weber | 2 articles |
Elgar Fleisch | 2 articles |
María Cecilia Bastarrica | 2 articles |
Federico Ciccozzi | 2 articles |
Laura Dabbish | 2 articles |
Kadir Herkiloglu | 2 articles |
Margaret Burnett | 2 articles |
Igor Wiese | 2 articles |
Erin Harper | 2 articles |
Jeroen van Genuchten | 2 articles |
Brian Fitzgerald | 2 articles |
Filippo Lanubile | 2 articles |
Nils Brede Moe | 2 articles |
Ina Schieferdecker | 2 articles |
Leonardo Teixeira Passos | 2 articles |
Kenichi Matsumoto | 2 articles |
Alistair Mavin | 2 articles |
John Richards | 2 articles |
Antero Taivalsaari | 2 articles |
Weiyi Shang | 2 articles |
Marcelo Cataldo | 2 articles |
Giovanni Cantone | 2 articles |
Javier Garzás | 2 articles |
Alejandro Valdezate | 2 articles |
Fabiano Dalpiaz | 2 articles |
Giuliano Antoniol | 2 articles |
Serge Haziyev | 2 articles |
Manfred Broy | 2 articles |
Ciera Jaspan | 2 articles |
Jacek Czerwonka | 2 articles |
Stefanie Betz | 2 articles |
Anna Sandberg | 2 articles |
Michael Waterman | 2 articles |
Kim Moir | 2 articles |
Giovanni Beltrame | 2 articles |
Gregory Vial | 2 articles |
Ricardo Terra | 2 articles |
Wenying Nan Sun | 2 articles |
Claude Laporte | 2 articles |
John Hudepohl | 2 articles |
Jairus Hihn | 2 articles |
Han Schaminée | 2 articles |
Stefania Gnesi | 2 articles |
Murat Erder | 2 articles |
Pierre Pureur | 2 articles |
Thomas Ostrand | 2 articles |
Rabih Bashroush | 2 articles |
Tony Savor | 2 articles |
Xiaofeng Wang | 2 articles |
Romain Robbes | 2 articles |
Mike Amundsen | 2 articles |
Nicolai Josuttis | 2 articles |
Thomas LaToza | 2 articles |
Alexandre Lazaretti Zanatta | 2 articles |
Letícia Machado | 2 articles |
Sabrina Marczak | 2 articles |
John Barr | 2 articles |
John Noll | 2 articles |
Charles Anderson | 2 articles |
Eltjo Poort | 2 articles |
Sung Deok Cha | 2 articles |
Lambros Charissis | 2 articles |
Jens Nahm | 2 articles |
Juho Lindman | 2 articles |
Murray Cantor | 2 articles |
Luiz Fernando Capretz | 2 articles |
Michael Whalen | 2 articles |
Darren Cofer | 2 articles |
Charalampos Manifavas | 2 articles |
Juha Itkonen | 2 articles |
Tor Erlend Fægri | 2 articles |
Hammad Khalid | 2 articles |
Jonathan Maletic | 2 articles |
Yan Liu | 2 articles |
Jeff Meyerson | 2 articles |
Daniel Port | 2 articles |
Simo Mäkinen | 2 articles |
Munawar Hafiz | 2 articles |
Girish Suryanarayana | 2 articles |
Ganesh Samarthyam | 2 articles |
Mayy Habayeb | 2 articles |
Johannes Thones | 2 articles |
Emerson Murphy-Hill | 2 articles |
Peter Sommerlad | 2 articles |
William Opdyke | 2 articles |
Luigi Buglione | 2 articles |
Atif Memon | 2 articles |
Patrick Mäder | 2 articles |
Veli-Pekka Eloranta | 2 articles |
Peter Rigby | 2 articles |
![]() | Editor: Z. Obrenovic This book contains a selection of 1000 quotes from IEEE Software. IEEE Software is a leading software engineering magazine with a very rich history. Since 1984, many of the leading software engineering professionals from the IEEE Software history website. Visit this site to find more details about IEEE Software and its history. Selected quotes are not intended to serve as a comprehensive overview of the history of software engineering. Rather, the book is designed as a 'coffee table book'. It is intended for casual reading, offering interesting, educative, thought-provoking, and sometimes controversial quotes. |
A searchable selection of 1004 interesting, educative, thought-provoking, or contraversial quotes.

"New wiring transformed ENIAC into a versatile stored-program computer. Rewiring Internet of Things infrastructures into a general-purpose computing fabric can similarly change how modern computation interfaces with our environment." (Software-Engineering the Internet of Things, IEEE Software 2017, no. 1, p. 4) | |
"The proper alignment of requirements engineering and testing (RET) can be key to software's success. Three practices can provide effective RET alignment: using test cases as requirements, harvesting trace links, and reducing distances between requirements engineers and testers." (Elizabeth Bjarnason, Markus Borg, Aligning Requirements and Testing: Working Together toward the Same Goal, IEEE Software 2017, no. 1, p. 20) | |
"No consolidated set of software engineering best practices for the Internet of Things (IoT) has yet emerged. Too often, the landscape resembles the Wild West, with unprepared programmers putting together IoT systems in ad hoc fashion and throwing them out into the market, often poorly tested. In addition, the academic sector is in danger of fragmenting into specialized, often unrelated research areas." (Xabier Larrucea, Annie Combelles, John Favaro, Kunal Taneja, Software Engineering for the Internet of Things, IEEE Software 2017, no. 1, p. 24) | |
"The Internet of Things (IoT) is a challenging combination of distribution and heterogeneity. A number of software engineering solutions address those challenges in isolation, but few solutions tackle them in combination, which poses a set of concrete challenges. The ThingML (Internet of Things Modeling Language) approach attempts to address those challenges." (Brice Morin, Nicolas Harrand, Franck Fleurey, Model-Based Software Engineering to Tame the IoT Jungle, IEEE Software 2017, no. 1, p. 30) | |
"Despite the progress in Internet of Things (IoT) research, a general software engineering approach for systematic development of IoT systems and applications is still missing. A synthesis of the state of the art in the area can help frame the key abstractions related to such development." (Key Abstractions for IoT-Oriented Software Engineering, IEEE Software 2017, no. 1, p. 38) | |
"Mission-critical Internet of Things (MC-IoT) systems involve heterogeneous things from both the digital and physical worlds. They run applications whose failure might cause significant and possibly dramatic consequences, such as interruption of public services, significant business losses, and deterioration of enterprise operations. These applications require not only high availability, reliability, safety, and security but also regulatory compliance, scalability, and serviceability. At the same time, they're exposed to various facets of uncertainty, spanning from software and hardware variability to mission planning and execution in possibly unforeseeable environments. Model-driven engineering can potentially meet these challenges and better enable the adoption of MC-IoT systems." (Federico Ciccozzi, Ivica Crnkovic, Davide Di Ruscio, Ivano Malavolta, Patrizio Pelliccione, Romina Spalazzese, Model-Driven Engineering for Mission-Critical IoT Systems, IEEE Software 2017, no. 1, p. 46) | |
"A roadmap from today's cloud-centric, data-centric IoT systems to the Programmable World highlights the technical challenges that deserve to be part of developer education and deserve deeper investigation beyond those IoT topics that receive the most attention today." (Antero Taivalsaari, Tommi Mikkonen, A Roadmap to the Programmable World: Software Challenges in the IoT Era, IEEE Software 2017, no. 1, p. 72) | |
"Microservices are in many ways a best-practice approach for realizing SOA." (Cesare Pautasso, Olaf Zimmermann, Mike Amundsen, James Lewis, Nicolai Josuttis, Microservices in Practice, Part 1: Reality Check and Service Design, IEEE Software 2017, no. 1, p. 91) | |
"Just as physicists infer dark matter's presence on the basis of its gravitational effects on visible matter, we can conceptualize a 'darkitecture' that outlines visible software architectures." (Darkitecture: The Reality Skirted by Architecture, IEEE Software 2017, no. 1, p. 103) | |
"Computer games are rich, complex, and often large-scale software applications. They're a significant, interesting, and often compelling domain for innovative research in software engineering techniques and technologies. Computer games are progressively changing the everyday world in many positive ways. Game developers, whether focusing on entertainment market opportunities or game-based applications in nonentertainment domains such as education, healthcare, defense, or scientific research (that is, serious games), thus share a common interest in how best to engineer game software." (Practices and Technologies in Computer Game Software Engineering, IEEE Software 2017, no. 1, p. 110) | |
"'What is Infrastructure as code? There are a lot of ways to answer that. One is that automation is the “CALM” of DevOps. CALM stands for culture, automation, learning, and measurement. Infrastructure as Code is about the automation piece. That's how people who have been doing DevOps for a while approach it, using tools like Chef, Puppet, Ansible, and SaltStack. The philosophy behind this is that infrastructure has become like data: the physical layer has been abstracted. It's become software, as opposed to being a physical thing. We can use infrastructure tools the same way we use software. We can bring in best practices from software development, such as continuous integration [CI], test-driven development, and continuous delivery [CD] version control systems, and apply them to managing our infrastructure. " (Kief Morris on Infrastructure as Code, IEEE Software 2017, no. 1, p. 117) | |
"Being a good software architect has never been easy. Changes in the software industry are making the job even more challenging. The key drivers are the rising role of software in systems and their operation; more emphasis on reuse, agility, and testability during software development; and several quality elements increasingly affected by architectural choices." (The Changing Role of the Software Architect, IEEE Software 2016, no. 6, p. 4) | |
"Documenting the time dimension part of your architecture might look like extra work. However, anticipation should be a large part of your job as an architect, anyway. If you communicate your anticipation as an evolution viewpoint or architecture roadmap, your architecture description will stay valid longer. And, you'll have a ready answer when stakeholders ask how you've addressed their change and planning concerns." (Just Enough Anticipation: Architect Your Time Dimension, IEEE Software 2016, no. 6, p. 11) | |
"As new and exciting healthcare applications arise that use smart technologies, the Internet of Things, data analytics, and other technologies, a critical problem is emerging: the potential loss of caring. Although these exciting technologies have improved patient care by allowing for better assessment, surveillance, and treatment, their use can disassociate the caregiver from the patient, essentially removing the "care" from healthcare. So, you can view caring as an undiscovered -ility that ranks at least as important as other well-known -ilities in healthcare systems. The Web Extra at https://youtu.be/bDyZ2geRyJE is an audio podcast of author Phil Laplante reading this article." (Nancy Laplante, Phillip A. Laplante, Jeffrey Voas, Caring: An Undiscovered "Super -ility" of Smart Healthcare, IEEE Software 2016, no. 6, p. 16) | |
"When customers visit a Brazilian e-commerce site and search for a product, they're likely using software developed by Neemu, a start-up created in Manaus, a city in the heart of the Amazon rainforest. Nowadays, millions of people throughout Brazil use this software, which demonstrates alternative economic development in Amazonia that has low impact on the environment." (Edleno Silva de Moura, Mauro Rojas Herrera, Leonardo Santos, Tayana Conte, When Software Impacts the Economy and Environment, IEEE Software 2016, no. 6, p. 23) | |
"Forty years ago, Thomas McCabe introduced his famous cyclomatic complexity (CC) metric. Today, it’s still one of the most popular and meaningful measurements for analyzing code. " (Christof Ebert, James Cain, Cyclomatic Complexity, IEEE Software 2016, no. 6, p. 27) | |
"Internet scale, the increasing rate of technology evolution, and the broad adoption of lean and agile methods have triggered a profound change in not only application and infrastructure architectures but also the software architect's roles and responsibilities." (Gregor Hohpe, Ipek Ozkaya, Uwe Zdun, Olaf Zimmermann, The Software Architect's Role in the Digital Age, IEEE Software 2016, no. 6, p. 30) | |
"The popularity of agile methods such as Scrum and Kanban, with their clear focus on team collaboration, threatens many roles traditionally assigned to individual experts. Some organizations are even challenging the raison d'être of the software architect role. However, researchers' experiences developing connected-vehicle software revealed two reasons why successful projects still often assign architecture-related responsibilities to individual experts acting as software architects. First, the experts help effectively manage complexity; second, they act as knowledge multipliers when development must scale up." (Soren Frey, Lambros Charissis, Jens Nahm, How Software Architects Drive Connected Vehicles, IEEE Software 2016, no. 6, p. 41) | |
"Software architects are key assets for successful development projects. ... researchers investigated how architects at Ericsson were organized, their roles and responsibilities, and the effort they spent guarding and governing a large-scale legacy product developed by teams at multiple locations. ... the architectural decisions were centralized to a team of architects. The team extensively used code reviews to not only check the code's state but also reveal defects that could turn into maintainability problems. ... the effort architects spend designing architecture, guarding its integrity and evolvability, and mentoring development teams is directly related to team maturity." (Ricardo Britto, Darja Smite, Lars-Ola Damm, Software Architects in Large-Scale Distributed Projects: An Ericsson Case Study, IEEE Software 2016, no. 6, p. 48) | |
"Owing to the increasing amount of computation in electromechanical devices, the role of software architect is often found in embedded-systems development. However, because computer scientists usually have limited knowledge of embedded-systems concepts such as controllers, actuators, and buses, embedded-software architects are often engineers with no education in software architecture basics, which is normally a topic in computer science courses." (Pablo Oliveira Antonino, Andreas Morgenstern, Thomas Kuhn, Embedded-Software Architects: It's Not Only about the Software, IEEE Software 2016, no. 6, p. 56) | |
"Software architects don't just design architecture components or champion architecture qualities; they often must guide and harmonize the entire community of project stakeholders. The community-shepherding aspects of the architect's role have been gaining attention, given the increasing importance of complex 'organizational rewiring' scenarios such as DevOps, open source strategies, transitions to agile development, and corporate acquisitions" (Damian A. Tamburri, Rick Kazman, Hamed Fahimi, The Architect's Role in Community Shepherding, IEEE Software 2016, no. 6, p. 70) | |
"As software systems have evolved, so has software architecture, with practices growing to meet each era's new challenges. The next phase of evolution--intelligent connected systems--promises to be an exciting time for software architects." (Software Architecture in a Changing World, IEEE Software 2016, no. 6, p. 94) | |
"Huge industries, from the automotive and healthcare industries to finance and entertainment, center increasingly on software. Managing such a software business is tough because software's ethereal nature offers infinite lucrative or catastrophic choices. The main things to manage are the business model, the execution strategy, the product or service, and the development process." (Managing a Software Business, IEEE Software 2016, no. 5, p. 4) | |
"Computational humor is a technically intriguing problem. And, in the journey to understand the theories, mechanisms, and algorithms that discern and define funny, we learn something about ourselves and what it means to be human." (No Laughing Matter, IEEE Software 2016, no. 5, p. 9) | |
"Developers of systems of systems (SoSs) face challenges such as heterogeneous, inconsistent, and changing elements; continuous evolution and deployment; decentralized control; and inherently conflicting and often unknowable requirements." (Michael Vierhauser, Rick Rabiser, Paul Grunbacher, Monitoring Requirements in Systems of Systems, IEEE Software 2016, no. 5, p. 22) | |
"Simulation software is important to our understanding of the universe. The intrinsic multiphysics aspects are spiced with a range of temporal scales and spatial scales, both of which cover more digits than are available in the standard hardware." (Simon Portegies Zwart, Jeroen Bedorf, Creating the Virtual Universe, IEEE Software 2016, no. 5, p. 25) | |
"The software architecture pendulum is swinging away from traditional practices and toward agile and continuous practices. To be successful in this new world, architects should emphasize products over projects, drive architectural decisions, understand code, and communicate and collaborate effectively with delivery teams." (Murat Erder, Pierre Pureur, What's the Architect's Role in an Agile, Cloud-Centric World?, IEEE Software 2016, no. 5, p. 30) | |
"Small and medium-sized enterprises depend heavily on their capability to differentiate themselves from their competitors through innovative approaches. Innovation management assumes that systematically applying strategies combined with appropriate methods and tools increases the ability to build innovative products and services. To leverage their competitive capabilities, small companies involved in software development must combine innovation management and software engineering practices." (Ricardo Eito-Brun, Miguel-Angel Sicilia, Innovation-Driven Software Development: Leveraging Small Companies' Product-Development Capabilities, IEEE Software 2016, no. 5, p. 38) | |
"Software providers differ widely in productivity and quality. Traditional means of evaluation, such as CVs and client references, fail to separate the competent from the incompetent. Trialsourcing--having multiple providers create sample pieces of software for evaluation--can help clients select providers." (Better Selection of Software Providers through Trialsourcing, IEEE Software 2016, no. 5, p. 48) | |
"Most companies have learned that cost calculations for offshore outsourcing shouldn't be limited to hourly wages. Looking at salaries alone, you could naively hope for cost reductions of up to 90 percent. However, don't underestimate the cost of knowledge transfer, travel, attrition, miscommunication, and so on. ... The offshore team's true hourly costs took three years to become comparable with those of the in-house team. Getting close to the break-even point took five years. Learning costs due to offshore employee turnover were the primary cost factor to get under control." (Darja Smite, Rini van Solingen, What's the True Hourly Cost of Offshoring?, IEEE Software 2016, no. 5, p. 60) | |
"In machine learning, a computer first learns to perform a task by studying a training set of examples. The computer then performs the same task with data it hasn't encountered before." (Panos Louridas, Christof Ebert, Machine Learning, IEEE Software 2016, no. 5, p. 110) | |
"Too many tests is the same as not enough tests. In both cases it's suboptimal. Whether you waste time debugging because you don't have enough tests or you waste time maintaining tests that don't need to be there, at the end of the day both of those things amount to waste." (Jay Fields on Working with Unit Tests, IEEE Software 2016, no. 5, p. 117) | |
"Mobile apps increasingly constitute complete ecosystems to support businesses such as farming. ... Having the right data at the right time at the right place is crucial for high user productivity and a good user experience. In particular, offline capability is important but difficult. " (Susanne Braun, Ralf Carbon, Matthias Naab, Piloting a Mobile-App Ecosystem for Smart Farming, IEEE Software 2016, no. 4, p. 9) | |
"Many organizations use business process models to document business operations and formalize business requirements in software-engineering projects. The Business Process Model and Notation (BPMN), a specification by the Object Management Group, has evolved into the leading standard for process modeling. One challenge is BPMN's complexity: it offers a huge variety of elements and often several representational choices for the same semantics." (Henrik Leopold, Jan Mendling, Oliver Gunther, Learning from Quality Issues of BPMN Models from Industry, IEEE Software 2016, no. 4, p. 26) | |
"In the mobile-app ecosystem, user ratings of apps (a measure of user perception) are extremely important because they correlate strongly with downloads and hence revenue." (Hammad Khalid, Meiyappan Nagappan, Ahmed E. Hassan, Examining the Relationship between FindBugs Warnings and App Ratings, IEEE Software 2016, no. 4, p. 34) | |
"A proposed data-driven software quality improvement method has three elements. First, the downstream Customer Quality Metric (CQM) quantifies quality as customers perceive it. On the basis of data collected after systems are deployed, it measures how serious defects affect customers. Second, the upstream Implementation Quality Index (IQI) measures the effectiveness of error removal during development. IQI predicts future customer quality; it has a positive correlation with CQM. Finally, prioritization tools and techniques help focus limited development resources on the riskiest files in the code." (Randy Hackbarth, Audris Mockus, John Palframan, Ravi Sethi, Improving Software Quality as Customers Perceive It, IEEE Software 2016, no. 4, p. 40) | |
"Measurement of software security is an ongoing research field. Privacy is also becoming an imperative target as social networking and ubiquitous computing evolve and users exchange high volumes of personal information. However, security and privacy alone don't guarantee proper data protection; software must also be dependable." (George Hatzivasilis, Ioannis Papaefstathiou, Charalampos Manifavas, Software Security, Privacy, and Dependability: Metrics and Measurement, IEEE Software 2016, no. 4, p. 46) | |
"Dynamic program analysis, such as with profiling, tracing, and bug-finding tools, is essential for software engineering. Unfortunately, implementing dynamic analysis for managed languages such as Java is unduly difficult and error prone because the runtime environments provide only complex low-level mechanisms." (Yudi Zheng, Stephen Kell, Lubomir Bulej, Haiyang Sun, Walter Binder, Comprehensive Multiplatform Dynamic Program Analysis for Java and Android, IEEE Software 2016, no. 4, p. 55) | |
"A well-known adage is 'diversity brings innovation.' Diversity can be in culture, thinking, discipline, gender, and many more aspects. The result is the same: the chances for creating innovation in a given context increase when diversity is involved. To some extent, this principle should also hold for gender diversity in software teams. Achieving gender diversity in IT-related fields has been a goal for decades, but still, too few women choose such a career. But what skills or traits assigned to the feminine role bring concrete advantages to software teams?" (Maryam Razavian, Patricia Lago, Feminine Expertise in Architecting Teams, IEEE Software 2016, no. 4, p. 64) | |
"Users continue to stumble upon software bugs, despite developers' efforts to build and test high-quality software. Although traditional testing and quality assurance techniques are extremely valuable, software testing should pay more attention to exploration. Exploration can directly apply knowledge and learning to the core of industrial software testing, revealing more relevant bugs earlier." (Juha Itkonen, Mika V. Mantyla, Casper Lassenius, Test Better by Exploring: Harnessing Human Skills and Knowledge, IEEE Software 2016, no. 4, p. 90) | |
"The next generation of software-intensive systems will be taught instead of programmed. This poses considerable pragmatic challenges in how we develop, deliver, and evolve them." (It Is Cold. And Lonely., IEEE Software 2016, no. 3, p. 7) | |
"Following certain best practices for visual communication can help bridge the gap between IT architects and business stakeholders. These practices stem from disciplines such as psychology, graphic design, communication science, and cartooning." (Jochem Schulenklopper, Eelco Rommes, Why They Just Don't Get It: Communicating about Architecture with Business Stakeholders, IEEE Software 2016, no. 3, p. 13) | |
"The emerging DevOps movement emphasizes development and operations staff working together as early as possible--sharing tools, processes, and practices that smooth the production path." (Operational: The Forgotten Architectural View, IEEE Software 2016, no. 3, p. 20) | |
"Building a secure system requires proactive, rigorous analysis of the threats to which it might be exposed, followed by systematic transformation of those threats into security-related requirements." (Jane Cleland-Huang, Tamara Denning, Tadayoshi Kohno, Forrest Shull, Samuel Weber, Keeping Ahead of Our Adversaries, IEEE Software 2016, no. 3, p. 24) | |
"DevOps aims to reduce the time between committing a system change and placing the change into normal production, while ensuring high quality." (Liming Zhu, Len Bass, George Champlin-Scharff, DevOps and Its Practices, IEEE Software 2016, no. 3, p. 32) | |
"Modern software-based services are implemented as distributed systems with complex behavior and failure modes. Many large tech organizations are using experimentation to verify such systems' reliability. Netflix engineers call this approach chaos engineering." (Ali Basiri, Niosha Behnam, Ruud de Rooij, Lorin Hochstein, Luke Kosewski, Justin Reynolds, Casey Rosenthal, Chaos Engineering, IEEE Software 2016, no. 3, p. 35) | |
"When DevOps started gaining momentum in the software industry, one of the first service-based architectural styles to be introduced, be applied in practice, and become popular was microservices. Migrating monolithic architectures to cloud-native architectures such as microservices reaps many benefits, such as adaptability to technological changes and independent resource management for different system components." (Armin Balalaie, Abbas Heydarnoori, Pooyan Jamshidi, Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture, IEEE Software 2016, no. 3, p. 42) | |
"Wotif Group used DevOps principles to recover from the downward spiral of manual release activity that many IT departments face. Its approach involved the idea of 'making it easy to do the right thing.' By defining the right thing (deployment standards) for development and operations teams and making it easy to adopt, Wotif drastically improved the average release cycle time." (Matt Callanan, Alexandra Spillane, DevOps: Making It Easy to Do the Right Thing, IEEE Software 2016, no. 3, p. 53) | |
"Interconnected computing systems in various forms will soon permeate our lives, realizing the Internet of Things (IoT) and letting us enjoy novel, enhanced services that promise to improve our everyday life. Nevertheless, this new reality introduces significant challenges in terms of performance, scaling, usability, and interoperability. Leveraging the benefits of service-oriented architectures (SOAs) can help alleviate many of the issues that developers, implementers, and users alike must face in the context of the IoT." (Konstantinos Fysarakis, Damianos Mylonakis, Charalampos Manifavas, Ioannis Papaefstathiou, Node.DPWS: Efficient Web Services for the Internet of Things, IEEE Software 2016, no. 3, p. 60) | |
"With the increasing importance, size, and complexity of automated test suites, the need exists for suitable methods and tools to develop, assess the quality of, and maintain test code (scripts) in parallel with regular production (application) code." (Vahid Garousi, Michael Felderer, Developing, Verifying, and Maintaining High-Quality Automated Test Scripts, IEEE Software 2016, no. 3, p. 68) | |
"Building on lean and agile practices, DevOps means end-to-end automation in software development and delivery. Hardly anybody will be able to approach it with a cookbook-style approach, but most developers will benefit from better connecting the previously isolated silos of development and operations. Many DevOps tools exist that can help them do this." (Christof Ebert, Gorka Gallardo, Josune Hernantes, Nicolas Serrano, DevOps, IEEE Software 2016, no. 3, p. 94) | |
"Different ages of humanity have required different modes of thinking. These modes aren't only reflections of the particular circumstances of life in each age; they're also projections of the forces that propel us to the next." (The Computational Human, IEEE Software 2016, no. 2, p. 8) | |
"A software retrofit can address problems of business-critical systems that are no longer maintainable." (Software Retrofit in High-Availability Systems: When Uptime Matters, IEEE Software 2016, no. 2, p. 11) | |
"Naming conventions affect the readability of your code and the ease with which you can find your way around when you're reviewing that code. Naming conventions aren't meant to help the compiler. A compiler has no trouble distinguishing names, no matter how long, short, or obscure they are. But to us humans, they can matter a great deal." (Code Clarity, IEEE Software 2016, no. 2, p. 22) | |
"Software engineering for big data systems is complex and faces challenges including pervasive distribution, write-heavy workloads, variable request loads, computation-intensive analytics, and high availability." (Ian Gorton, Ayse Basar Bener, Audris Mockus, Software Engineering for Big Data Systems, IEEE Software 2016, no. 2, p. 32) | |
"Conventional horizontal evolutionary prototyping for small-data system development is inadequate and too expensive for identifying, analyzing, and mitigating risks in big data system development. RASP (Risk-Based, Architecture-Centric Strategic Prototyping) is a model for cost-effective, systematic risk management in agile big data system development. It uses prototyping strategically and only in areas that architecture analysis can't sufficiently address." (Hong-Mei Chen, Rick Kazman, Serge Haziyev, Strategic Prototyping for Developing Big Data Systems, IEEE Software 2016, no. 2, p. 36) | |
"Video data has become the largest source of big data. Owing to video data's complexities, velocity, and volume, public security and other surveillance applications require efficient, intelligent runtime video processing." (Weishan Zhang, Liang Xu, Zhongwei Li, Qinghua Lu, Yan Liu, A Deep-Intelligence Framework for Online Video Processing, IEEE Software 2016, no. 2, p. 44) | |
"Big data systems (BDSs) are complex, consisting of multiple interacting hardware and software components, such as distributed computing nodes, databases, and middleware. Any of these components can fail. Finding the failures' root causes is extremely laborious. Analysis of BDS-generated logs can speed up this process. The logs can also help improve testing processes, detect security breaches, customize operational profiles, and aid with any other tasks requiring runtime-data analysis. However, practical challenges hamper log analysis tools' adoption." (Andriy Miranskyy, Abdelwahab Hamou-Lhadj, Enzo Cialini, Alf Larsson, Operational-Log Analysis for Big Data Systems: Challenges and Solutions, IEEE Software 2016, no. 2, p. 52) | |
"Many real-world data analysis scenarios require pipelining and integration of multiple (big) data-processing and data-analytics jobs, which often execute in heterogeneous environments, such as MapReduce; Spark; or R, Python, or Bash scripts. Such a pipeline requires much glue code to get data across environments." (Dongyao Wu, Liming Zhu, Xiwei Xu, Sherif Sakr, Daniel Sun, Qinghua Lu, Building Pipelines for Heterogeneous Execution Environments for Big Data Processing, IEEE Software 2016, no. 2, p. 60) | |
"Clemens Szyperski (Microsoft), Martin Petitclerc (IBM), and Roger Barga (Amazon Web Services) answer three questions: What major challenges do you face when building scalable, big data systems? How do you address these challenges? Where should the research community focus its efforts to create tools and approaches for building highly reliable, scalable, big data systems?" (Clemens Szyperski, Martin Petitclerc, Roger Barga, Three Experts on Big Data Engineering, IEEE Software 2016, no. 2, p. 68) | |
"We live in a world of unprecedented complexity and astonishing possibility. We should never forget our past, for those who came before us in computing enabled those possibilities." (Remembrance of Things Past, IEEE Software 2016, no. 1, p. 10) | |
"The debacle with the VW 'defeat device' raises some unsettling questions. Are any other companies doing this, or-if we take a more cynical standpoint-how many are doing this? If they aren't, are they still using software practices almost as dubious? How do we decide what's reasonable, given software's extraordinary ability to give hardware its character?" (Les Hatton, Michiel van Genuchten, When Software Crosses a Line, IEEE Software 2016, no. 1, p. 29) | |
"This year marks the 50th anniversary of the Turing Award, which was first given to Alan Perlis, an oft-quoted mathematician who described the relationship between humans and computers as having 'a vitality like a gangly youth growing out of his clothes within an endless puberty.' Now that our dependence on software permeates nearly every aspect of our lives, it’s time to ask ourselves where this relationship is headed and, even though software engineering is still a relatively new discipline, how much we’ve matured." (Forrest Shull, Anita Carleton, Jeromy Carriere, Rafael Prikladnicki, Dongmei Zhang, The Future of Software Engineering, IEEE Software 2016, no. 1, p. 32) | |
"Tim O'Reilly: Code for America is changing government and changing how we think about our role as software professionals. Its work is deeply rooted in the notion that you can no longer govern without using digital technology. Technology is central to how we deliver services today and how people access them. " (Andrew Moore, Tim O'Reilly, Paul D. Nielsen, Kevin Fall, Four Thought Leaders on Where the Industry Is Headed, IEEE Software 2016, no. 1, p. 36) | |
"To most people, “massive systems” probably means those systems run by NASA, airline companies, or large banks, or operating systems such as Microsoft Windows. What’s in common? They all have complex components or subsystems, deal with massive data, support millions of customers, require real-time response, and more. If they malfunction, catastrophe might ensue. By those standards, many systems run by today’s Internet companies also qualify as massive. As the Internet grows so quickly, many Internet companies are suffering the same problems that massive systems have suffered. " (Zhengrong Tang, Melissa Yang, Joshua Xiang, John Liu, The Future of Chinese Software Development, IEEE Software 2016, no. 1, p. 40) | |
"Practitioners must become mediators of the process of creating a humane experience and expand their practice to draw from disciplines such as experience design, systems thinking, economics, and digital strategy. They must do what they can to mitigate the negative consequences of technology while continuing to exploit and amplify its positive impacts." (Claudia de O. Melo, Ronaldo Ferraz, Rebecca J. Parsons, Brazil and the Emerging Future of Software Engineering, IEEE Software 2016, no. 1, p. 45) | |
"Software is being produced so fast that its growth hinders its sustainability. Technical debt, which encompasses internal software quality, evolution and maintenance, reengineering, and economics, is growing such that its management is becoming the dominant driver of software engineering progress. It spans the software engineering life cycle, and its management capitalizes on recent advances in fields such as source code analysis, quality measurement, and project management. Managing technical debt will become an investment activity applying economic theories." (Paris Avgeriou, Philippe Kruchten, Robert L. Nord, Ipek Ozkaya, Carolyn Seaman, Reducing Friction in Software Development, IEEE Software 2016, no. 1, p. 66) | |
"Almost surreptitiously, crowdsourcing has entered software engineering practice. In-house development, contracting, and outsourcing still dominate, but many development projects use crowdsourcing-for example, to squash bugs, test software, or gather alternative UI designs. Although the overall impact has been mundane so far, crowdsourcing could lead to fundamental, disruptive changes in how software is developed." (Thomas D. LaToza, Andre van der Hoek, Crowdsourcing in Software Engineering: Models, Motivations, and Challenges, IEEE Software 2016, no. 1, p. 74) | |
"An evaluation of recent industrial and societal trends revealed three key factors driving software engineering's future: speed, data, and ecosystems." (Speed, Data, and Ecosystems: The Future of Software Engineering, IEEE Software 2016, no. 1, p. 82) | |
"Today's social-coding tools foreshadow a transformation of the software industry, as it relies increasingly on open libraries, frameworks, and code fragments. Our vision calls for new intelligently transparent services that support rapid development of innovative products while helping developers manage risk and issuing them early warnings of looming failures. Intelligent transparency is enabled by an infrastructure that applies analytics to data from all phases of the life cycle of open source projects, from development to deployment. Such an infrastructure brings stakeholders the information they need when they need it." (James Herbsleb, Christian Kastner, Christopher Bogart, Intelligently Transparent Software Ecosystems, IEEE Software 2016, no. 1, p. 89) | |
"We're living in a physical world that's moving at the speed of software. This means that software's trajectory will drive software engineering, not vice versa. However, software engineering is also driven by visionary corporate leaders, backed by skilled software developers." (George Hurlburt, Jeffrey Voas, Software is Driving Software Engineering?, IEEE Software 2016, no. 1, p. 101) | |
"Apache Mesos, ... abstracts away many of the hassles of managing a distributed system. ... You don't have to think about how you're going to get your task to a different machine with Mesos. You just tell it, 'Run this task using these resources; those resources are tied to a particular machine,' and then Mesos takes care of getting the task there, starting the task, and watching it while it's actually running on that machine. Mesos provides primitives that somebody building a distributed system can take advantage of. " (Ben Hindman on Apache Mesos, IEEE Software 2016, no. 1, p. 117) | |
"Refactoring changes a program's source code without changing its external behavior, typically to improve the software's design." (Emerson Murphy-Hill, Don Roberts, Peter Sommerlad, William F. Opdyke, Refactoring [Guest editors' introduction], IEEE Software 2015, no. 6, p. 27) | |
"The safety issue—that a refactoring shouldn’t break working code—was recognized as critical to industrial adoption. It also raised other interesting research issues." (William G. Griswold, William F. Opdyke, The Birth of Refactoring: A Retrospective on the Nature of High-Impact Software Engineering Research, IEEE Software 2015, no. 6, p. 30) | |
"Developers won’t use tools that seem unreliable. So, the widespread use of refactoring tools speaks to their apparent reliability. However, they aren’t error-free. They work just well enough to be useful, and they break in relatively unimportant ways." (Munawar Hafiz, Jeffrey Overbey, Refactoring Myths, IEEE Software 2015, no. 6, p. 39) | |
"Refactoring is a key approach for managing technical debt. In the past few years, refactoring techniques and tools have received considerable attention from researchers and tool vendors." (Tushar Sharma, Girish Suryanarayana, Ganesh Samarthyam, Challenges to and Solutions for Refactoring Adoption: An Industrial Perspective, IEEE Software 2015, no. 6, p. 44) | |
"To improve responsiveness, developers often use asynchronous programming. In the post-PC era, asynchronous programming is even more in demand because mobile and wearable devices have limited resources and access the network excessively. One current development task is refactoring long-running, blocking synchronous code (for example, accessing the Web, a cloud, a database, or a file system) into nonblocking asynchronous code." (Refactoring for Asynchronous Execution on Mobile Devices, IEEE Software 2015, no. 6, p. 52) | |
"Although database refactoring has been advocated as an important area of database development, little research has studied its implications. ... The experience led to five key lessons learned: refactoring should be automated whenever possible, the database catalog is crucial, refactoring is easier when it's done progressively, refactoring can help optimize an application and streamline its code base, and refactoring related to application development requires a complex skill set and must be applied sensibly." (Database Refactoring: Lessons from the Trenches, IEEE Software 2015, no. 6, p. 71) | |
"Agile teams strive to balance short-term feature development with longer-term quality concerns. These evolutionary approaches often hit a 'complexity wall'' from the cumulative effects of unplanned changes, resulting in unreliable, poorly performing software." (Stephany Bellomo, Ian Gorton, Rick Kazman, Toward Agile Architecture: Insights from 15 Years of ATAM Data, IEEE Software 2015, no. 5, p. 38) | |
"Two innovations are enhancing programming languages' capabilities. First, modularity lets you combine independently developed languages without changing their respective definitions. A language is no longer a fixed quantity; you can extend it with domain-specific constructs as needed. Second, projectional editing lets you build editors and IDEs that don't require parsers. Such editors and IDEs support a range of tightly integrated notations, including textual, symbolic, tabular, and graphical notations." (Markus Voelter, Jos Warmer, Bernd Kolb, Projecting a Modular Future, IEEE Software 2015, no. 5, p. 46) | |
"A swift execution from idea to market has become a key competitive advantage for software companies to enable them to survive and grow in turbulent business environments. To combat this challenge, companies are using hackathons. A hackathon is a highly engaging, continuous event in which people in small groups produce working software prototypes in a limited amount of time. ... However, hackathons pose the challenge of how to transform those promising prototypes into finalized products that create revenue and real business value." (Marko Komssi, Danielle Pichlis, Mikko Raatikainen, Klas Kindstrom, Janne Jarvinen, What are Hackathons for?, IEEE Software 2015, no. 5, p. 60) | |
"Software adaptation has become prominent owing to the proliferation of software in everyday devices. In particular, computing with the Internet of Things requires adaptability. Traditional software maintenance, which involves long, energy-consuming cycles, is no longer satisfactory. Adaptation is a lightweight software evolution that provides more transparent maintenance for users." (Franck Barbier, Eric Cariou, Olivier Le Goaer, Samson Pierre, Software Adaptation: Classification and a Case Study with State Chart XML, IEEE Software 2015, no. 5, p. 68) | |
"The SPOT (Single Point of Truth) principle says that developers should specify key pieces of information in one and only one place in their code. Unfortunately, they frequently violate this principle." (Points of Truth, IEEE Software 2015, no. 4, p. 18) | |
"Software enables every aspect of the Web. Everything from device communication to online social networks is achievable only because of multiple lines of code. For various reasons, designing and building security and privacy into Web software is often an afterthought for most developers. This results in easily compromised systems that pose significant privacy and security risks to users." (Tyrone Grandison, Larry Koved, Security and Privacy on the Web [Guest editors' introduction], IEEE Software 2015, no. 4, p. 36) | |
"Large organizations often face difficult tradeoffs in balancing the need to share information with the need to safeguard sensitive data. A prominent way to deal with this tradeoff is on-the-fly screen masking of sensitive data in applications." (Abigail Goldsteen, Ksenya Kveler, Tamar Domany, Igor Gokhman, Boris Rozenberg, Ariel Farkash, Application-Screen Masking: A Hybrid Approach, IEEE Software 2015, no. 4, p. 40) | |
"Adversaries employ sophisticated fingerprinting techniques to identify Web users and record their browsing history and Web interactions. Fingerprinting leaves no footprint on the browser and is invisible to general Web users, who often lack basic knowledge of it." (Amin Faiz Khademi, Mohammad Zulkernine, Komminist Weldemariam, An Empirical Evaluation of Web-Based Fingerprinting, IEEE Software 2015, no. 4, p. 46) | |
"Inner source, the adoption and tailoring of open source development practices in organizations, is receiving increased interest." (Klaas-Jan Stol, Brian Fitzgerald, Inner Source--Adopting Open Source Development Practices in Organizations: A Tutorial, IEEE Software 2015, no. 4, p. 60) | |
"Formal documentation can be a crucial resource for learning to how to use an API. However, producing high-quality documentation can be nontrivial. ... The three severest problems were ambiguity, incompleteness, and incorrectness of content." (Gias Uddin, Martin P. Robillard, How API Documentation Fails, IEEE Software 2015, no. 4, p. 68) | |
"Software engineers today must be lifelong learners or risk finding themselves out of a job, with totally obsolete skills to sell." (Lifelong Learning for Lifelong Employment, IEEE Software 2015, no. 4, p. 85) | |
"Monitoring is critical to IT system health and thus to businesses' bottom line." (Josune Hernantes, Gorka Gallardo, Nicolas Serrano, IT Infrastructure-Monitoring Tools, IEEE Software 2015, no. 4, p. 88) | |
"Recently proposed model repositories aim to support specific needs--for example, collaborative modeling, the ability to use different modeling tools in software life-cycle management, tool interoperability, increased model reuse, and the integration of heterogeneous models." (Juri Di Rocco, Davide Di Ruscio, Ludovico Iovino, Alfonso Pierantonio, Collaborative Repositories in Model-Driven Engineering [Software Technology], IEEE Software 2015, no. 3, p. 28) | |
"An architecture haiku aims to capture software system architecture's most important details on a single piece of paper. An architecture haiku helps development teams focus on the most essential information relevant to the architecture, provides clear guidance for construction, and encourages collaboration." (Architecture Haiku: A Case Study in Lean Documentation [The Pragmatic Architect], IEEE Software 2015, no. 3, p. 35) | |
"In variant-rich workflow-based systems, a major concern for process variability is the context-aware configuration of the variants. This means that context information, not users, drives process configuration. " (Aitor Murguzur, Salvador Trujillo, Hong-Linh Truong, Schahram Dustdar, Oscar Ortiz, Goiuria Sagardui, Run-Time Variability for Context-Aware Smart Workflows, IEEE Software 2015, no. 3, p. 52) | |
"Smart manufacturing networks describe a production chain as a marketplace that delivers products on demand. In this chain, partners collaborate in product work routings that connect dispersed service-enabled systems with resources, materials, human expertise, and operation-equipment combinations." (Michael P. Papazoglou, Willem-Jan van den Heuvel, Julien Etienne Mascolo, A Reference Architecture and Knowledge-Based Structures for Smart Manufacturing Networks, IEEE Software 2015, no. 3, p. 61) | |
"Defect taxonomies collect and organize experts' domain knowledge and project experience and are valuable for requirements-based testing. They provide systematic backup for the test design, support decisions for allocating testing resources, improve the review of requirements, and are suitable for measuring product quality." (Michael Felderer, Armin Beer, Using Defect Taxonomies for Testing Requirements, IEEE Software 2015, no. 3, p. 94) | |
"Docker is a container virtualization technology. So, it’s like a very lightweight virtual machine [VM]. In addition to building containers, we provide what we call a developer workflow, which is really about helping people build containers and applications inside containers and then share those among their teammates." (Docker [Software engineering], IEEE Software 2015, no. 3, p. 102) | |
"Technical debt refers to maintenance obligations that software teams accumulate as a result of their actions. Empirical research has led researchers to suggest three dimensions along which software development teams should map their technical-debt metrics: customer satisfaction needs, reliability needs, and the probability of technology disruption." (Narayan Ramasubbu, Chris F. Kemerer, C. Jason Woodard, Managing Technical Debt: Insights from Recent Empirical Evidence, IEEE Software 2015, no. 2, p. 22) | |
"A refactoring aims to improve a certain quality while preserving others. For example, code refactoring restructures code to make it more maintainable without changing its observable behavior." (Architectural Refactoring: A Task-Centric View on Software Evolution, IEEE Software 2015, no. 2, p. 26) | |
"The concept of cloud computing has existed for 50 years, since the beginning of the Internet. John McCarthy devised the idea of time-sharing in computers as a utility in 1957. Since then, the concept’s name has undergone several changes: from service bureau, to application service provider, to the Internet as a service, to cloud computing, and to software-defined datacenters, with each name having different nuances. " (Nicolas Serrano, Gorka Gallardo, Josune Hernantes, Infrastructure as a Service and Cloud Technologies, IEEE Software 2015, no. 2, p. 30) | |
"Mobile deployments are more challenging than Web deployments because we don’t own the ecosystem, so we can’t do all the things that we would normally do. And the canaries are huge. We watch cold start, warm start, the app size, and the numbers of photos uploaded, comments, and ads being displayed or clicked. Growth and engagement numbers and the crash rate are important to the company. If the crash rate fluctuates, we immediately take action to understand why." (Bram Adams, Stephany Bellomo, Christian Bird, Tamara Marshall-Keim, Foutse Khomh, Kim Moir, The Practice and Future of Release Engineering: A Roundtable with Three Release Engineers, IEEE Software 2015, no. 2, p. 42) |
Here you will find word clouds for each decade. Word clouds are generated from terms used in titles of articles.
1984-1989
1990-1999
2000-2009
2010-2019
2020-
External Links
Contact
![]() | This site is curated and maintained by Zeljko Obrenovic (@zeljko_obren). Contact him for any questions or suggestions. |