Adam Cogan sits down with Marcel de Vries and Terje Sandstrom to breakdown the Software Development process. They discuss:

  • Evaluating the process
  • Getting the latest and compiling
  • Making instructions at the beginning of a project
  • Using the best code analysis tool
  • Looking at the architecture
  • Reviewing the documentation
  • Using the best code metrics tools
  • The common design patterns
Show Notes

  • This follows Rule: Do You Make Instructions at the Beginning of a Project and Improve them Gradually?
  • NDepend – ndepend.com
  • Metrics Numbers – https://geekswithblogs.net/terje/archive/2008/11/25/code-metrics—suggestions-for-appropriate-limits.aspx
  • This follows Rule: Do You Look at the Architecture?
  • This follows Rule: Do You Review the Documentation?
  • [12:22] The reason for this is that many teams mis-use the concept of agility by stopping proper engineering practices. When you create a solution for a customer, you still need to think about the way you implement it! You can sketch out alternatives using diagrams & Powerpoints etc. to decide on the pros and cons. It’s just good engineering practice. You must decide up front what the purpose of the documentation is. Is it just for you to engineer the right solution, or is it for an actual documentation purpose that perhaps needs to be maintained over time so that it can be handed over to e.g. The party that is going to maintain the code later.
  • Enterprise Architect from Australia is a great 3rd party tool for Architects: SparxSystems.com.au
  • [22:12] Marcel used the case diagram he showed and used that for the code generation. The sequence diagram he showed was a throw away and was only used to engineer the solution. In this particular project they made a decision about which diagrams they would keep and maintain.
  • This follows Rule: Do You Use the Best Tool to Run Code Metrics and Find Dodgy Code?
  • A code review should not be one person’s opinion but something you agree on before you start
  • This follows Rule: Do You Go Beyond a ‘Done’ and Follow a ‘Definition of Done’
  • Code should be read like poetry
  • You should add comments about decision you made in the code. Eg. Leaving out a lock statement, since that might trigger a developer later to add it just because he needs to rethink what you already decided. So every time you deviate from a common pattern document in the code, the reader will be able to know what you were thinking of.
  • This follows Rule: Do You Know the Common Design Patterns?
  • Look out for overuse of containers, dependency injection and reflection
  • As a general rule, only add complexity when you need flexibility
  • Don’t skim. Instead use the tools to drill into the bad code to look for more bad code. Remember bad code seems to attract more bad code
  • Bad code attracts warnings
  • Look for lots of setters since they indicate you are handing out your internals and you don’t know the constraints.
About the speakers

About the speakers

2 Sagacious Architects

Terje works as Chief Software Architect at InmetaCrayon in Norway, in the Consulting division. Most of his work is on advising developers, architects, project managers and testers, in larger companies. He is interested in all aspects of software development, even though coding principles are a favorite.

Terje have worked with professional and industrial design and development for far more years, than he want to remember, moving gradually from electronic design over to software design. He holds a M.Sc in Physics from the University in Oslo, graduating with a mixture of physics and informatics/software.

Terje has programmed in a lot of different languages, but is very fond of the object oriented ones, from his early exposure to Simula at the university. He is very interested in the theoretical aspects of programming languages, design patterns and everything that have a higher level of complexity. His interests goes into areas like databases, OLAP, UML, functional programming, graphics, 3D and more. He has still to learn there is probably a limit somewhere for how much it is possibly to do.

Terje has worked with Microsoft technology since the late 80's, and is familiar with a lot of the products made by Microsoft. He has been a Microsoft Visual Studio ALM MVP since 2008, and worked with the TFS family since the product appeared. Terje is running courses, seminars, workshops and speaks, not only at public events, but
a lot at internal company events for larger Norwegian companies. He is blogging actively at https://geekswithblogs.net/terje.

Marcel spends most of his time helping customers build enterprise systems based on Microsoft Technology. He has been working with Microsoft technology since he graduated in Computer Science in 1996. He started mainly with C/C++ and MFC.When Microsoft launched its new .NET platform in he immediately used it to write the first commercial application to go life in the Netherlands based on ASP.NET. Marcel writes articles and whitepapers on .NET, Application Lifecycle Management and Mobile solutions for MSDN, The Architecture journal and local magazines like Microsoft .NET magazine. Marcel is a frequent speaker at conferences like Microsoft TechDays, Visual Studio Live!, Microsoft Tech Ed and local user group events. Marcel is Technology Manager at Info Support and in his role he works as consultant in the Architect role for a variety of Financial and Insurance companies. He also teaches courses on topics like Visual Studio ALM, .NET , Mobile and Web development at the Info Support Knowledge Center.

He is writing actively at his blog.

Related videos

Related videos

Humans as a Space Faring Civilization | Richard Campbell & Ulysses Maclaren

Join SSW’s General Manager, Ulysses Maclaren in an engaging interview with Arafat Tehsin, an AI MVP with Microsoft, as they delve into the realm of AI beyond chatbots. Arafat shares insights into his innovative project tackling parking sign confusions using multimodal AI. From leveraging Microsoft Project Florence to experimenting with OpenAI’s GPT-3.5, Arafat unveils the journey of building a solution that integrates images and text seamlessly. Discover how advancements in AI are revolutionizing mobile and web app experiences, gamification, personalized recommendations, and even video analysis.

Efficient Task Management with Microsoft Loop Tutorial | Tanya Leahy | SSW Rules

Discover how to streamline your task management with Microsoft Loop! In this video, Tanya Le, the Operations Coordinator at SSW, demonstrates how to create a shared, real-time workspace that you and your boss can edit together. Perfect for those unexpected calls from busy bosses. Learn step-by-step how to set up and use Microsoft Loop within Microsoft Teams, making it accessible anytime, anywhere. Don’t miss this essential productivity tip!

The importance of annual reviews for developers | Adam Cogan & Ulysses Maclaren | SSW Rules

Join SSW’s Chief Architect, Adam Cogan and SSW’s General Manager, Ulysses Maclaren as they discuss the importance of annual reviews for Software Developers, emphasizing the must-haves and the “icing on the cake”. Learn about key metrics, from billability to mentorship, and discover how to balance essential tasks with additional contributions to make the most out of your annual review.

SSW FireBootCamp Journey to become a .NET developer (Story 1) | Ella Smith & Josh Berman

Looking to get started into the software industry but struggling with the ‘experience required’ dilemma? Hear firsthand from SSW’s graduates about their learning journey with FireBootCamp, SSW’s internship program available in Australia, China and France. Discover how they gained valuable experience, learned essential soft skills, and thrived in a supportive environment alongside senior developers. Get inspired to level up your skills and jumpstart your career with FireBootCamp!

Talk before emailing – are you gold or silver? | Adam Cogan & Andrew Harris | SSW Rules

In this interview, SSW’s Chief Architect Adam Cogan sits down with SSW’s Solution Architect Andrew Harris to discuss the importance and evolution of the “As per our conversation” SSW Rule in email communication. They discuss the importance of confirming conversations, the challenges some face in following it, and the value it brings to any business communication. Join the conversation and share your insights in the comments!

Cloud Native Aspirations with .NET Aspire | Matt Wicks and Rob Pearson | SSW User Group

This session focuses on .NET Aspire’s capabilities and the multi-platform versatility of .NET 8.

Feature Management Simplified: A Deep Dive into Feature Boards | Matt Wicks & Lars Klint

Join SSW’s Solution Architect Matt Wicks as he dives into the world of feature management with Microsoft Azure MVP, Lars Klint, at NDC Sydney 2024. Explore the innovative approach of feature boards, shifting the responsibility from developers to product owners. Discover how feature toggling transcends the binary realm and adapts to dynamic audience segmentation. With insights into audience providers, SDK usage across multiple languages, and seamless integration into development pipelines, this conversation uncovers a new era of feature management.

Unlocking Domain-Driven Design: Exploring Contextive | Gert Marx & Chris Simon

In this video, join Gert Marx, SSW Solution Architect, as he interviews Chris Simon, Start up CTO Coach, about his open-source project, Contextive. Contextive is inspired by Domain-Driven Design (DDD) principles, particularly focusing on the ubiquitous language aspect. Chris explains how miscommunication between developers and users can lead to issues in software projects, and how Contextive aims to mitigate this by documenting domain terminology.

Navigating Coding, Deployments, and Legacy Projects | Matt Wicks & Ben Dechrai

Join SSW’s Solution Architect Matt Wicks in this interview with Developer Advocate, Ben Dechrai, at NDC Sydney. They explore the world of coding, deployments, and legacy projects as they discuss strategies for managing deployment debt, the importance of keeping infrastructure and code in sync, and navigating through legacy codebases. Learn practical tips for maintaining code cleanliness and optimizing readability, along with valuable insights on levering cognitive complexity to elevate code quality.

TDD: How Fluent Assertions came to be | Luke Parker & Dennis Doomen

Join SSW’s Luke Parker in this insightful interview with Dennis, the author of the Fluent Assertions Library, as they discuss the origins of the library, its evolution, and the principles of Test-Driven Development (TDD). Dennis shares his journey from a small internal project to a widely used open-source tool, emphasizing the importance of self-describing tests and design clarity. Learn how TDD not only enhances code maintainability but also fosters a better understanding of system boundaries and design patterns.