Ayhan Doger

Software Architect

Ayhan Doger

Software Architect

Ayhan Doger

Software Architect

Introduction

Imagine that you´re at the end of your wishes and suddenly get a „Go!“ to start a project. First you´ll prepare for a software project-kick-off-event, where you´ll meet at least one top IT responsible from the custom company. After that you´ll start to setup a rough framework for your project management system (PMS) concerning the main methods, tools, languages and best practices of the IT department or company in charge, which is always a part of the information system (IS) of the company.

Information Systems (IS)

Before we dive deeper into the first issues of the software development process, we have to work out the operating principles of IS, in which software systems are embedded. A software is always developed within and based on IS. Which means, if you build a software in a team, the development team, its organisation, tasks and the technology setup build an IS as well as the targeted custom companies structures, within which the software to be developed will be used. Both IS are in that sense connected to each other in which the development team has to deduce the basic requirements for the PMS, procedure models, methods and tools, in order to meet the needs of the customer as best as possible. According to Seibt´s (2006) ATOM-Modell IS are the sum of (see Seibt 2006, S. 20)

• Tasks (dt. Aufgaben) (goals, processes, functions, know-how, business model, etc.)
Technology (hardware, software, network, infrastructure, interfaces, programming languages, libraries, know-how, etc.)
Organisation (project management, structure, processes, leadership, governance, risk, compliance (GRC) systems, marketing, sales, research&development (R&D), logistics, human resource management (HRM), etc.)
• Human (dt. Menschen) (staff, team, management, stakeholders and shareholders, motivation, acceptance, participation, skills etc.)

IS of companies require an interdisciplinary approach for a sufficient understanding and further development. Not only informatics and business administration skills are relevant here, but also skills in psychology, sociology, philosophy, neurology, ethnology etc. and as well skills and knowledge regarding the given business area or branch of industry. So a software development team always has to pay attention on interdisciplinary insights and requirements. The central role of the IS view is given as well in the envirornment of the contracting organisation as well as in the IS of the developing team. The next figure depicts a possible way of user-centered thinking in software design in special and IS design in general, containing each of the concepts and technologies discussed in this article (see fig. 1).

Fig. 1: The Pyramid of User- and Customer-centered Software Development within the IS deveopment process

 

Project Management

The definition of project management is as follows:

„A project is temporary in that it has a defined beginning and end in time, and therefore defined scope and resources. And a project is unique in that it is not a routine operation, but a specific set of operations designed to accomplish a singular goal. So a project team often includes people who don’t usually work together – sometimes from different organizations and across multiple geographies.“ (PMI 2018)

 

In order to have a deep understanding of project management principles, it´s helpful to learn the basics of cybernetics.

 

Cybernetics

Cybernetics is the science of the interaction between humans and machines and machines and machines. According to system theory, each system is made of at least four components:

1. controller
2. measurer
3. adjuster
4. system paths

„Systems theory is a science which has the comparative study of systems as its object. “ (Stichweh 2011)

Those four dimensions are reflected for example in the phase model, which is a basic concept in a PMS. The four phases in the phase model are:

1. As-Is-Analysis
2. To-be-Analysis
3. IT-conception
4. IT-implementation

More project management methods and tools follow this paradigm given from the cybernetics. If you want to learn more on this subject, please follow this link.

 

Requirement Engineering (RE)

Requirement Engineering is the first main activity to start after the project kick-off and as a function of project management.

„Requirements Engineering (RE) is, as its name suggests, the engineering discipline of establishing user requirements and specifying software systems. There are many definitions of Requirements Engineering“ (Zave 1995 in Sutcliffe 2013)

„RE refers to the activity of formulating, documenting and maintaining systems requirements in order to produce, from users’ needs, a set of specification related to what the final system should be. Requirements provide the basis for all phases of the development system. Thus, it is necessary to control these requirements in all phases of the development cycle and in all domains to avoid some misinterpretation and mistakes committing the final results.“ (Simão et al. 2016)

 

Procedure Models

According to Fliß et al. (2005), the decision for choosing a process model for software development is dependent on different approaches given in the regarding company. Criteria for procedure  models are the chosen dimensions, genericity, sub-models, phase coverage, object domain, branch focus and type of formalization as well as the standardization level, the openness and the adaptability of the architecture, the problem space, the time and the organization. Recommended procedure models are the unified modeling language (UML), the Zachman-Framework, the Rational Unified Process (RUP)  etc. (see Fliß et al., 2005, p. 184).

Since the last decade agile or lean thinking is becoming more and more a standard in software development:

„Agile software development is more than frameworks such as Scrum, Extreme Programming or Feature-Driven Development (FDD). Agile software development is more than practices such as pair programming, test-driven development, stand-ups, planning sessions and sprints.“ (agilealliance 2019)

 

Mathematics

All roads lead to maths. In order to keep your motivation high to read further, please consider, that this mathematics part is only optional. You can still get a full overview on the software development process, if you skip this math part and start straightaway forward, going ahead with procedure models, if maths isn´t  your favorite subject to spent time with. The central questions in this part are:

  • What is the maths behind software development and where is the magic? For a deeper understanding of why maths matters, you´ll find several links to articles  breaking down this question from different point of views. (…)

Applied mathematics is referring to doing research on software development.  Besides of  applications, such as statistical analysis and machine learning and artificial intelligence (AI), maths can help to raise the level of formalization, standardization and automatization of procedure models, which is also discussed in the article mentioned before (Article I).

 

<Article II – Object-orientation and Design Patterns>

 

Bibliography

agilealliance (2019): Agile 101. Definition of „Agile Software Development)
https://www.agilealliance.org/agile101/

Fliß, C. ; Höhn, R. ; Höppner, S. ; Schumacher, M. Wetzel, H. (2005): Rahmen zur Auswahl von Vorgehensmodellen. Arbeitsbericht der GI-Fachgruppe WI-VM – Arbeitskreis „Vorgehensmodelltypen“

Google-Image-Search (2018): Zachman Framework.

https://www.google.com/search?q=zachman+framework&source=lnms&tbm=isch&sa=X&ved=0ahUKEwj1o8H5qrPfAhWVSxUIHWXRCB8Q_AUIDigB&biw=993&bih=454&dpr=1.88

Project Management Institute (PMI) (2018): What is Project Management?
https://www.pmi.org/about/learn-about-pmi/what-is-project-management

Seibt, D. (2006): Vorlesungsunterlagen. Professor für Wirtschaftsinformatik. Institut für Wirtschaftsinformatik. Universität Göttingen.

Stichweh, R. (2011): Systems Theory. https://www.fiw.uni-bonn.de/demokratieforschung/personen/stichweh/pdfs/80_stw_systems-theory-international-encyclopedia-of-political-science_2.pdf

Sutcliffe, A. G. (2013): The Encyclopedia of Human-Computer Interaction. Chapter 13 – Requirements Engineering. 2nd Ed. in Zahirovic, A. ; Lowgren, J. ; Carroll, J. M. ; Hassenzahl, M. ; Erickson, T. Interaction Desingn Foundation.
https://www.interaction-design.org/literature/book/the-encyclopedia-of-human-computer-interaction-2nd-ed/requirements-engineering

Simão, J. ; Panetto, H. ; Liao, Y. ; Stadzisz, P. (2016): A notification-oriented approach for systems requirements engineering. IPSE. 23rd IPSE International Conference on Transdisciplinary Engineering, Oct 2016, Curitiba, Brazil. IOS Press, 4, pp.229-238, Transdisciplinary Engineering: Crossing Boundaries. <http://ebooks.iospress.nl/volume/transdisciplinary-engineeringcrossing-boundaries-proceedings-of-the-23rd-ispe-inc-international-conference-on-transdisciplinaryengineering-october-3-7-2016>. <10.3233/978-1-61499-703-0-229>. <hal-01376439>