loader from loading.io

Documentation Of Our Object-Oriented Solution

Develpreneur: Become a Better Developer and Entrepreneur

Release Date: 04/09/2021

Are Technology Certifications Necessary For Career Growth? show art Are Technology Certifications Necessary For Career Growth?

Develpreneur: Become a Better Developer and Entrepreneur

Welcome back to our podcast series! In this episode, we're delving into the realm of technology certifications, building upon our previous discussion on the deep versus wide skill set dilemma. Certifications have long been a hallmark in the tech industry, offering professionals a tangible validation of their expertise. However, their significance and value have evolved over time, shaping the landscape of technological proficiency. Understanding the Evolution of Technology Certifications We start by tracing the trajectory of certifications, from the early days of Novell to the...

info_outline
Technical Mastery: Balancing Depth and Breadth show art Technical Mastery: Balancing Depth and Breadth

Develpreneur: Become a Better Developer and Entrepreneur

Our latest podcast episode explores a key developer's dilemma: Should they go deep or wide in technical mastery? Hosts Mike and Rob dissect this decision, focusing primarily on platforms and technology. The Developer's Dilemma: Technical Mastery Unveiled Embracing Breadth: The Power of Versatility First, Rob advocates for a broad approach. He emphasizes being well-versed across technologies, languages, and frameworks. Create a technical roadmap and regularly explore new tech. Stay adaptable and informed with wide skills. This enhances career prospects and understanding of tools'...

info_outline
Navigating Technology Sprawl: Streamlining Solutions and Skillsets show art Navigating Technology Sprawl: Streamlining Solutions and Skillsets

Develpreneur: Become a Better Developer and Entrepreneur

In a digital landscape brimming with innovation, the allure of diverse technologies often leads to unintended consequences. In our latest podcast episode, hosts Rob Broadhead and Michael Meloche delve deep into the tangled web of technology sprawl. From personal coding repositories to organizational software ecosystems, they illuminate the challenges and opportunities inherent in managing a multitude of solutions. Join us as we unravel the complexities of technology sprawl and explore practical strategies for streamlining solutions and skillsets. Navigating Technology Sprawl ...

info_outline
Niche Broad vs. Deep Expertise show art Niche Broad vs. Deep Expertise

Develpreneur: Become a Better Developer and Entrepreneur

Welcome to Season 21! We're nearing 800 episodes in. Today, we ask whether you should specialize in one skill or master a broad range of skills in your career and business. Join Rob Broadhead and Michael Meloche as they unpack this nuanced debate. They offer insight on applying this to your niche when building your business and identifying target customers. Niche Broad vs. Deep Expertise Crafting a Compelling Pitch: Solving Customer Problems In this episode, Rob and Michael reflect on their experiences building their respective businesses. They discuss the challenges and rewards of...

info_outline
Navigating Data Integration: Scraping Vs. APIs show art Navigating Data Integration: Scraping Vs. APIs

Develpreneur: Become a Better Developer and Entrepreneur

In the latest Develpreneur Podcast episode, hosts Rob and Michael explore data integration methods. Focus on scraping versus using APIs. They have experience in both realms. Dissect the challenges and advantages of each approach. Offer valuable insights for developers and data enthusiasts. Using Scraping for Data Integration What is scrapping? Scraping involves programmatically extracting data from web pages, mimicking human interaction with the user interface. Today, web scraping involves navigating HTML structures, identifying elements by their IDs, and extracting relevant...

info_outline
Deciphering Code Chaos: Strategies for Writing Maintainable Code show art Deciphering Code Chaos: Strategies for Writing Maintainable Code

Develpreneur: Become a Better Developer and Entrepreneur

This episode delves into the intricate world of code chaos, coding standards, and best practices, and exploring the importance of writing maintainable code. Hosts Rob and Mike share their insights and experiences, shedding light on the challenges and solutions in the realm of software development. Deciphering Code Chaos What is Code Chaos? Rob and Mike set the stage by discussing the frustration of code chaos. This is where similar code functionality is scattered and duplicated code across projects. They emphasize the significance of architecting solutions rather than hastily...

info_outline
Upwork Proposal Strategy: Crafting a Winning Proposal show art Upwork Proposal Strategy: Crafting a Winning Proposal

Develpreneur: Become a Better Developer and Entrepreneur

Welcome back to our ongoing Upwork journey! In this episode, we delve into the specifics of crafting a winning proposal. Whether you're a seasoned freelancer or just starting out, understanding the intricacies of proposal writing is crucial for success on platforms like Upwork. Crafting a Winning Proposal Deciphering the Job Posting As we embark on our proposal-writing journey, let's dissect a typical job posting. Job descriptions may often seem repetitive, emphasizing the need for skilled, passionate individuals. However, hidden within the generic language are clues to what the...

info_outline
Upwork Startup Guide: Navigating the Freelance Landscape show art Upwork Startup Guide: Navigating the Freelance Landscape

Develpreneur: Become a Better Developer and Entrepreneur

In this podcast episode, we delve into launching a successful freelance career on Upwork. Focusing primarily on getting started, a sort of Upwork startup guide for beginners. This guide draws from our wealth of experience. It provides invaluable insights and practical advice for freelancers aiming to thrive in the competitive online marketplace by sharing our expertise and firsthand knowledge. Upwork Startup Guide We guide listeners through establishing a solid presence on Upwork so they can use it to maximize their earning potential. Exploring Upwork: Navigating the Platform As...

info_outline
The Importance of Properly Defining Requirements show art The Importance of Properly Defining Requirements

Develpreneur: Become a Better Developer and Entrepreneur

In this podcast transcript, Rob and Michael delve into the pivotal topic of defining requirements in software development. They emphasize the significance of clear and detailed requirements, underscoring the potential pitfalls of vague or incomplete requirements. Throughout the conversation, they provide insights, anecdotes, and practical strategies for navigating the complexities of requirement gathering and management. Let's dive into the key points discussed by Rob and Michael. Defining Requirements The Importance of Clear Communication Rob and Michael stress the importance of...

info_outline
Pitching Your Services To Your Customers show art Pitching Your Services To Your Customers

Develpreneur: Become a Better Developer and Entrepreneur

As consultants and service-based business owners, one of the biggest challenges is identifying your ideal customer and effectively pitching your services to them. In this insightful podcast, Rob and Michael dive deep into this topic, sharing their experiences and strategies. Pitching Your Services The Primary Focus: Solve the Customer's Problem The core message that resonates throughout the discussion is the importance of understanding and addressing your customer's specific problems. Instead of leading with the technologies or services you offer, the initial focus should be on the...

info_outline
 
More Episodes

It is hard to think of a facet of software development that programmers dislike more than documentation.  This task is almost always pushed to the end, and shortcuts are used wherever possible.  However, we also are quick to complain about a lack of documentation when we pick up others' code.  Maybe we need to give so we can get.  that is the focus of this episode.

Documentation Begins With A Signature

All good documents start from an outline.  There is either a written or mental plan that the author follows.  In software, this objective comes from the signatures of the class and methods.   We have a set of details we must provide for every method out there.

  • What are the parameters supported?
  • Are there constraints for those parameters?
  • What is returned?
  • Are there exceptions or error-handling that needs to be documented?
  • Do we require other classes or libraries?
  • Are there side effects?

That is a sizable list when you consider that many methods are documented in a sentence or two.  While documentation can be exact and concise, that is not always best.

Using Documentation Generators

Consider a method:

 integer DoSomething(parm1, parm2) 

Here is the typical documentation:

 DoSomething returns an error code or 0 on success.  The first parameter is a number that tells which type of processing is needed (trim, pad, compress, encrypt).  The second is a string that is processed. 

I am being a bit obtuse in the above comment, but not far from what most automated tools generate.  That should be a start for our documentation and not the final version.

Add Color Commentary

We need to add details and specifics to our documentation.  This includes things like validations, side effects, and avoiding magic numbers.  Therefore, a better approach to the above would be something like this.

 DoSomething returns a 0 for success, -1 if the action is invalid, -2 if the string is null, -3 if the action fails.  The first parameter (parm1) is an integer with a value of 0 to 3.  This tells the method the action to perform. 
  •  0 - trim the string 
  •  1 - pad the string (left pad spaces to make the length 20) 
  •  2 - compress the string 
  •  3 - encrypt the string 
 The second parameter (parm2) is the string the action is performed on.  The resulting string is set in the instance and can be viewed through the getValue method (provide a link to that method if possible). 

There is minimal formatting in the example above.  Nevertheless, notice how much more information we have now provided.  There is no guesswork, and our expectations are properly set.  Thus, we have a document that is useful and will make the next developer happy to work with our code.