Agile mindset: Making agile more than just a development methodology

agile mindset

Mindset is everything

To software developers, the word “agile” usually conjures up thoughts of project tracking, story points, and team velocity. To truly be the most effective developer that you can be, the word agile should also remind you that change is constant and that you must adapt. An agile mindset is the greatest tool a software developer can possess.

Too many software developers fall into the routine of their process. We work our stories, finish our sprints, and move on to the next iteration. While this does allow software to be produced in a predictable manner, it also can shackle developers. When facing a new challenge that challenges their existing mindset, these shackles can hold a developer back. Continue reading

Debugging like Elon Musk

Every time I think I’m doing pretty good with my projects, I take look over and see what Elon Musk is doing. Then I instantly feel like I’m wasting my life. That guy does such huge things and he does them so quickly it is mind boggling. What is his secret? Can I be like that?

The answers is yes, if you use “First Principles” reasoning. I have found that when you apply first principles to debugging software that you will get to better solutions. So what is first principles? Here’s Elon explaining the how and what of it:

So here’s the take away:

Continue reading

Managing projects

In most workplaces, software developers have someone who tells them what to do and when to do it. Managing projects usually is the responsibility of a Project Manager, Scrum master, team lead, or even just “the boss”. But what happens when you don’t have that guidance? Or of you are working on side project by yourself? Here’s how I manage my projects.

If you are going to succeed on a project you’ve got to have a plan. A plan has a start, an objective, and the series of steps that have to be taken to get to the objective. Continue reading

Learn a new programming language

In the world of software development there’s always something new popping up. New languages, frameworks, operating systems, databases, you name it. The challenge for a developer is to stay on top and ahead of these new technologies. It can be very tempting to give up and not learn anything new, but I want to propose that learning new things like a new language or framework can be very helpful!

Learning begets learning

The more you practice the art of learning something new, the easier it is to learn new things. This sounds like tautology, but it is true. Continue reading

Deploying with Gitlab’s Continuous Integration

Have you seen the Gitlab Continuous Integration feature? It is pretty sweet. All you have to do is include a special yaml file and then when you check in new code it will build/test it for you. As awesome as that is, can it also deploy your code? The answer is YES!

Getting started

The first step is to create a .gitlab-ci.yml file in the root of your repo. This file is seen by gitlab and is used to configure a Continuous Integration (CI) server that will build and test your code. Continue reading

Coder’s block

Writer’s block is a problem that writers have when they simply don’t know what words to put on the page. Developer’s have this same problem, I like to call it coder’s block. Where does it come from, and how do we get rid of it? Let’s dive in.

Where coder’s block comes from

My theory is that coder’s block is the result of burn out. When you are so close to your work for so long burnout becomes a serious problem. At first you will start to make “simple” mistakes more frequently, and eventually most things start to take longer to finish. This all builds on itself and starts to erode your self confidence in your work.

Once your confidence is being questioned it is every easy for things to snowball to the point where you are afraid to write code for fear of it being another broken thing to fix. At this point you are deep in the throes of coder’s block. Nothing seems to work right, and it seems like it never will.

The worst part of this is that most of the damage is self inflicted.  Continue reading

Doing the work

Sometimes it is painful.

The deadline that is looming closer. The code that just won’t work correctly no matter how much you cuss at it. The simple library upgrade that wrecks your program completely.

But it has to be done. And you need to do it.

At times like this you need to remind yourself that nothing great was ever created without some struggle. Everything that was ever created that is considered good involved some one doing hard work to make it happen. You are no different. If you are going to make something good, you will be working hard on it. Continue reading