Articles

System Evaluation

How do you pick between two complex solutions?

Let's say you have to pick a new web platform to rebuild your company's website.

People in different departments need to use it to edit their pages.

End users interact with the site in different ways, some will need complex features to display information and a UI for triggering actions.

Your RFP brought back several vendors with proposals for different solutions.

What should you pay attention to to make the right choice?

Cost

What is the total cost of ownership?

Overhead

Overhead is paperwork and coordination meetings.

Overhead kills productivity and profits.

Excessive overhead is unnecessary.

Developer Surveys

I would like to do surveys to gauge the team's sentiments.

Devs should feel satisfied with their work environment. Adequately compensated, positive relationships, potential to grow.

If there are any issues impacting satisfaction, I'd like to reconcile them.

What are the things to check for, and how can I create a good survey?

Chat GPT

Prompt

I am thinking of doing a survey to measure developer's satisfaction at work. Please help me determine what questions to ask, and how to create a survey that will produce meaningful results.

Starting Blocks

In track running, racers use starting blocks to get up to speed.

At the start, there is an of explosion of energy with everyone racing to the finish line. The starting blocks give them a solid foundation so they can put their full force into forward momentum.

At the start of a software project, we don't think it's a race. But by the end, we're definitely sprinting to the finish as the deadline comes to a close. Again, a solid start and earlier traction can return huge results.

Libraries, Frameworks, Plugins, etc.

We hear a lot of terms for software, but what do they all mean?

What is a program vs an application?

What is a service vs a platform?

What is a package vs a library?

What is a tool vs a utility?

What is a plugin vs a module?

What is an enhancement vs an extension?

What is a system vs a framework?

What is a protocol vs a standard?

The difference is in the micro or macro usage. On the left, things are generally smaller and have a more specific use case. On the right are things that have broader purpose and capabilities.

Smooth Sailing

We want things to go well, but they usually are not.

Mundane tasks like brushing our teeth are easy, but designing and building software has many challenges.

In sailing, calm water and steady wind makes a fast, smooth ride.

But in the world of seafaring, people face hardship and risk to get where they're going.

People who embrace the challenge and do what must be done are critical for making things as smooth as possible.

Quality Control

Time, money, quality - pick 2. Or aim for value.

 

If you want quick results, hire a team of experts at a big expense.

If you're on a budget, interns will save you money but take longer.

If you want the highest quality, it will take time and money.

 

As someone spending time and money on a project, you should understand the purpose of your work and seek to produce the most valuable outcome.

 

A premium product goes through many design and development iterations to reach it's final form.

Project Planning

A successful project starts with a solid plan.

Projects begin with a reason, a problem needs to be solved, or an opportunity to be achieved. They go through design and development, the team gets paid, and the client is happy. Along the way, there are many decisions to make, and they all have to fit within the allowed time and budget for the project. A good plan gives guidance throughout the process so that everyone is aligned in working towards the goal.

Content Migrations

A website redesign often means a complete rebuild and migrating content from the old site.

When it's done well, the new site replaces the old one and everyone loves the changes. When it's not, people are upset that things are missing or not working properly.

Onboarding

When developers are new to a project, they take time to get familiar with the codebase, the requirements, and team dynamics.

This process can be slowed or accelerated by certain factors, like tooling, experience, and leadership.

Onboarding can be frustrating for the new developer and the team. Things can take longer to get going, and the pressure to deliver can stress people out. Some of these feelings are internlized because we want to do a good job. Sometimes they are due to lofty expectations, or unforseen hurdles.