Software Construction

Why not build the front end using WordPress with Angular. And build the backend with Laravel and VueJS. Or, the other way around? What do this even mean?

What do people mean by Back-end and Front-end in software development? It can be M vs VC or it can mean a database vs a display terminal, or it can mean the communications relationship responsibility and rules you apply to open channels between modules. Lost you yet?

Software can be hard to maintain if it is constructed in a monolithic fashion.

Or, software can comprise individually constructed components that interact, supported by backend state recording and other processes. Messages are the bits of memory flying between the clusters of logic. The reason the “dashboard” metaphor gets so much use if that it reflects this model. We want to see and control the software from one place.

The software we use to create environments that are constructed in this way are more resilient to change as they are always being made to work properly with a current set of scheduled changes.

“Reusable software” is a bit of a scam. It is not that you can literally reuse the universe of software assuming everything perfected needs to be forgotten about and simply linked to in various documented service connections. It is in the design of a software module: a concept of code reusability is important, but you do not have to do it just for the sake of it. Sometimes it is better to write with other priorities: speed, results, accuracy, and testability may be important, but generally will become less of a problem if you develop with usability as the primary objective.

We segment software into MVC patterns and the like because we know they fit the functionality we are looking for, abstractions are useful as we can fit them together.

Contracting example: tescomobile

Nicholas Alexander worked for three consecutive contract terms with Essence Digital in a team of Zend Angular WordPress and SCSS developers.

The site we worked on involved creating Angular rendered components managed by WordPress and connected via an API layer.

These examples include the skills of a team. There is no reason your site could not be this professional.

Ecommerce success

Woocommerce running on SSL site in a few hours

Yesterday, my artist and partner had a really good idea. It involved an online gallery and new works on the celebration of new life in her family. The website is an e-commerce site, and as ever, I was ready to roll my sleeves up.

I installed WordPress on a Cloud server for the best CMS experience and fluidity (with the right plugins WordPress is a fast way to get a website running). The Cloud version is slightly more difficult to setup than via a shared hosting environment: but once you have it right, then it is “process”. Programmers love “process”.

A working e-commerce shop advertising and selling a sample set of goods that can be paid for online, quickly and safely was the goal. The basic problem of business is the selling of goods and services.

We wanted a gallery and for it to work with all ecommerce features – so set it up with Woocommerce using their template as a base and it will be published real soon now. Watch this space, it is called the the Art4Kids Gallery.

This story is very similar to how our Initial Website Offer was thought about.

Site profile: Software Antelope

Before Remote Development I created this interface using html, css, d3js, and boostrap for the company that owns Remote Development, Software Antelope Ltd. (I made the software and then was hired as an onsite contractor spending 25% over-time travelling to and from work). Remote Development is a new iteration of the same project – completely new software and brand.

Getting on board

Getting started

The first step is to register and then you can access our services immediately.

Once registered as a client you see this screen:

Here is an illustrative example of our user-friendly introduction form so we know the name of your business and whatever you want to tell us about your objectives:

Some clients have to get a website before they want development services, and we can get you setup usually rapidly.  We then provide support services to help make you independently able to extend your business, your art, your creativity on the web medium more easily.  And then leave you to it.  Yes, we can extend support services but each has a term and a desired set of goals.

Corporate Clients often will have a requirement that is more detailed and which is evolving as each Department may have an input.  They may have approached the market and found they either had to build and staff up a team, budgeting up to five or six figures to resource a project. There are usually holes, contractors may simply not be available. Or it is just too great a risk to contemplate starting, yet.

Our services are used by IT departments, Agencies, and IT Managers to keep a project on target.  You want good developers: some of the hard-working skilled contractors who can win in the tough London market now live remotely.  We offer a structure for subcontracting to add effective workers to existing projects as well as assemble teams for whole projects.  You want people who understand what you need and are good at delivering and understanding client requirements.

Developers

We offer a structure for developers to join who are skilled in delivering software modules to contribute to a sprint and to win a “fair share” of the fee.  Most of our developers are full-stack so they can claim 100% but some may wish to invite other developers to join in.

We only accept payment claims that meet the high level of performance we expect from developers.  We do not employ developers, they may wish to contribute to a project to develop a relationship with a client. We provide an infrastructure to the client and manage projects.

A combination of old-school fundamentals and state of the art frameworks and online service integration means that Developers can leverage our infrastructure to manage remote work for clients more easily.

Client Homepage

Our client home page provides a quick method to understand services and to send your enquiry. For example, you may initially ask us to build a new website so you can blog about the project. Or you may have a defined project you wish to talk about.

We then respond with a proposal by email. This is not a quote but an estimate of how many 2-week sprint iterations are possibly required to get your project working.   New projects can take the MVP approach – what is the core purpose of your project, and develop that, and extend it with other services, or applications.  That way your existing services continue to work without interruption.

New projects can take the MVP approach – what is the core purpose of your project, and develop that, and extend it with other services, or applications.  That way your existing services continue to work without interruption.

We have looked at your requirement and estimate about how long that may take, and how many developers we need to achieve the results we are proposing.

We send the Client a proposal with two links, one is to place an order on account, and the other is to take advantage of a prepayment discount for the first Sprint and/or a down-payment for new clients.

The Client can now order or inquire about additional projects, collecting estimates to on-ramp projects easily.

When an order is placed, the work is scheduled and one of our team of developers will be in touch to commence the first Sprint. In two weeks, results are published on our Staging Server, ready for Client acceptance.

Agile

Agile Software Development was developed by some of the best minds in our industry. Years ago. Since 1998 it has become the way to do things.

Short Iterations
We use 10 day sprints (over two weeks). During each Sprint, we follow a sprint plan. We need two basic sprint plans for the initial sprint for a CMS site or a Development project. These can be patterns, something like:

CMS

  • collect design components from the client using survey page*
  • Create WordPress Instance, connect to domain and email addresses
  • Using a base template* and the core set of plugins* create pages and menus for the Core Items*
  • Liaise with client to collect core information for Contact us and About us page

Development Project

  • Get basic info from the Client
  • Instantiate base site on Cloud
  • Implement User Registration and Auth
  • Client specific steps…

These are not complete! Discussion with the client over Slack is required for 2 – 4 days to flesh out the project.

*there are common elements we can write to make our lives far easier and expand on what we can implement during the first sprint. Each item we develop, we share across the network so that we have constantly rising standards of delivery for that all important first sprint.

TDD (Test Driven Development) – Laravel has an excellent TDD method. Development Projects benefit in quality and speed by using TDD. 100% test coverage is the goal with TDD. It is best practice. If you develop without TDD, then you will spend more time debugging when adding a new feature later.

Sprints – Each ticket on Trello is in a subject column. Each ticket has a label which has a status. These are

Research
Concepts
In DESIGN
ACTIVE
DONE
BUG

When a ticket is done, it stays around until the end of the sprint, and then it is Archived. We do not resurrect a ticket, we create a BUG ticket if the problem arises in a new Sprint or reset the DONE flag if it is not really complete.

Tickets
Each ticket you pick up at the Scrum meeting – you complete that day. Each ticket is given another tag during Sprint Planning which is simply a projection of how many hours the ticket can be done in. This is a planning expectation and helps us organise work. Each ticket is completed with QUALITY first, meaning the deadline is not as important than it is completed professionally and forever. Each Developer has a Label which is used to assign the task.

Example

Scrum
Every day at a strictly appointed time, the team review the Trello board over a Google Hangout. Get your coffee before the meeting, and anyone who does not join the meeting on time will get assigned work. Anyone at the meeting assigns their own work. If work is not completed from the previous Scrum, then it is continued and NO NEW TICKET can be assigned. If it is near the end of the Sprint, other developers may collaborate but most tickets are the singular responsibility of the assigned developer. If you want to claim a share of the reward, then you have to do the work!

A new Developer

Initialisation

When a new developer joins our team, these steps must be completed.

1. The developer must fill in their basic profile and upload their CV as a PDF.
2. Create full.name@remotedevelopment.co.uk and forward it to their email address.
3. Invite to Slack and welcome them with a conversation.
4. Invite to Trello and get them to register BUGS after reviewing the LIVE site app.
5. Github TBA
6. Google Hangouts TBA

The developer should now be ready to be invited to projects.

Trello

Developers can originate tasks for the LIVE or CMS sites by adding cards

The red label (if you can not see the caption, click on one) ACTIVE – there should be one per board (per application) – this is the Agile method – only one job is done at once – so if you originate a card – you do not set it as ACTIVE unless there are none set as active and it is urgent. That way it is clear what the Developer is working on right now.

The Remote Development board is an example of an active board. Each RD project gets its own board.

Remote Development Websites

Remote Development is a “hybrid” site: this site is a CMS, we also have a web app written in Laravel which is an ongoing agile project, our live site.

This website www.remotedevelopment.co.uk is our marketing and information site, if you want to contribute to it, please email info@remotedevelopment.co.uk.

Our live site is https://live.remotedevelopment.co.uk where you can register as a client or developer and interact with us with your enquiry which may result in a proposal that maps out the starting phase of building your web assets.

As a client, you can send enquiries and we propose without obligation, remote development projects for you to consider. We cater for both initial website ideas and web application development using a highly successful software stack. To be clear, we develop code on contract and the result is paid for and owned by the client.

As a developer, you can post your profile and CV. If your professional skills suit a project, you may be invited to contribute. All developers are independent and are paid on successful completion of each stage.

Development Software

A coherent software team become expert in their tool sets by using them. For this reason we focus on an excellent “software stack” of inter-related software frameworks that allows rapid implementation of both front and back end project elements. We believe these are our important software delivery advantages and only work with developers who work similarly.

> > > Software Stack