Industrial Software Development: Engineering vs Artistry

Industrial Software Development: Engineering vs Artistry

Is software development a boring, purely facts and figures based, rigid and sometimes painful undertaking? Where is the fun in it? Where does creativity fit in? How can the "software heroes" feed in great new ideas?

In general, creative people follow - maybe unconsciously - a process (cf. [Funk08]):

  • Preparation: make yourself familiar with your domain and acquire expertise in solving "problems"
  • Incubation: relax - do not focus on the problem, free your mind
  • Insight: the creative moment itself, that manifests after preparation and incubation - the "Eureka!"
  • Evaluation: evaluate your ideas - not all will be feasible so this filters out "bad ideas"
  • Elaboration: implement and test your idea

As we have seen in the past years, key quality aspects of successful industrial software development show certain quality attributes:

  • Reliability: Systematic and structured approaches as to achieve the goals of development
  • Reproducibility: Processes and procedures to ensure repeatable results and serve as a foundation for improvement
  • Learnability: Ways for scaling up or down organisations
  • Rationality: Fact based and informed decision making 
  • Applicability: Adding pragmatism to theoretical concepts

In successful organisations, individuals in the process (the "software engineers") have traits like being

  • Workers - get things done
  • Scientists - identify, preserve and communicate new knowledge
  • Architects - understand complex scenarios and take their decisions based thereon
  • Technicians - apply the state of the industry technologies according to their strengths

The creative process complies with the engineering approach as described above - with the incubation phase being a challenge regarding "time and budget" vs "outcome" considerations. You hardly know if you have incubated long enough to achieve the best result but "better than nothing" can be identified at least.

So, consequently - (software) engineering comprises creative processes. True engineers ARE creative.

 For the engineers, this fact is a very positive aspect of their professional life, but brings along a big challenge: more often than not "creative ideas" imply changes - and resistance to change is everywhere and tries to stop innovation.

Looking from a different angle: if you perceive resistance, you have done your job.

References

[Funk08] Joachim Funke: ?Zur Psychologie der Kreativit?t” in M. Dresler & T. G. Baudson (Eds.), Kreativit?t. Beitr?ge aus den Natur- und Geisteswissenschaften (pp. 31-36). Stuttgart 2008, Hirzel. 

To get more insights into my work at Axivion, register for our newsletter, visit our blog or follow us on LinkedIn and Twitter.

要查看或添加评论,请登录

Daniel S.的更多文章

  • "More is better?" or Efficiency vs. Effectivity

    "More is better?" or Efficiency vs. Effectivity

    From time to time, I have conversations with colleagues or customers about the runtimes and precision of static code…

  • How much is the {...}?

    How much is the {...}?

    If you work on a software project with safety and/or security background, you will have to use some sort of programming…

    1 条评论
  • Coding Guidelines How-To (1st Thoughts)

    Coding Guidelines How-To (1st Thoughts)

    For use in Safety or Security, a range of Standard Programming Guides is available. In automotive industry, MISRA and…

  • Guessing what may be: Static Analysis of Dynamic Languages

    Guessing what may be: Static Analysis of Dynamic Languages

    In cooperation with our research partners in academia, we offered a bachelor thesis in the field of program analysis…

    3 条评论
  • Professional View on "Quality"?

    Professional View on "Quality"?

    There are many definitions of the term quality. On one hand, we have the common sense definitions of "high quality…

  • Test the test: testing programming guides

    Test the test: testing programming guides

    The implementation of an automatic coding guidelines check produces code; in the case of the Axivion Suite mostly…

社区洞察

其他会员也浏览了