Introduction
Learn about developer tips from my thirty-plus years of developing enterprise solutions and various services and utilities.
Project managers
If they are in the budget, hire several. Every successful project I have worked on was managed by a project manager; without a project manager, there was more workload for the lead developer, who were not always the best in a project manager role.
Daily team meetings
Hold 30-minute meetings to review available resources, ongoing project status, and ticket status.
Daily project standup meetings
30-minute meetings with business Subject-Matter Expert (SME) and developers to review project progress. These are daily because after the SME reviews current progress, changes may be needed to business rules, the user interface, or databases. Best to capture changes sooner rather than later.
Core code
As a team of developers or a single developer matures code around similar business processes, consider breaking out common code into class projects coupled with test projects, then creating secure local NuGet packages.
Logging
If an application is being used by users in an organization, consider using a dedicated server for logging; for single-user applications, store logs under the executable folder.
Log all exceptions that reveal opportunities to change the code; in some cases, this can eliminate the need for try-catch statements by using assertions.
Code documentation
There can never be enough code documentation. Many developers are against documenting code; my advice to them is to write documentation and collapse it.
See also AI section
Code refactoring
For application and class projects, create tickets and assign a project manager. A ticket should point to a backlog of affected project(s). See code review section below.
Code reviews
Once a task is completed in a team environment, it should undergo a peer code review, then a senior developer review. For both reviews, all tests for the task must pass and not break existing code before committing changes. If even one test fails, a developer must fix the issue and repeat the reviews.
Modernization
In general, plan framework upgrades for production applications and core class projects.
Training
Without continual learning, from self-training to using paid services like Pluralsight, developers stagnate. Devs need to devote several hours a week to honing their skill set.
Chameleon
To succeed, be willing to learn other programming languages, CSS, and database syntax. For instance, to be hired for a C# position, I needed to be willing to code with ColdFusion.
AI
Don’t pick one tool and one model; invest in multiple tools. Recommend JetBrains AI Assistant for writing documentation.
Developer health
Taking 10-minute breaks can do wonders for your mind and eyes. Scheduled coffee breaks that involve walking with team members once a week are both healthy and great for keeping in touch with your team.
Tool set
The tools developers select range from VS Code and Visual Studio to Rider. My tool set has always been Visual Studio with ReSharper because they suit my needs an have always been able do 95 percent of my work in Visual Studio.
Code smarts
The longer a developer codes and matures they can see possibilities
Example (kept simple) which is limiting in regards to the output
public static class GenericIterators
{
public static void Iterate<T>(this IEnumerable<T> values, Func<T, string> formatter)
{
foreach (var (index, item) in values.Index())
Console.WriteLine($"{index,-5}{formatter(item)}");
}
}
With experience
public static class GenericIterators
{
public static void Iterate<T>(this IEnumerable<T> values, Func<T, string> formatter, Action<int, string> action)
{
foreach (var (index, item) in values.Index())
action(index, formatter(item));
}
}
Allows
string[] names =
[
"Karen",
"mARY",
"John"
];
names.Iterate(name => name.CapitalizeFirstLetter(),
(index, value) => Console.WriteLine($"{index,-5}{value}"));
Console.WriteLine();
names.Iterate(name => name.CapitalizeFirstLetter(),
(index, value) => Debug.WriteLine($"{index,-5}{value}"));
names.Iterate(name => name.CapitalizeFirstLetter(),
(index, value) => AnsiConsole.MarkupLine($"[cyan]{index,-5}[/][hotpink2]{value}[/]"));

Top comments (0)