days
-1
0
hours
-1
-2
minutes
-5
-9
seconds
0
-2
search
Order of bug fixes for one, please

Forever Alone Programming: A date night with you and your code

Sarah Schlothauer
programming
© Shutterstock / EricaLeanne

Where are the methodologies for people who code alone? Introverts, never fear, here comes Forever Alone Programming, providing you with guidelines for solo programmers, freelancers, and small teams.

I work alone.” Lone wolves are everyone’s favorite. Between outlaws of the wild west, a stranded astronaut alone on Mars, Tom Hanks alone on a beach with a volleyball, Batman, and Geralt of Rivia, we can’t help but fall for a troubled loner. They’re mysterious, multi-faceted, complex. But, there’s also, well, lonely.

In the world of programming, working alone often isn’t as grand as if you were slaying monsters or beating crime. If you’ve ever been a solo worker or freelancer, you know how easy it is to lose yourself to deadlines and fall into a rut of the same mistakes over and over again. So, what’s a lone wolf to do?

The methodology

Forever Alone Programming was created by nopara73 on GitHub after he struggled to find any lean software development methodology that was also useful for solo programmers. If you work alone, check out this methodology and see if it will help your workflow.

Let’s begin the process! Forever Alone Programming uses the skeleton of the Agile Unified Process (AUP). Here’s what it looks like:

AUP

Credit: nopara73

Five step programming

There are five stages of every project: Inception, elaboration, construction, and transition.  This chart shows the ideal amount of time to spend during each phase on the model, implementation, testing, deploying, and project management. Let’s take a closer look at the five aforementioned phases, their suggested time requirements, and the steps involved from start to completion.

SEE ALSO: Siri, compile my code: Programming with voice control and the future of coding

Inception: What is the initial scope of the project?

  • Time requirements: 1 hour to 3 days
  • Gain general understanding over your project
  • Setup project directory structure
  • Define high level requirements
  • Estimate cost and schedule
  • Determine project feasibility
  • Reach agreement on milestones

Elaboration: Can you develop a system that meets requirements?

  • Time requirements: 1-7 days
  • Brainstorming
  • Evolve the requirements
  • Construct the architecture
  • Define tests in a high level
  • Create a detailed schedule
  • Adjust costs
  • Reach agreement on milestones

Construction: Build working software

  • Prepare the project environment
  • Prepare your testing environment
  • Proof of concepts
  • Code (Finally!)
  • Does your product satisfy the requirements?
  • Pre-production testing and bug fixing
  • Reach agreement on milestones

Transition: Validate and deploy the system

  • Time requirements: According to nopara73, “How long do you think it will take? Double it and you have a better estimation.”
  • Finish documentation
  • Acquire stakeholder acceptance
  • Beta-testing
  • Reach agreement on milestones
  • Deploy the system into production
  • Start executing your marketing plan
  • Maintain the software

Tips and tricks for programming alone

Each step also includes important tips, such as brainstorming away from the computer, edit code while sober (hey, we don’t judge, and if you work alone neither does your non-existent boss) and how to solve tricky problems with pragmatic thinking. (Ever hear of rubber duck debugging?)

SEE ALSO: Choosing a programming language that will fit your career aspirations

Forever Alone Programming also includes a caution against what is known as a “Tool Trap“, including an excerpt from the book Pragmatic Thinking and Learning. It is a great read for any software developer, whether you work alone or in a large team.

Is Forever Alone Programming right for you?

Nopara73 gives an important zen tip on GitHub to contemplate:

If nobody supervises you, you have to supervise yourself.

Have you forked FAP or are you more of a team player?

Author
Sarah Schlothauer

Sarah Schlothauer

All Posts by Sarah Schlothauer

Sarah Schlothauer is an assistant editor for JAXenter.com. She received her Bachelor's degree from Monmouth University in Long Branch, New Jersey and is currently enrolled at Goethe University in Frankfurt, Germany where she is working on her Masters. She lives in Frankfurt with her husband and cat.

Leave a Reply

Be the First to Comment!

avatar
400
  Subscribe  
Notify of