Code Monkey home page Code Monkey logo

foreveraloneprogramming's Introduction

Forever Alone Programming

Software Development Methodology for Solo Programmers and Small Teams

Table Of Contents

Overview
   1. Inception
   2. Elaboration
   3. Construction
   4. Transition
Beware the Tool Trap

Motivation

I had been struggling to find any lean software development methodology that can work for solo programmers.
Whenever I researched the topic it was not uncommon to find testimonies like "I held a progress meeting with myself over a one-man burn down chart every morning".

Quote
I know something's coming. Something big. Like a train, and all I want is to jump on board, but it's getting faster and faster and I'm terrified that I'm gonna miss it.
Ryan, Halt and Catch Fire

Programming motherfucker, cowboy programming are what developers naturally choose when they finally find the time to work on a hobby project that they are enthusiastic about. This of course if you are not the very best expert with lots of stamina will probably lead you to unfinished projects and frustration. Sadly I was never able to fully get the hang of the today popular agile methodologies, no matter how much I tried. So I went back in time to university, where the infamous, traditional Rational Unified Process had been forced down our throats, way before we ever acquired any software development experience. Despite the bad timing, I liked it. This gave me the first insight to what is going on in an office. Several years ago this thread of thoughts led me to Agile Unified Process (AUP) and started to use it in my solo projects.

Tip
If nobody supervises you, you have to supervise yourself.

Time flew, things changed, books were read, experience was gained and I found myself using a reduced, lean, flexible and completely raped version of AUP.
Now, the time has finally came to armor myself with a guide on this development process.

Disclaimer:

I am not an expert on the topic, I just outline a practical roadmap that works better for me, than anything else I tried before.

Before you start

Ask yourself: "Is FAP right for me?"

  • If you do not enjoy autonomy on what project you do and how you do your project, it is not for you. I mean you should not be a slave in a master-slave relationship with any person or company, you should at least be a partner.
    -"I give you $1,000 to build this website for me." - FAP is not for you.
    -"I have $1,000, would you like to build a website with me?" - FAP is for you.
  • If you have more than a couple of people working for you, it is not the best way to go either.
  • If you have no experience in the skills your project is expected to be built upon, you would find this method confusing and I do not think is suitable for you.
  • The other side of the scale is excluding too. If you are the absolute expert on the field, do not bother with FAP, you have already developed practices those are more suitable for you.
Tip
Are you sharing my obsession with books, online talks and similar educational and inspiring material? If so, chances are they leave a guilty feeling in you, because you fail to apply the information in practice. The reason is because they are not instantly applicable. You have to apply them at the right time, the right place, in proper context. If you are anything like me and the most important part of your life is when you are working on something you care about, consider forking this repo to have your own version and improve upon it every time you gain a new insight. And the guilty feeling will evaporate.

foreveraloneprogramming's People

Contributors

nopara73 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.