Published Sep 3, 2019

Episode 149: Difference between Software Engineering and Computer Science with Chuck Connell

Chuck Connell dissects the vital distinctions between software engineering and computer science, emphasizing a balanced blend of technical skills and practical experience. He underscores the human elements crucial to software success and advocates for the use of CMMI and software patterns to improve development processes.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Questions from this episode

Episode Highlights

  • CMMI Framework

    CMMI, or the Capability Maturity Model Integration, serves as a framework for improving software development processes. explains that CMMI is not a rigorous method but a collection of best practices that have proven effective for various software development teams 1. Its goal is to provide a template of development methods that have been successful in the past, rather than being filled with mathematical formulas. Connell believes that CMMI's continuous evolution and adaptation reflect its commitment to learning and improvement.

    They're always tweaking and always learning. So I think they have the right spirit, although it's gotten kind of big and, and onerous.

    ---

    This approach allows teams to adopt practices that are adaptable and relevant, even if the framework itself can be cumbersome at times.

       

    Patterns in Practice

    Software patterns play a crucial role in establishing best practices within the field of software engineering. emphasizes that patterns are not about achieving provably correct software but about applying strategies that have worked well in past projects 2. These patterns can be applied at various levels, from code design to architecture, and are essential for developing wisdom and best practices over time. Connell contrasts this with areas like cryptography, where correct results can be achieved, highlighting the unique challenges in software engineering.

    We can learn, we can develop wisdom and best practices over time.

    ---

    By focusing on patterns, software engineers can navigate the unpredictability of the field with a more structured approach.

Related Episodes