Approach life from a computer programming perspective

Posted by

As a computer programmer, I have often thought of applying software development principles to designing and creating the life I want. But what does this mean?

Let’s look at what a software developer does to create and maintain a working piece of software:

  1. You gather requirements.
  2. You create a design for how those requirements should be implemented.
  3. You implement the design to create a software program.
  4. You test the new program to make sure it works.
  5. Finally, you maintain this program over time, fixing bugs and adding new features.

Why not use this approach to design and implement what you want out of life?

Gathering Requirements

To create something of value in your life, you first need to identify what you want. To continue this software development metaphor, consider what a software developer does when starting a new project. Either the software developer or someone else on the team will sit down with the client to identify the requirements for the software application that will be developed.

Why not do this for yourself? Identify something that you want to change or create in your life. Now sit down and write out the requirements for what you want to do. Think of it like a software program. What actions should your new program perform?

For example, if you want to improve your finances, what type of program would you create? Before designing your new approach to handling your finances, identify the requirements for your new program. For example, the requirements for your new approach to handling your finances could look like this:

  1. Have more money coming in than going out.
  2. Have a budget so you can track your spending.
  3. Have an allowance to give you money for spending on whatever you want.

Designing Your Program

Now you have a list of requirements. The next step is to design your new program.

To continue our finance example, consider the first requirement for your new finance program. This requirement is having more money coming in than going out. How can you design a program for yourself so that you can implement this requirement?

The answer is to use both the first and second requirements to design a system where you spend less money than you earn. You design a budget for yourself so you can know how much you are spending, which will allow you to stop spending money before you exceed your budget.

Designing a program in which you use a budget will also let you fulfill your third requirement, which is to have an allowance so you will have money to spend on whatever you want. This allowance can be a category in your budget.

After identifying your budgeting categories, you decide how you will track your spending. You decide that a pen and a notebook will be the tools you will use to record your budget and track your spending.

What you have done now is that you have turned your requirements into a design. The next step is to implement the program that your design has outlined.

Implementing Your Design

You now have a design for a new financial program for your life. Your design included creating categories for a budget and identifying how you will track your budget categories and your expenses.

To implement your program, you acquire a notebook and a pen. You write out your categories on the first page with the amounts you have allocated for each category. The remaining pages of the notebook are now available for recording your expenses and tracking if your expenses fall within the budgets for each category.

You now have a budgeting program that uses a pen and a notebook for recording your finances.

Testing Your Implementation

Now that you have your new program, you need to use it. Test it out by actively recording your expenses over time. As you use your budgeting program, you will quickly identify how easy it is to use.

If it is working, keep using it! If it is not working, go back to the design phase and rethink how you could implement a budgeting program. Once you have designed a new approach, implement it, then test it. Once you have a working system, you move into the maintenance life cycle for your new program.

Maintenance

The maintenance phase for a program, whether it be a computer program or some system you have implemented for your life, needs to be maintained over time. A software program may have bugs that you find during the use of the program. Similarly, a system you create and use in your life may have its own issues that you need to correct.

For example, maybe your budgeting program you created runs into problems where you always have to spend more money for a certain category in your budget than you planned for. Does this mean you should give up on your budgeting program?

No. It does not.

Instead, modify your budget so that more money is set aside for the problem category in your budget and reduce the amount allocated to other areas of your budget where you have more control over how much you spend. Then move back to the testing phase, where you actively use your corrected budget so see if it works.

Over time you may find other bugs in your system, but you always adapt your budgeting system to account for them. This is like fixing bugs in a software program. You don’t give up on the software. You simply identify the bugs as they occur, and then correct them.

Another aspect of software maintenance is enhancement. This means adding new features to a computer program to make it better or to add features that were missing from the initial design. You can also do this for systems you implement in your life.

For example, our hypothetical budgeting program that we are using as an example is currently focused on tracking expenses. But what about income? Why not enhance your budgeting system to include the tracking of income?

With this newly enhanced system you will see how much money is coming in over time and this provides information that will help you to plan for how much money you can allocate to each expense category in your budget.

Just like with bug fixes, you need to move back to the testing phase after adding a new feature to a software program or to a system you create for use in your life. Test it to see if it works and adapt it until the new feature works correctly. Then keep using your new and improved system.

Conclusion

Software developers carefully gather requirements. Then they create a design to outline how they will implement those requirements. Finally, they implement their designs by writing code and creating something new.

Once they have created a new program, they test it and make changes until it is ready use. Once the new program is in use it moves into the software maintenance life cycle. The maintenance life cycle of a program includes identifying and fixes bugs as they occur, as well enhancing the software with new features over time.

This approach does not just apply to software development. You can use this approach in your life.

Identify the requirements for what you want from life. Use those requirements to design the life you want, then implement those designs to create the life you want. After implementing a new design in your life, test it to see if it works. Go back to the design and implementation phases as needed until your new system works for you. Then you move into the maintenance life cycle for your new your system or approach to life, where you actively use your new approach to life and adapt it over time by correcting bugs in the system and adding new features.

Like a software developer creating and maintaining a software program, you can create and maintain the life you want.

Leave a Reply