The Evolution of Sociology of Software Architecture
Total Page:16
File Type:pdf, Size:1020Kb
THE EVOLUTION OF SOCIOLOGY OF SOFTWARE ARCHITECTURE H. A. KASSIR Ph.D. 2019 THE EVOLUTION OF SOCIOLOGY OF SOFTWARE ARCHITECTURE HASSAN ABBAS KASSIR A thesis submitted in partial fulfilment of the requirements of the University of East London for the degree of Doctor of Philosophy July 2019 2 of 389 Abstract The dialectical interplay of technology and sociological development goes back to the early days of human development, starting with stone tools and fire, and coming through the scientific and industrial revolutions; but it has never been as intense or as rapid as in the modern information age of software development and accelerating knowledge society (Mansell and Wehn, 1988; and Nico, 1994, p. 1602-1604). Software development causes social change, and social challenges demand software solutions. In turn, software solutions demand software application architecture. Software architecture (“SA”) (Fielding and Taylor, 2000) is a process for “defining a structural solution that meets all the technical and operations requirements...” (Microsoft, 2009, Chapter I). In the SA process, there is neither much emphasis on the sociological requirements of all social stakeholders nor on the society in which these stakeholders use, operate, group, manage, transact, dispute, and resolve social conflicts. For problems of society demanding sociological as well as software solutions, this study redefines software application architecture as “the process of defining a structured solution that meets all of the sociological , technical, and operational requirements…” This investigation aims to lay the groundwork for, evolve, and develop an innovative and novel sub-branch of scientific study we name the “Sociology of Software Architecture” (hereinafter referred to as “SSA”). SSA is an interdisciplinary and comparative study integrating, synthesizing, and combining elements of the disciplines of sociology, sociology of technology, history of technology, sociology of knowledge society, epistemology, science methodology (philosophy of science), and software architecture. Sociology and technology have a strong, dynamic, and dialectical relationship and interplay, especially in software development. This thesis investigates and answers important and relevant questions, evolves and develops new scientific knowledge, proposes solutions, demonstrates and validates its 3 of 389 benefits, shares its case studies and experiences, and advocates, promotes, and helps the future and further development of this novel method of science. 4 of 389 Table of Contents Abstract 3 Table of Contents 5 List of Tables 19 List of Figures 21 Acronyms 23 Acknowledgement 25 Dedication 27 ---------------------------------------------------------------------------------------------------- 28 PART I: INTRODUCTION 28 Chapter One 29 Preface 29 Motivation 31 Problem Statement: Research Questions 32 Contributions 33 Organisation of Thesis 35 Part I: Introduction 35 Part II: SSA Development, Application, and Assessment 37 Part III: SSA Case Studies 39 Part IV: Conclusion 40 Chapter Two 43 Introduction 43 What is Software Architecture? 47 5 of 389 Redefining Software Architecture with Sociological Requirements 52 What is The Sociology of Technology? 53 History of the Sociology of Technology 54 Synthesis of Sociology and Software Architecture 55 What is Technology? 59 Theories of Sociology of Technology 60 What is The Sociology of Knowledge Society? 65 SEPYN: The Theory of Social Epistemology Network (“SEPYN”) Development of Knowledge 65 Synthesis of the Unique qualities of IT Development 69 SETT: The Theory of Sociogenetic Evolution of Technology Development 72 SETT Axioms: 73 What is The Sociology of Software Architecture (“SSA”)? 75 SSA Synthesis 76 What are Sociological Requirements? 78 SRs: Sociological Requirements 79 STR: SSA Developer Requirements 79 Summary 80 Chapter Three 81 Introduction: The Scientific Method 81 Discovery 85 Conjecture 86 Planning and Design 86 Operations 87 Reporting 87 How to Synthesize SSA methods 87 6 of 389 Software Architecture 88 Sociology 88 Synthesis of Software Architecture and Sociology 89 Methods of Software Architecture Design 89 Objectives 90 Key Scenarios 90 Application Overview 91 Key Issues 91 Candidate Solutions 91 The Scientific Method and Research Methods in Sociology 91 Social surveys 94 Interviews 95 Structured interviews 95 Unstructured interviews 95 Semi-structured interviews 96 Experiments 96 Participant observation 96 Ethnographic and case studies 97 Ethnographics 97 Case studies 97 Longitudinal studies 97 Existing data 98 Synthesis of Methods of Sociology of Software Architecture 99 Traditional MSDN SA Model Synthesis: Sociological Research Design 100 Discovery: Identify Architecture Objectives 101 7 of 389 Conjecture: Identify Key Scenarios 103 Planning: Create Application Overview 106 Operations: Identify Key Issues (requirements) 107 Reporting: Define Candidate Solutions 109 Words of Scientific Wisdom 111 Conclusion 114 ---------------------------------------------------------------------------------------------------- 115 PART II: SSA DEVELOPMENT, APPLICATION, AND ASSESSMENT 115 Chapter Four 116 Introduction 116 Types of sociological approaches? 118 Social epistemology approach 119 Worldview Approach 120 Sociology Theory Framework Approach 122 Structural Functionalism 123 Symbolic Interaction Theory 124 Conflict Theory 126 More Sociological Theory Frameworks 126 Empirical Data Approach 127 Quantitative Approach 128 Computational Approach 129 Statistical Approach 129 Mathematical Approach 129 Data Science and Machine Learning Approach 130 Historical Approach 131 8 of 389 Comparative Approach 131 Qualitative Data Approach 132 Mixed Methods Approach (Sack, et al., 2006) 134 Logic and Reasoning Approach 137 Inductive Logic 137 Deductive Logic 137 Chapter Five 138 Introduction: Models 138 Types of Sociological Models? 139 ME-Ego Model 139 SSH Simple Socio-hierarchical Model 140 Complex Socio-Genetic Model 142 The “Social Software” Model 143 Communities of Practice: Learning, meaning and identity 144 Qualitative and Quantitative Modeling 145 Threshold models of collective behavior 146 Enhancing individual and organizational learning: A sociological model 147 Socio Economic Models 147 Socio Demographic Models 149 The Sociological Concept of "Group" 149 Additional Candidate Models 150 Stakeholder Types: RIOTU Model 151 Introduction: Techniques 152 Representation techniques 154 Data techniques 154 9 of 389 Sociological research techniques? 156 SSA Data Collection Methods Techniques 156 Existing Data 157 Surveys 158 Interviews 158 Experiments 159 Case Study 159 Consumer Attributes 159 Contact Information 159 Demographics 160 Lifestyle 160 Social Media 160 Financial Information 160 Behavior Scores 160 Statistical Techniques 160 Mathematical Techniques 161 Data Science and Machine Learning Techniques 161 Fix and transform data 161 Python / R / SPSS 161 Deploy algorithms with web services 162 Computer Based Techniques 162 Team Techniques 163 Assessment Techniques 163 Software Development Integrated Techniques (i.e. Scrum and Kanban) 163 Conclusion: Models and Techniques 164 10 of 389 Chapter Six 165 Introduction 165 Step by Step Checklist (“SSC”) 167 Discovery 167 Questions for owner 167 Questions for research 168 Answers 168 Conjecture 169 Analysis & Conclusions 169 Challenge(s)? 169 Problem(s)? 169 Solution(s)? 170 Planning & Design 170 Methods 170 Approaches 170 Models 170 Techniques 171 Operations 171 Methods 171 Data collection 172 Reporting 172 Assessment Types 172 Assessment Forms 172 Assessment Methods 172 SSA Methodology 173 11 of 389 Writeup-Presentation 173 Replication 173 Generalizability 173 Future Development 173 What Are SSA Requirements 173 What Are Sociological Requirements (“SRs”) 174 SSA Groups (Stakeholders) 174 SA Groups (Stakeholders) 175 Synthesis of SA and SSA Models 177 Mapping SSA Groups 180 Conflict Resolution Model 182 SA Views and Viewpoints 183 SA Views 183 SA Viewpoints 183 SA Perspectives 186 SRs Development 190 SSA Environment 192 SSA Interface 193 SSA Behavior 193 Conclusion: 194 Chapter Seven 195 Introduction 195 Validation 196 Verification 196 Evaluation 196 12 of 389 Structural Assessment 199 Component Assessment 201 Operations Assessment 202 Assessment of Sociological Requirements 202 Assessment of Quantitative Data Operations 205 Assessment of Qualitative Data Operations 208 Methods for Testing the Value of SSA Methodology 211 Methods of Software Architecture Testing 212 Conclusion 213 ---------------------------------------------------------------------------------------------------- 214 PART III: SSA CASE STUDIES 214 Chapter Eight 215 SSA Development Case Studies 215 Case Study: Education Technology 215 Case Study: Local Search 218 Case Study: Non-Performing Credit Card Debt Market 220 Candidate Case Study Applications 220 Chapter Nine 221 Introduction 221 Concurrent or Sequential Development 223 Synthesized Concurrent Checklist 224 CCDM Case Study: Discovery 235 Questions for owner (client) 236 CCDM’s SSA goals and objectives: 236 SSA and SA Requirements 239 13 of 389 Resources, budget, and constraints 240 Timeline, Milestones, Scope, and Time 240 Questions for research 241 Answers to research questions 241 Literature review 241 Existing data 263 Desired and missing data 263 Identify SRs and TORs 264 CCDM Case Study: Conjecture 264 Analysis and Conclusions 265 Goals & objectives achievable? 266 SR Components: hypothesize them 267 Resources/Budget/Constraints: Can you meet them? Manage expectations.