Skip to content

Instantly share code, notes, and snippets.

@outbounder
Last active October 4, 2018 16:37
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save outbounder/5e72964e078632c2541b1d32e2b5f90e to your computer and use it in GitHub Desktop.
Save outbounder/5e72964e078632c2541b1d32e2b5f90e to your computer and use it in GitHub Desktop.
outlines rapid agile lean software development aimed to be optimized for change

Software development

In a nutshell it is just the following:

  1. got a task/requirements/problem which can be solved with a computer
  2. implement a solution
  3. see that solution actually works (most of the time)
  4. see that solution fails in some cases
  5. iterate from 2) to 5) until the original task/requirement/problem is resolved to its full extend

Then as in life we say the task/requirement/problem should be resolved right? Well it is not based on Chaos Theory where everything is known and subject to a change. Thus follows and the original task/requirement/problem -> it changes with time.

Here we are not going to focus on how to deal with different kind of changes but rather we'll work with the ability to withstand changes or in other words to be adaptive and how these concepts can be applied to the software development discipline in pratical manner.

That said software development mainly is a combination of using a technology/tools(what we use) and the methodology followed(how we use them). In that sense there are working pratical showcases within Camplight Ltd (the company which I'm proud member of) that they are at least one step closer towards managing complexity, chaos and adapting to changes.

Follows is a short list of those two aspects of the same thing called software development:

What

software development - https://node-organic.com

  • A concept and followup practical implementation of organic software development
  • Provides huge gains of development performance for experienced persons
  • covers and solves wide range of problems
  • is designed following nature's patterns thus is highly adaptive to changes

Agile / Lean organization - http://trello.com

  • Customizable Kanban board
  • Simple and intuitive UI
  • Realtime

Source code contributions - http://github.com

  • Fast (!) & Secure
  • Integrations build-in such as slack, trello, custom webhooks
  • Working (!) PR reviews & comments

Knowledge contributions - http://drive.google.com

  • Fast (!) & Secure
  • Document based (supports standard word processing and spreadsheet tools)
  • Cross-browser & cross-device support
  • Realtime (!) collaboration
  • Custom integrations via apis

Continuous delivery - http://codeship.com

  • Continuous integration and delivery automation
  • Buildin integration with github

Continuous delivery - http://linode.com

  • Fast (!) & Secure VPS hosting
  • Low cost, pay as you go model
  • Full control, images, integration apis

Communication - http://slack.com

  • Fast (!) & Secure text based communication
  • Buildin integrations & apis for automation
  • Plenty of open source contributions
  • Desktop, Web & mobile native support
  • Free up to 10 participants for online video conference calls
  • Cross-browser and cross-device support

How

  • Agile / Lean
  • Just one kickoff meeting per every start of working week
    • Defines sprint’s goals and their priorities
    • Clears any outstanding questions and/or open topics/tasks
    • Review and Retrospectives are not needed - what’s done is visible day by day directly operational either on staging and/or production
  • Communication (either online/offline/async) between all parties and stakeholders on daily basis is required to drive development’s
    • Priorities
    • Results & feedbacks
    • Tasks
  • Tasks
    • Are extracted from planned goals
    • Are small (1-2 hours of actual work required)
    • Can be created by everyone in the team
    • Have priorities accordingly to their related goals
    • Completed tasks are always tested and (if there is) feedback is provided resulting in new tasks (changes/fixes/improvements)
  • Source code contributions
    • GitFlow / GithubFlow
    • Master branch is production ready deployable
    • Staging branch is staging ready deployable before merging into Master
    • Develop branch is main stable development line
    • All other branches are features/hotfixes/etc… and are pushed constantly to upstream/origin been merged into Develop branch after PR and review
    • TDD / BDD driven
  • Assets design contributions
    • UI/UX guide based - do not create entire pages all the time, rather design a common UI controls and UX guide
    • Follow Photoshop Etiquette and alike
  • Continuous delivery
    • Incorporates a staging (quality assurance / tests) and production modes of developed system
    • In large systems addon per feature deployments are suitable in isolated environments

More awesome links

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment