Develpreneur: Become a Better Developer and Entrepreneur artwork

Develpreneur: Become a Better Developer and Entrepreneur

779 episodes - English - Latest episode: 28 days ago - ★★★★★ - 12 ratings

This podcast is for aspiring entrepreneurs and technologists as well as those that want to become a designer and implementors of great software solutions. That includes solving problems through technology. We look at the whole skill set that makes a great developer. This includes tech skills, business and entrepreneurial skills, and life-hacking, so you have the time to get the job done while still enjoying life.

Technology Business developer entrepreneur lifehack prodcutivity software
Homepage Apple Podcasts Google Podcasts Overcast Castro Pocket Casts RSS feed

Episodes

Software Design - Finding Balance With Coupling And Cohesion

March 26, 2021 10:00 - 16 minutes - 22.5 MB

We have spent a few episodes looking at cohesion and coupling.  Now it is time to find balance in these two software design approaches.  Each approach has strengths and weaknesses.  Therefore, our best approach is to combine the strengths while offsetting the weaknesses.  This best-fit approach is not as difficult to achieve as it may seem. Cache The Main Data The large object approach allows us to access data and methods quickly.  We have a short path to get to these items as the layers...

Coupling - A Smaller Object Approach To Software Solutions

March 24, 2021 10:00 - 16 minutes - 23.3 MB

In object-oriented software, we talk about the concept of coupling.  Put simply; this is a small object approach to our solution.  It is the opposite end of the spectrum from large-object, or monolithic, designs.  In my experience, a developer's bias towards cohesion or coupling often comes from their background.  Those that have come from functional languages and platforms are more comfortable with cohesion, while those that built components tend to use coupling. Coupling Strengths It i...

Cohesion - A Big Object Approach To Design

March 22, 2021 10:00 - 15 minutes - 21.6 MB

This episode focuses on cohesion and the idea of using fewer large objects to solve a problem.  This approach is often considered the opposite of using more smaller objects.  We will find out that there are ways to combine these two different approaches as a best-fit method. Cohesion Strengths We have already defined and provided a summary of cohesion.  Therefore, we can dive right into some specifics and strengths of this approach.  I find simplicity to be one of the most apparent stren...

Cohesion and Coupling in Object-Oriented Design

March 19, 2021 10:00 - 14 minutes - 20.4 MB

Cohesion and coupling are options that are often discussed in object-oriented design circles.  They are two ways to approach a solution.  On the one hand, the solution can be a larger, self-contained approach.  On the other hand, the solution can be a core that uses several "helpers" to achieve the objective(s).  These are important options for us to consider as part of the overall OOD discussion.  In this episode, we start with an overview of these common paths. Cohesion Defined There a...

Property Design In An Object-Oriented System

March 17, 2021 10:00 - 14 minutes - 19.5 MB

One of the most prevalent topics of consideration in an object-oriented system is property design.  We can keep them simple or create more classes.  The first approach is simpler and faster to implement.  However, we can use objects to provide hooks we extensibility and scaling out our features.  There are trade-offs to be aware of, but we can use some guidelines to shorten the design process. Property Design Considerations For purposes of this episode, we will look at two paths availabl...

Class Relationships - When Has-A Shows a Relation

March 15, 2021 10:00 - 16 minutes - 22.9 MB

Our language can blur the distinctions of class relationships in designing our solution.  The "has-a" determination is often confused by how the English language can translate those words.  We also have to keep a context for assigning a class.  Likewise, reality allows for data to be multiple classes in some cases, so we need to examine how those might be a hierarchy of some sort. Class Relationships - "Have" As A Pointer The confusing aspect of the English language is that we can "have"...

Is A and Has A Concepts in Object-Oriented Design

March 12, 2021 11:00 - 15 minutes - 21.6 MB

The ideas of "is a" and "has a" are often discussed as part of object-oriented design.  These concepts may seem simple and obvious.  However, they can often be confused, and complex systems can blur the lines between them.  We start a multi-part episode going over these concepts focused on how "is a" relationships work. Is A and Has A Defined These concepts boil down to simple grammar.  For two objects, A and B, here are the options. A is a B if A has all of the traits of B.  For examp...

Granular Interfaces - How Much OO Is Practical?

March 10, 2021 11:00 - 15 minutes - 21.5 MB

The ideas of cohesion and coupling point us to paths that either place functionality in smaller or larger classes.  We discuss granular interfaces in this episode as an introduction to those "right-sizing" discussions.  Not all OO designs are created equal. Granular Interfaces - Bricks or Sand The best example I have come across in considering how to approach our design's granularity is comparing sand to bricks.  We can construct a building by starting from sand, making blocks of concret...

Inheritance - Polymorphism In A Hierarchical Manner

March 08, 2021 11:00 - 15 minutes - 21.1 MB

We switch gears in this episode and start to look at inheritance.  This is a core feature of object-oriented design and the most recognizable attribute.  Child classes are utilized through polymorphic support.  Thus, we have a natural transition into this popular usage of object-oriented solutions. A Lowest Common Denominator We have discussed the idea of building on methods where possible.  When we do, we are creating a lowest common denominator approach to functionality.  This is what...

Interfaces - An Object-Oriented Contract For Usage

March 05, 2021 11:00 - 15 minutes - 21.2 MB

This episode, we look at interfaces.  These are not supported by all languages.  However, when they are supported, they are very useful.  The interface specification allows us to provide language-based constraints for our method signatures.  It also is an excellent way to enforce consistancy. Interfaces As A Tool For Consistancy The most important result of using interfaces is that they enforce a consistant way to communicate with developers.  Any class that uses one of these items will...

Flexibility in OOP - Build in hooks for change

March 03, 2021 11:00 - 13 minutes - 18.6 MB

One of the essential concepts to understand is flexibility in OOP.  A good design requires the ability to extend it.  There are ways to do this.  However, they require us to incorporate mechanisms for validation and growth.  That means we need to find a balance between the core to our functionality and what can be altered as an enhancement. Flexibility in OOP - Many Options There are multiple ways to build flexibility into your object-oriented design.  We can use parameters that determi...

Code Consistency - Critical For Practical Polymorphism

March 01, 2021 11:00 - 14 minutes - 20.5 MB

One of the challenges of good polymorphic design is code consistency.  We are building a way to communicate with developers.  Therefore, our language or syntax needs to be easy to understand.  Likewise, we need to set and meet expectations properly. Code Consistency In Results The most common error I find in this area of coding is found in the values returned.  When we stick to native types and numbers, it tends to be easy enough to stay consistent.  However, strings and structures lend ...

Polymorphism Without Side Effects - Object-Oriented Clarity

February 26, 2021 11:00 - 14 minutes - 20.3 MB

We discussed in the previous episode how polymorphic behavior gives us a form of a common language for objects.  Thus we need to consider the idea of polymorphism without side effects, so we have clear and concise commands.  There is also a consistency required for this to be an approach that is truly useful. What Is Polymorphism Without Side Effects As always, we should start with a definition of terms.  In this case, our goal is clarity.  Polymorphism is a way to give a command each o...

Polymorphism Overview - Reducing code size and a better user experience

February 24, 2021 11:00 - 14 minutes - 20.2 MB

We start the next series of episodes with a polymorphism overview.  This is a core concept for proper object-oriented design.  Likewise, we will dig into several practical ways to use this. Polymorphism Overview - A Definition As with many topics, it seems best to start with a definition from Wikipedia. In programming languages and type theory, polymorphism is the provision of a single interface to entities of different types or the use of a single symbol to represent multiple differe...

Data Hiding - Practical Accessors

February 22, 2021 11:00 - 13 minutes - 19.1 MB

We have discussed the accessor levels of our data.  In most environments, the three levels are public, protected, and private.  In this episode, we go deeper into these concepts and a practical approach to data hiding. The Private Access Level This level of access should be our default.  It can be considered the critical step in data hiding.  Private hides our data and methods.  I find a physical example often works best for the goal of this approach.  When we purchase a physical devic...

A Practical Approach to Data Encapsulation

February 19, 2021 11:00 - 15 minutes - 21.2 MB

We have developed many bad habits over the years as OOP has proliferated frameworks and tools.  In this episode, we look at the practical side of data encapsulation and access levels like private, protected, and public. Tools Are A Beginning Modern frameworks and tools provide ways to generate a general object-oriented solution quickly.  Therefore, the tools will give us a start, but not the best solution.  There are too many details the tools are not privy to that are essential to the bes...

Data Hiding - A Need To Know Software Approach

February 17, 2021 11:00 - 13 minutes - 18.2 MB

Data encapsulation and data hiding are terms for keeping object properties from public consumption.  This concept is an essential part of object-oriented programming.  We need to be able to have internal processes and values that we can change without impacting users.  It also allows us to limit the impact of changes in large systems.  Thus, we will start our OOP season with a look at this somewhat simple concept. Data Hiding is more than properties. One important facet of this topic is th...

An Introduction to The Object-Oriented Programming Season

February 15, 2021 11:00 - 13 minutes - 19 MB

Object-Oriented Programming (OOP) and related concepts have become almost ubiquitous in modern software projects. It was a novel idea a few decades ago that has been incorporated into many frameworks and languages. We even have situations where OOP was "bolted on" to existing systems. However, all of that out of the box OOP design can hide it from us and keep us from fully embracing it. Therefore, this season will start from the OOP foundations and point to ways to embrace it in an intentio...

The 21-Day Habit Building Challenge

December 30, 2020 22:29 - 13 minutes - 19.1 MB

We decided that it is a good idea to start a new year with a habit building challenge.  Therefore, we have created exactly that.  The objective of this challenge is to pick something you will work on every day.  The something you work on should be do-able in fifteen minutes or less.  After twenty-one days, a new habit should be established, and your year off to a successful start.  The idea of 21 days guaranteeing a habit may be a myth.  However, this is a solid start on that goal. A New-Y...

Successful Completion, Declaring Victory, and Planning The Next Steps

December 25, 2020 11:00 - 20 minutes - 28.2 MB

Sooner or later, a task we work on will reach successful completion.  That is the goal, and yes, sometimes (hopefully often) we do achieve goals.  There is value in resting in that success for a time.  However, time marches on, and we need to plan for our next goal or goals. Damage Assessment We often have a push near the end of a goal that earns us that successful completion.  It is useful to assess the damage done in that final push.  We may be tired and need a little time to recover. ...

The Weight of Waiting Until The Last Minute

December 23, 2020 11:00 - 21 minutes - 29 MB

It is not hard to find a movie or show during the holidays that shows the weight of waiting until the last minute to get things done.  It often is shown in terms of delaying your gift purchases.  However, we can see other examples of how challenges impact when we are already spread thin.  We feel the pain of unexpected events much more when we have a full schedule than when we have some buffer built-in. Working Well Under Pressure These examples can be applied to all areas of our life.  ...

Celebrate Achievements and Victories - Do Not Forget A Job Well Done

December 21, 2020 11:00 - 21 minutes - 29.8 MB

We have calendars full of tasks and items to be done.  However, we must take time and celebrate achievements.  Whether we have successes daily or rarely, it is worth our time to revel in the positive feelings from a job well done.  No time is better for this bit of "self-indulgence" than year-end review and planning.  Looking forward and planning for the new year is important.  However, we can learn a lot and build confidence by embracing what we accomplished in the prior year. Why We Cele...

Side Hustle Ideas From Your Annual Review and Planning

December 14, 2020 11:00 - 21 minutes - 29.7 MB

Every year we find ourselves reviewing what was done and planning for the months ahead.  We do this as part of crafting New Year's resolutions or to plan for our business.  When we have a side hustle that makes this time more valuable.  As an incentive for you to get your planning and review done, here are some side hustle ideas that can come from this investment. Seasonal Problems As Side Hustle Ideas Seasonal problems are some of the most frustrating.  We suffer through them each seaso...

Find a Role or Job That Makes You Happy

December 07, 2020 11:00 - 20 minutes - 28 MB

Many things can be used to measure your success.  One of the most important of these is whether you can find a job that makes you happy.  That will allow you to live a life where you never work.  There is a job that you perform to pay the bills.  However, that is not a bad thing when you do what you love.  I believe that all of us have this magical job out there.  It may be romantic, like thinking there is someone for everyone.  Nevertheless, it is worth our effort to find a fit that brings ...

Maintaining Momentum And Steady Progress

November 27, 2020 11:00 - 18 minutes - 25.8 MB

Holidays and vacations provide us with many benefits.  However, maintaining momentum can be difficult during these times.  There are more than the normal level of distractions, along with a need to relax at least a little.  Fortunately, we can take small steps and keep our forward progress without taking much away from our time off. A Pause Is Ok While this episode focuses on how to maintain momentum and habits, that is not a requirement.  We can afford to put our drive for success on pa...

Holiday Sales, Budgets, and Side Hustles

November 25, 2020 11:00 - 18 minutes - 25.1 MB

Holiday sales start to show up earlier and earlier every year.  Black Friday has become well known and is not just for your personal purchases.  There are a lot of business-related purchases that can be impacted by these seasonal sales.  That is worth looking into whether you are using up an annual budget or trying to add tools for your side hustle. Holiday Sales and Discounts Most sales are driven by timing.  There are commissions that salespeople want to earn or sales numbers an organi...

Quiet Periods and Blackouts Over The Holidays

November 23, 2020 11:00 - 16 minutes - 22.1 MB

There are two sides to quiet periods or closing business over holidays.  We might do this to ease our schedules, or vendors may do so.  In either case, there is a need to plan and properly communicate with those impacted.  Lack of planning can cause all manner of headaches that have no useful solution. Launching a Product or Service The most common of these challenges in my recent experiences is dealing with a flood of year-end deployments.  Sites like the Apple Store, Google Play, and A...

Implementing An Incremental Approach - Small Progress is Still Progress

November 20, 2020 11:00 - 21 minutes - 30.2 MB

We have often touched on the idea of an incremental approach as one that builds to great achievements.  Let's look closer at how that works.  There are many arguments against these concepts as "not enough."  However, it is inarguable that small steps are forward progress, and they can build up habits.  Those habits can build great achievements and even become lifetime habits that never fade. A Few Minutes A Day There are many skills that we can build in minutes a day.  Vocabulary is an e...

System Backups - Prepare for the Worst

November 18, 2020 11:00 - 21 minutes - 29.2 MB

Sometimes it is important to get back to the basics when we plan for success.  One of the most basic tasks to address is the idea of system backups.  Many modern organizations build this into their daily processes.  However, we may not be able to take advantage of that for our personal work.  Moreover, side hustles need to include some of these standard processes to avoid data loss. Side Hustle System Backups A full backup is the most direct approach to solving this problem.  While we ha...

Setting Work Boundaries And Separating Your Life

November 16, 2020 11:00 - 24 minutes - 33.4 MB

The holy grail of full-time work from our home has several challenges.  One of the most impactful snares is a blurring of the lines between work and the rest of our life.  Therefore, we need to consider how some work boundaries can be set and enforced.  Slave labor is never a goal, and we need to be aware of whether we are being taken for granted. Quality Or Quantity There is always a trade-off in accomplishing a goal.  We can do it fast, cheap, or of quality.  You get two of the three. ...

Work Boundaries and Constraints For Greater Success

November 06, 2020 11:00 - 23 minutes - 32.5 MB

We are moving to more and more remote options for our job and career.  However, we need to set work boundaries if we are going to enjoy long-term success.  These constraints on our schedules will help us find a balance between work and other areas of life.  Your family will thank you, and so will your general health. Physical Work Boundaries Our work environment is an essential ingredient in our success.  There have been numerous studies on ergonomic environments and how they help us.  O...

Setting a Professional Development Pace For Success

November 04, 2020 11:00 - 23 minutes - 32.7 MB

We frequently look for ways to become better.  One part of that approach is steady (daily) forward progress.  However, this approach can be exhausting and even lead to burnout.  Therefore, we need to be aware of our professional development pace and avoid allowing it to drag us down. Daily Pacing The Pomodoro technique is a well-known approach to setting a pace through our day.  This creates periods of focused work and then rest.  The specifics of the focus and rest periods vary from per...

Hard Work Pays Off - You Get Out What You Put In

November 02, 2020 11:00 - 19 minutes - 27.4 MB

There is an old saw that hard work pays off.  It may seem to be a truth that only holds in some cases.  However, things tend to work out for us when we put in the time, effort and have some patience.  A recent "pay-off" reminded me that overnight success is seldom overnight. The 10000 Hour Rule There is a book that talks about how it takes ten thousand hours to master something.  That is a focus on developing a skill.  On the other hand, we develop soft skills and recognition around area...

Agile Principles Summary - Our Next Steps

October 30, 2020 10:00 - 23 minutes - 32.5 MB

In this final episode of the Agile Manifesto season, we look at the key takeaways we should have.  These items have been a focus throughout the season.  However, we can not ignore these critical aspects of "doing Agile right."  This agile principles summary will give us some items to consider as we try to improve as developers. Satisfy The Customer The final judge for any product is the customer.  You may try to provide the example of movies that have critics and reviews.  Nevertheless, ...

More Agile Development Patterns - Swarm and More

October 28, 2020 10:00 - 23 minutes - 32.4 MB

We are nearing the end of the season on the Agile Manifesto and more.  However, we have several agile development patterns left to consider before wrapping this up.  The themes of teamwork, communication, and satisfying the customer continue to pop up as part of this series of patterns. Swarm Agile assumes that things will happen that require us to change our approach.  These challenges may be new features that are critical, bugs, or highly underestimated tasks.  We all have seen these s...

Key Agile Patterns - Set Your Team Up For Success

October 26, 2020 10:00 - 24 minutes - 33.8 MB

We continue a review of key agile patterns with more ways to make sure it all goes right.  Each pattern is possibly overstated.  However, we need these to be a part of our process to get the benefits of an Agile approach.  As always, when we veer away from these patterns, we increase our odds of failure. Product Ownership We have mentioned the product owner as a role in Scrum.  We need this person to provide decisions.  That may seem trite or simplistic.  Nevertheless, an Agile project o...

Patterns For Agile - Templates for Success

October 23, 2020 10:00 - 23 minutes - 32 MB

In this episode, we continue a tour of patterns for Agile.  We will see definitions we need to set as well as tools for success.  A deeper review of this can be found on the DZone web site.  However, this should give you a good start on a checklist of items to include.  When you skip any of these, you reduce your odds of a successful Agile project. Increments We have talked about this before.  However, it is important to call out as one of the patterns for Agile.  We need to set the incr...

Agile Patterns - Make The Most of The Process

October 21, 2020 10:00 - 22 minutes - 31.6 MB

We take a look at Agile patterns as we come to the end of this season.  There has been a lot of content covered.  However, we do not want to move on without looking at tools for implementing these practices.  Fortunately, there is an excellent DZone article on Agile patterns for those that want to dig deeper into these. Avatars An avatar is exactly what you might expect on a project.  It can take the form of a magnet, a pin color, or a miniature of some sort.  It could even be a playing ...

Scrum Management Anti-Patterns - A Vote of No Confidence

October 19, 2020 10:00 - 22 minutes - 30.7 MB

The focus on anti-patterns continues with this episode.  We have touched on some of these challenges in other examples.  However, these scrum management anti-patterns are special in that they often point to a lack of confidence in the process.  That can reduce morale and the team's dedication to the process.  It can rapidly devolve into a negative monkey see, monkey do situation. Going Around the Scrum Master There are several reasons why a team member is tasked with specific work.  Howe...

Scrum Team Anti-Patterns, What We All Need To Avoid

October 16, 2020 10:00 - 25 minutes - 34.9 MB

Our focus the last few episodes have been on anti-patterns relegated to a specific role.  We take a step back in this episode and review scrum team anti-patterns.  These are mistakes we make on a whole that can derail our project and reduce velocity.  These can even drive a product into failure. Deliver The Wrong Thing There are many ways this anti-pattern can make an appearance.  The story may be too vague, requirements gathering is insufficient, or the dev team misses the point of a fe...

Common Scrum Master Anti-Patterns, Avoid These To Improve Velocity

October 14, 2020 10:00 - 26 minutes - 35.9 MB

We have talked about Scrum and Agile.  However, some guidance helps us improve our odds or success.  That is an essential part of becoming a better developer.  In this episode, we look at scrum master anti-patterns and position the team for improvement and success. No Retrospective Everyone needs a plan to be productive in pursuit of a goal.  Our goal of improving with each sprint will be impossible to achieve without assessing how we are doing.  That is what a retrospective provides.  W...

Agile Anti-Patterns of The Dev Team

October 12, 2020 10:00 - 26 minutes - 36.6 MB

Everything in software development has good and bad patterns.  We have looked at why the agile approach is valuable.  However, we need to review agile anti-patterns to avoid problems that can erase any benefits.  There are many ways we can misuse this process.  Here are some development team mistakes we can avoid No WIP Limit There is a pride people have around multi-tasking.  However, it is not the most efficient way to get things done.  Even worse, we can end up having too many tasks i...

Agile Weaknesses - When It Is Not a Good Approach

October 09, 2020 10:00 - 22 minutes - 31.6 MB

It may come as a shock, but there are agile weaknesses.  These are situations where a different approach brings a lower risk.  These weaknesses also point to the strengths and attributes of a project or team that make agile the best choice for our framework.  None of these are set in stone.  Thus, knowing about the weakness is an opportunity for overcoming it. The Team Is Central Most of the Agile weaknesses center around the team and their ability to follow through on the principles or...

Agile Philosophy, Not Hard And Fast Rules

October 07, 2020 10:00 - 20 minutes - 28 MB

We have covered a broad range of topics in our discussion of Agile.  However, the goal of this approach is to fit your team and environment.  Think of it as an agile philosophy and not a well-defined or rigid process.  Your team should make the framework applicable to them, not force the team into agile methods. Make Adjustments The principles and values laid out in the agile manifesto point to one or two primary goals.  We want to satisfy the customer and do so with working software.  ...

Using The Sprint Retrospective For Agile Improvement

October 05, 2020 10:00 - 27 minutes - 37.5 MB

The sprint retrospective is where we take the time to assess how we did and plan for improvement.  It is essential for getting better.  Unfortunately, running this activity can be challenging and easy to underestimate for its value.  Here are some suggestions for converting the time spent in a retrospective into action items for improvement. Initial Challenges All teams start out working on how they communicate.  That is just the nature of being human beings.  It is not different in the ...

Sprint Planning - Setting The Scope

October 02, 2020 10:00 - 23 minutes - 32 MB

We have set a goal of delivering working software as part of every sprint.  That requires sprint planning and deciding on what will be in or out of scope.  In this episode, we look at ways to craft a sprint and assist us in setting priorities and content.  The ultimate goal is to provide working software that satisfies the customer. The First Step When we start a project, there will often be an overwhelming amount of tasks in the backlog.  We will need to go through several sprints to re...

Sprint Grooming - Deciding on the Included Tasks

September 30, 2020 10:00 - 24 minutes - 33.3 MB

Several sub-tasks are needed for proper sprint grooming.  They are essential steps in crafting a sprint plan.  These tasks are not trivial and include such on-going difficulties as estimating the time or effort required.  In this episode, we will look closer at these essential activities. Estimating Effort There is no end to the content available to assist us in estimating effort.  However, there is also no silver bullet that allows us to guarantee proper estimation.  That is not a block...

Scrum Ceremonies - Running An Effective Sprint

September 28, 2020 10:00 - 25 minutes - 34.7 MB

We have already touched on the scrum ceremonies.  However, the way we perform each ceremony goes a long way towards embracing the Scrum process.  Let's take each item individually and examine how we can make the most of them.  These are investments in building a better sprint team.  They come from the Agile principles, and it is important we keep that in mind for each activity. The Daily Standup This task is the most popular of scrum ceremonies in my experience.  However, it is often mis...

The Sprint Process - An Agile Approach

September 25, 2020 10:00 - 28 minutes - 39 MB

The sprint process is a popular way to implement the Agile approach to software development.  Is has its detractors.  However, there are many ways that this approach can split up a large project into smaller bites.  This action of breaking something big into manageable pieces increases the chances of success.  Also, a sprint helps us address numerous principles discussed in the Agile Manifesto. Deliver Working Software A challenging part of the sprint process is the goal of delivering wo...

Scrum - A Framework for Agile Software Development

September 23, 2020 10:00 - 25 minutes - 35.4 MB

The Agile Manifesto gave us many ideas.  These were embraced by the software development community and implemented in many ways.  Scrum is one of these implementations that has become very popular.  Thus, it is valuable for us to examine what this framework provides and how it works.  In this episode, our focus is on the roles defined as we craft an overview of Scrum. The Product Owner We build solutions to problems.  Thus, our goal of satisfying the customer requires someone that under...

Books

Twitter Mentions

@selfpubwithdale 4 Episodes