Author: Michael Blood
Closing your AWS Account
There are a few reasons you may want to close your Amazon Web Services (AWS) Account.
Most of the time it is because you had some level of service with AWS – and now you no longer want these services.
Before you close your account, it may be a good idea to do a survey of all of the services to confirm that they are no longer needed.
The best way to see what you have , is to open the AWS Account – and go to the billing dashboard – and then look through your monthly bill. This helps you identify which services you have, you can use this list to open each of the sections in the AWS Console – select the correct region and review the service.
If you no longer need the service you can delete it.
If you are unsure whether you need it, contact your developer (contact-us)
If you are positive that you are ready to close your AWS Account, you can follow these instructions (these instructions are from this AWS Support Page)
- Sign in as the root user of the account that you want to close, using the email address and password that are associated with the account. If you sign in as an AWS Identity and Access Management (IAM) user or role, you can’t close an account.
- Open the Billing and Cost Management console at https://console.aws.amazon.com/billing/home#/.
- On the navigation bar in the upper-right corner, choose your account name (or alias), and then choose My Account.
- On the Account Settings page, scroll to the end of the page to the Close Account section. Read and ensure that you understand the text next to the check boxes. After you close an AWS account, you can no longer use it to access AWS services.
- Select the check boxes to accept the terms, and then choose Close Account.
- In the confirmation box, choose Close Account.
How to Protect Your Intellectual Property
In the beginning phases of developing an application, there are many things to keep in mind in order to protect an idea and the process through which the idea is implemented. One important first step is setting up possession of code. By setting this up at the beginning of the process, you can confirm ownership which will give you ultimate control over what happens during the project process.
What is Possession of Code?
Possession is defined as, “the state of having, owning, or controlling something.” This is no different within the world of software development. To avoid issues down the road, setting up access to the current code base is best practice. To understand this process, it can take a bit of training and research but it is well worth it to protect your project.
Time and time again, individuals run into the issue of obtaining their code from a previous developer when switching to a new freelancer, internal developer, or third party development firm. If you have possession of your code, you have access to invite new developers or revoke past developers if there comes a time when you no longer want a developer to make changes to your project.
Another way to protect your code is through an NDA (non-disclosure agreement). While ensuring that you have obtained possession of your code is important, an NDA is an equally important next step.
What is an NDA?
An NDA is a non-disclosure agreement. Its purpose is to create the legal framework that protects you and your application idea from being shared with anyone else. This article is a great resource that will tell you everything you need to know when it comes to non-disclosure
Do I need an NDA?
It is best practice to have an NDA in place when dealing with anything pertaining to intellectual property. An NDA ensures confidentiality and protection. Without an NDA, you are at risk of your idea being leaked.
Your ideas are an extension of your creativity and keeping them protected is of utmost importance. Ensuring possession and ownership and signing an NDA are two ways that you can ensure protection and have peace of mind and you dive into the world of software development.
Agile and Waterfall Methodologies in Software
Waterfall and Agile are well known approaches in software development. They are two unique methodologies providing different directions for various types of projects.
Agile Software Development – a type of development framework that expects the need for flexibility and applies a level of efficiency to the delivery of the finished product through consistent deliverables & communication.
- Frequent meetings
- Works well in conjunction with MVP
- High flexibility
- Short term deadlines – quick deliverables
- Collaboration between parties
- Reduced risk
- Cost effective
This graph shows the flow of an agile timeline. There is constantly a new deliverable and after each deliverable, there is communication between parties to review what is working and what needs to shift in order to continue improving the product. The time between each deliverable is typically two to four weeks, although it can be shorter. Due to consistent communication between parties, agile is more cost effective because the project can shift easily and frequently.
Waterfall Software Development – With a waterfall methodology, the scope and requirements of the project are defined upfront. The client receives large batch deliverables at the end of each development phase.
- Goals set from the beginning
- Requirements are clear and fixed
- Infrequent meetings
- Complete deliverables before moving onto next phase
- Low flexibility
- Higher cost
Looking at the graph to the right, you’ll see that Waterfall project timelines are longer than Agile. While working on a Waterfall project, there is often less communication as the requirements are less flexible in the beginning phases of the project. Due to this, there is more risk associated because of less flexibility to change the product. In Waterfall, each stage of the project needs to be completed before moving on to the next step.
Agile is more commonly used today because of the flexibility, cost efficiency, and reduced risk associated with this methodology.
Onshore vs. Offshore Development
The Difference Between Onshore & Offshore Development
When deciding to develop a new app, there are many choices to be made. A large decision is deciding where your app will be developed. This article will go over some of the nuances of onshore vs. offshore development. By the end of this segment, you should have a better understanding of which direction would be best suited for you and your company.
Offshore: Offshore development is hiring out your development needs to an individual or a company that does not reside in your same country.
Onshore: Onshore development is hiring out your development needs to an individual or a company that resides within the same country your business is located.
In Person Connection
Meeting in person can cultivate relationships between two companies or individuals that are harder to cultivate online. The ability to meet face to face can help clearly communicate the needs of your business.
Being able to clearly communicate can make the difference between project successes and failure.
Something to be aware of when dealing with onshore companies, is a term called “backdoor offshoring”. This is essentially when you hire a team in your country, and they hire out the work to an offshore freelancer or company. You can ask to meet with your developer in person and know exactly who is going to be assigned to your project and be in tune with the entirety of the project.
Typically, offshore companies offer their services at a lower cost than those within the United States. Offshore companies have more employees that are ready and willing to work which in turn creates a faster turnaround time on projects. Many companies in the US are very popular and busy which may cause a delay in project startup. Many offshore companies have workers that are ready to work as soon as the next project comes up. Because of these factors, turnaround times can be much faster offshore than onshore. Although, this can vary between projects and their specific needs.
The world is vast and so is the talent pool outside of where you live. Offshoring means that you have access to many brilliant and talented individuals worldwide. Offshoring can be a great way to access developers with a wide range of skills.
One issue with offshore development is the difference in time zones. Very practically speaking, it can make it very difficult to find time to connect when questions arise, or you just simply need to get in touch with your developer. On the other hand, different time zones can be positive for founders that have a day job and are working on their software idea at night. An offset schedule can be a project advantage.
When working with individuals in other countries, it is safe to assume that English will not be their first language. Even if spoken with proficiency, there can still be unique challenges that present themselves.
No matter if you choose onshore or offshore development, it is wise that you know where your code is being stored and be sure to have access to it. If you choose the offshore route, looking up the law pertaining to code ownership and possession in that country is beneficial.
Does Your Business Need a Mobile App?
Mobile apps have increasingly become an integral part of the digital landscape. For many businesses, they are an indispensable asset and for others, the question still remains: “Should my business be utilizing a mobile app?” This article discusses a few things to consider before jumping into the world of app development and will give a better understanding of things to consider when deciding if an application is necessary for your business.
- Your audience
- The value of your app
- Your competitors
- Long term app support
- Current website
Consider who your audience and ideal customers are. Here is a great article from HubSpot that breaks down exactly how to figure out who your target audience is.
The Value of Your Mobile App
An app should add inherent value to both a business and its customers. Here are a few ways an app can add value:
- New Revenue
- Selling goods and services
- Process payments, track orders, and manage inventory
- Sell a new product
- Offer follow-up goods
- Build Relationships
- Connect to your customers through push notifications about new products, services, special offers, and events.
- Collect customer feedback and build relationships
- Better customer service
- Reduce Expenses
- Can help save time
- Answer questions
- Automate processes
Long Term App Support
Apps require maintenance of follow-up features and updates. Once an app is developed, there may be bug fixes to keep up with along with improving basic functionality of the app as time goes on. Consider the time commitment and cost associated with keeping an app updated.
When deciding if you need a mobile app, consider whether you are able to accomplish what you need by adding small changes to your website. A well optimized website can provide many of the same functions as a mobile application. If you already have a website, think about the additional benefits a mobile app will provide and ask yourself the question, “Should my business be utilizing a mobile app?”
All in all, developing an app can be a very positive addition to your business when it adds value and helps you connect with your consumers. If you are interested in looking at the next steps, talking with a professional app development company is a great place to start in order to assess your business needs and determine if an app is right for you.
Your software developer is quitting: now what?
So the truth is out! The developer that knows everything about your project is not going to be around to finish it.
You may have cursed a bit under your breath and tried to quickly maneuver to keep them on board – however, you are reading this article because you now know it is up to you to confirm you have possession of your project. It is up to you to take control of the software so you can direct it and secure the future of it. Here is how you do it.
- First of all, don’t freak out, a calm and professional response to the news is the best way to encourage a smooth transfer of all project assets and assistance identifying ‘forgotten’ assets.
- Second, create a shared ‘offboarding’ document and / or folder where you can coordinate the process of collecting information about your project.
- Request information from your developer – Let them know that the most important part of their offboarding is to help you understand the project – so you can help the next person take it over.
- Confirm that you have the information you are looking for – it can be tempting to just assume you have it, but by taking the time to verify it, you will identify things that are missed and save headaches later.
Don’t Freak Out
Why is this a step? Because we have found that some of our past clients needed this reminder. Too often we hear of hasty hire or poorly orchestrated offboarding while the manager spends time realizing that the project was not going to be done the way they had previously assumed. Often, the decision will be made to try to ‘get it all done’ in the next two weeks. They drive the developer to spend every moment of their last two weeks getting writing code. This should not be the first priority! The first priority should be to ensure that the possession of the project is fully in the control of your company and the company can continue development of the project in the future.
One of the reasons that we see managers ‘Freak Out’ at this stage is because they have not previously recognized that they should have set their project up in a way that made sure that the project was already in the possession of the company. Ultimately, any project that was going to be owned by your company had to be in company possession anyway, right? So this is a good thing – we are going through the process of putting your project in your control – so your project will survive this ‘developer change’ and any ‘developer changes’ in the future.
Your systematic and practical approach to offboarding your current developer will result in a strong understanding of your project and an improved ability to select the ideal replacement when you restart your project. The possession you end up with will give you the confidence to restart and finish the project in the future.
Create a shared offboarding folder
Create a shared folder where you can work with your developer over the next days and weeks to collect information about your projects. You will want to create the area yourself and setup the structure to have the information you want.
I use Google Documents because the ability to collaborate is better than any other tool, but what is important is that it works for you and your developer and you are able to see each other’s work. Create several documents and give your developer access so they can make changes where you can see them. I recommend that you create the following documents at a minimum – be sure that each of the folders has permissions which allow your developer to make changes:
- Document: Offboarding Checklist / Instructions
- Document: Offboard TeamMemberName – MM/DD/YYYY – Projects / Assets / Credentials
- Folder: Project Asset Uploads
- Folder: Recordings
I have created an example (with some sample entries)
Request the following from your developer:
- Fill out the offboarding document with credentials and links to each project and project source
- List all code repositories and transfer ownership to me
- Provide me with access to your workstation
- Record a video of you working through opening, making a simple development change and then deploying
- Record a video showing the workstation and development environment and configuration
- Record a video explaining for each project what your next steps and recommendations would be
Confirm possession and control of your code
- Understand and confirm your understanding of all project assets
- Test credentials and confirm owner level access to all project assets
- Confirm project source links and documentation, add notes and request updates
- Review recordings and request additional recordings.
- Time permitting: Request a review / audit of code / transfer confirmation from a third party
Marketing Websites vs Web Applications
We are often asked if we build “websites” – yes we do, but there is nuance to the answer. The websites that we build are better defined as “Web Applications”. And a “Web Application” is different from another type of website – a “Marketing Website”. How are these two different? In short: A Marketing Website presents information about a topic or business and a Web Application helps users get something done. The table below describes many of the differences between a Marketing Site and a Web Application. Since Matraex is the #1 Web Applications development firm in the Boise market – people looking for a local ‘Website Designer’ will often reach out to us – I added some links to the Google My Business page for several long term and reliable local resources to help people understand the different companies that comprise these different categories of “Website” builders.
Marketing Website Developers
Web Application Developers
- Matraex, Inc (this is us!!)
The key differences between a Marketing Website and a Web Application
|Marketing Website||Web Application|
|Purpose||A marketing website’s goal is to provide information, most of these are corporate business sites providing details of a company’s offerings with resources, contact information and links to related industry||A Web Application is a website that helps a user accomplish something through its interfaces.|
|Development process||A Marketing Website can be developed by creating and approving a design, building on the information and content and then applying the design to the content.||A Web Application starts as an idea and forms into a list of features (a roadmap) with the most important features first. The developers implement the items in order of the roadmap. More sophisticated applications often have multiple environments so the complex logic can be tested be approving features to be moved to launch.|
|Time to launch||An entry Marketing Website can take between one week and one month depending on complexity and number of pages.||An entry Web Application MVP (minimum viable product), can take 2 to 6 months to launch.|
|Time Requirements||Most time goes to creating content and managing SEO. A larger one time cost to design the interface and layout is a close second||Most time is spent in developing code to create features and functionality.|
|Team||A project manager, a content creator, and a front-end developer.||Project manager and a full stack developer. Larger teams will have roles split into back-end and front-end developers.|
|Hosting Cost||Less expensive – MANY SOLUTIONS!||More expensive – the hosting is often decided by the technology stack and development group. Modern applications use cloud based hosting which only charge for usage, but can scale to high levels|
|Common Technology Platforms||WordPress, Wix, Square||PHP, React.js, NodeJS, ASP.NET, java|
|Specialties||HTML / CSS / Design / Front End|
SEO / Content Generation /
Design / Copywriting
|Programming / Database / Logic / Backend
Testing / User Experience / QA
Innovation / Security
What to do When Apps Stop Working
Your app stopped working, now what?
Picture this. You’re in the middle of your favorite TV Show and the episode is hitting the most climactic moment of the series, then all of a sudden your app freezes. What do you do now? (the below is assuming your internet is working just fine)
1. You could try refreshing the app
In some cases dragging from the top of the screen down the app will refresh. Not every app is coded to do this, however.
2. You could close and re-open the app
If a refresh didn’t work or it wasn’t possible, you could simply close the app and re-open it. This is done by going to your home screen and shutting down the app. If your video still won’t play you may need to jump to desperate measures.
3. Restart your phone
Sometimes your phone encounters a bug that cannot be resolved until you completely shut down your phone and boot it back up. It’s the common IT Solution to most problems, “did you restart it?”. Upon booting your phone and app back up it’s still not working, you may need to go one step further.
4. Restart your internet
The software behind your video player might be experiencing connectivity issues. If this is the case restart your modem.
5. Delete the app
When push comes to shove you may need to delete the app and reinstall it. We’re hoping you haven’t reached this point because one, you’ve taken a lot of steps already, and two if this doesn’t work the odds of it being an issue on your end are low. If you reinstalled your app there may be a bug in the app that is causing a break in its functionality. If this is the case, leave a review on the app store or directly contact the developer.
We’re hoping you can get back to your show or whatever kind of app you were using quickly. In our experience, this isn’t always the case, but most often a restart will solve the problem.
To find out how we handle bugs and errors feel free to give us a call! (208)344-1115
How Apps Help Businesses
From time management, account management, to money management, apps can help your business in a variety of ways.
Here are 4 Ways Apps Can Help Your Business
- Time Management Apps
Whether it’s tracking your employees’ time or tracking your own, keeping track of tasks can help you save time and money. Let’s break it down.
Let’s say you are a grocery store owner. Each employee in any department has a variety of tasks that they complete each and every day. How long does each of those tasks take? Are they adding value or simply costing your grocery store money?
From the time that an employee clocks in at the main punch-in machine to the time that they punch out, what did they accomplish?
Did they spend a lot of time doing department cleaning? Did they spend a lot of time helping customers find items? How long did your baggers spend collecting carts from the parking lot?
These are all tasks that can be tracked but in most cases they aren’t. The benefits of tracking time are clear and are laid out plainly right here: https://biz30.timedoctor.com/time-tracking-statistics/
They include increased morale, more money saved, and overall a more cohesive team.
2. Account Management Apps
Businesses have thousands of interactions with clients and prospective clients each year. How do you track those interactions? Do you have a paper ledger? Do you use an electronic spreadsheet? These things may work just fine, but using actual account management software could save you time and money.
You receive an email or you find someone that would make a good contact for your company, you then open your ledger or electronic spreadsheet and manually enter all of their data. Before you know it, you’ve spent 5-10 minutes just adding in one contact.
Wouldn’t it be so much better if this process could be automated? Or at least most of the process? Here’s the thing, it can. We use an account manager system that we developed for our own use and it saves so much time. Whenever we get an email from a new contact, that person is automatically added to our contact list. This allows us to easily update newsletters and be able to filter our contacts.
We don’t just swear by account management apps, we live by them.
3. Money Management Apps
If you use a mobile banking app you probably have recognized by now that it automatically sends you updates when you’ve added funds or are low on funds. Wouldn’t it be nice if apps could automatically bill your clients at the press of a button? Well, they can.
Business owners often miss an invoice and fail to bill a client. This often results in lost revenue. Using a money management app that is coded specifically to help you invoice clients can help you make the hard-earned money that you deserve.
4. Security Apps
One of the deterrents of crime nowadays is the installation of cameras and security locks for office buildings. While these are beneficial to keeping unwanted visitors out, they can introduce a headache for people that need access in.
With a security app, you can select who gains access to the building, which doors they get access to you can even give access to the cameras. This can all be done by providing access by job title or credentials. As a business owner, having instant access to your building in the palm of your hand can be extremely helpful and can reduce a lot of unneeded stress.
Having a security app can also help you identify the intruders in the case of a break-in or a once-loyal employee gone rogue.
Thinking of More Ways an App Can Help Your Business?
You may be thinking about how an app can help your business. A great resource for you will be speaking to software developers. Choosing a software developer for any project can be difficult. How do you know if they will be the right person for the job? Will they actually care about your project? How will you know that things are getting done? These are all questions that we answer in the free guide which you can download by clicking the image below.
How Do Apps Work?
What powers an app? Where are apps stored?
So you’ve scrolled through the app store and finally found an app that you want to download. You hit the download button and square with rounded corners appears on your phone’s homepage. You tap the app icon and your app loads. How does this happen? What allows the app to even load? Where is all of the information stored and how does it get updated? These are some of the questions we will try to answer in this blog article, but as always in a way that anyone will be able to understand!
Apps are more than a fancy icon.
If you go into your phone’s settings>storage> It should show you how much space each individual app requires or is using. For example check out this screenshot.
All of the megabytes on the right side of the image are how much storage those apps are using on your device.
You’re probably thinking wow that’s a lot. Actually, no it isn’t. Think about Facebook and consider the fact that there are nearly 3 Billion users. How many videos and pictures do you think there are with that many users? Your little app with 300-400MB of data being used has access to all of that info. But how?
Applications Use Servers to Communicate
Have you heard of AWS? The Cloud? These are tools that enable information to be stored without overloading devices. Let’s start with servers.
Servers are individual computers that can be connected to the internet all day every day.
The Cloud is multiple interconnected computers that talk to eachother remotely.
You’ve probably heard “it’s ran on AWS”. This is essentially Amazon’s Servers. It actually stands for Amazon Web Services. It’s a pay to use cloud computing service.
How Do Apps Talk to Servers?
The answer is API’s, or Application Programming Interfaces. Generally there are four different types of API’s.
- Public- available to anyone to use
- Partner- accessible only when given access by the developer most likely for a client to use
- Internal- a company will use this for their work processes for example a budgeting software the company built
- Composite- a combination of two or more of the above
Put simply API’s allow a computer to operate your app.
Where Do Apps Store All of the Data?
Take a guess as to what database this is.
If you guessed Facebook’s database you are correct! It turns out that all of these macines process 4 Petabytes of data per day (that’s 1,000,000 Gigabytes!)
We’re not going to say that every app out there uses a database like this. However, a lot of apps are powered by AWS. You can find some images of thier database through a Google Search and it is impressive!
Breaking It Down
We know this is a lot of information and it is all very complex. In a nutshell, Programmers (this si to mean developers, coders, app builders, etc.) develop an app and code it to speak to a server. That server then stores information in a database.
If you can learn API’s you will be well on your way to understanding how applications even work. As always we like to keep our information simple and easy to grasp. If you find yourself needing more information about how apps work, feel free to give us a call at 208 344 1115. We’d love to get you in touch with a developer that can explain how all of this works.
If you have more questions about apps be sure to check out our other blog posts where we answer other questions people like you have had about apps and application development!