Hot Posts

6/recent/ticker-posts

Ad Code

Why Is Software Engineering Different?


Keith Watson, Director of DevOps, ADP UK

Keith Watson, Director of DevOps, ADP UK

Understanding the context of any engineering discipline is important because it enables us to determine what paradigms and principles can be applied from related technical areas. These models provide a reference point from which to build new knowledge and help us to solve similar engineering problems. Software engineering is different from other engineering disciplines in many respects; hence, we should be wary about applying traditional engineering ideas to software development.

Other types of engineering deal with tangible real artefacts and physical, visible processes, whereas software is intangible. In addition, software development is a highly cerebral process where software is created, not manufactured and relies primarily on technically skilled individuals for a longer part of the engineering process.

Most forms of traditional engineering generally started as a craft, and as time progressed, they found ways to automate their craft to produce standard artefacts reliably, quickly, and consistently. In addition, this ‘baked in’ the knowledge of the craftsman into these processes and tools. This, in turn, enabled cost reduction, reduced key person dependency, and allowed diffusion of this knowledge to a wider, less skilled population.

The lack of visibility and tangible reality of software development means that software engineers are mostly working in the virtual world both in terms of the artefacts they produce (programme code and executables) and the software process and tools they use. Software engineering is a relatively new engineering discipline. Today, the software innovation process is still more akin to a craft process because it is based on the implicit experience of the software architect and developer; the actual creation of software is difficult to automate. Any new software has, by its nature, never been built before (aside from code that is refactored) and hence requires more experimentation.

 Understanding the context of any engineering discipline is important because it enables us to determine what paradigms and principles can be applied from related technical areas 

These qualities have implications for the decisions we must face when designing new software and software development processes. Even if one uses readily re-usable components such as open source, they still need to be integrated together with new code. Although the emergence of DevOps and continuous delivery has helped deliver software faster, this automation is still only a small part of the software development process. AI tools such as ChatGPT may help, but it is likely that a large amount of future software will still depend on the human creative process.

When software engineering was in its infancy, it was thought that it was similar to existing forms of physical engineering. Like many of these engineering disciplines, for complex structures or products, software development adopted the waterfall model. This had v rylimite success. In 1 98, d is ati factionw th t heo dengine ring p ar dig led to a n w, m orenuanc dappr ac .Instead the Agile Mani esto w aspr po edto h ndlethe expe imentalnatur of s ftwared velopmenta dr cognisedt eneed to b ildtangible m odelsea lie . This appr achena leds ftw reen ineerst surface h dd nassu ptionsand then us thes mod ls( w orkingsoftw re)to cla ify r eq i emen swit end user (customer c ollabora ion and th namend the a ppr ach(resp nd ngto ch nge o verfollowing a plan). T he different e ngineeringp rad gmis exempl fie in on of t heAgi eprincip es:’Wo kingsoft arei the prima ymeasur of progre s.’

“We are u nc veringb tterwa sof developi gso twar by d ingit a ndhelp ngothers d oit. Throu gh t hiswork we have come to v alue

• In ividu lsand inte actionsover pro ess sand t ools

• Work ngsoftwa eover compre en ivedoc ment tion

• Cust m rcolla ora ionover co tractnegoti tion

• Res on ingto change o ve fol ow nga p lan.

T atis, while t ereis val ein the it ms o nth right, w value th it mson the lef tmo e.”

A gileManife to- htt ://w w. agilemanife to.org/

A il softw re d eve opmentr cognis st atb causeso twar can ha ep tent ally u nb undedc o plexityand i cus omisablethro ghth creation p oce s,an a p roachwh resoftwa eis b iltincrementa lyis better tha n a structur dtop-down, arc itec ure-driv nwaterfall m e hod.This is r ec gnised i nthe p rinciples b e indth eAgi ema ifest ,whic st testh t” T heb starc it ctu es,req ir ments and d esign em rge f roms lf-org anisi gteams.”H r ,new sof twarehas an emergent a rchi tectu erather t anthe intend darchitect repo siblein o therform of e gine ring.

In summ ry, the cer bralvirtua nat re o fsoftware dev lopment m ean it is stil more of a c mp terisedc aftin ustryrel in on exp rimentalinves ig tionsa devo v ngarchitec ures.The l ckof bounded ph ysical a rtefactsa dstanda dsha im licationsf rt ema agementof s ftware p roj ctswh remore trad tiona method and t olsm stbe r eplacedby more i erativeagile a pro ches.Th rapidl chan ingna tureof soft areengi neeri gme nsit must r ely m or on a creat ve,collabora iveapp oach c omp redto oth rphysical eng neeringd sc pline .



Post a Comment

0 Comments

Ad Code