Up Your Staff Technical Skills Tips & Things You should Know

The World around us keeps changing in a rhythm that is noticeably faster than ever, which demands each work environment, especially the ones operating in technical fields, to keep up with the speed of such change, by constantly training the employees and introducing them to newly released updates and technologies.

 

Whether you have new employees joining the team, or you simply want to update the knowledge base for the staff that has been working at your company for years now. This blog post is for you.

Employees Training Tips: The Existing & The New

 

How can you keep your employees’ skills sharp and up to date?

 

The DO’s

Here are some tips you as an employer should think of to get the best out of your old and new staff:

 

1- Help Each Employee Find His Learning Style

 

Each programmer brain works in a unique way, and with that unique way comes a different pattern of learning new information, if you help your employees to learn their individual patterns, you will be handing them a key to unlock huge potentials that not only will benefit the employee as an individual but will also have great value for your overall company development.

 

2- Hold Regular Trainings to Teach New Technologies

 

There are so many programming languages out there a programmer could learn, and your company probably has a unique set of languages your existing staff prefers using more than others. However, it is always a good idea to learn the basics of new programming languages, because:

  • You don’t want to be in the dark in a vastly changing market.
  • Your clients might approach you wanting their new product developed in that specific language.
  • Programming languages help programmers to think better, and help in upping their problem-solving skills in general.

 

3- Highlight The Importance of Background Planning & Research

 

As mentioned above, each employee has his own way of learning and also executing, but no matter what kind of approach that person follows when it comes to execution, the importance of planning should be highlighted from day one for each new employee.

 

Make sure your programmers are properly equipped with:

  • Basic knowledge on Pseudocode processes: A process that involves writing down in words the problem and its step-by-step solutions, this can be very beneficial in developing problem-solving skills.
  • Basic knowledge on documentations & Blueprints: Each programmer should know how to properly document his code and explain it well, Why? For many reasons, including having to get another programmer involved in the code at some point.
  • Problem-solving skills: Before your programmers start coding, they should first be trained on basic problem-solving skills!
  • Research skills: In case a new language or a new skill needs to be learned, a good programmer should always know how to research the needed new information, to act upon it the right way.

 

The Don’ts

Here are the things you should not be doing if you really want to keep your existing employees happy or if you want to train the new ones properly:

 

1- Don’t Push Too Hard!

Don’t put too much pressure on your new employees, this can be achieved by letting them know that:

  • Error messages while coding are okay, as long as they learn from them.
  • The learning patterns and problem recognition and solving skills take time to develop, and that time is different from one employee to another.
  • It is okay to reach out for help, if they feel stuck.

 

2- Don’t Put Too Much Pressure On Seniors

The seniors are the ones who usually teach and train new employees in-house, however, you as an employer should be aware of the following first:

 

  • Not all senior programmers are good teachers, so if you want your senior programmers to train the new employees, make sure to only select those who actually know how to teach.
  • If the training takes up too much time from the seniors, this might hinder and delay their own tasks and deliverables, which might lead to overall frustration.
  • Seniors won’t hesitate to leave a work environment if too much pressure stands in the way of their own development, so be careful not to over do the (Senior-should-Train-The- junior) scenario.

Who Should Train New Employees?

If you want to have proper IT training, whether for your new employees or the existing ones, you should pick the right trainers for this task, and since not all of your seniors might have the time or the skills to teach, we strongly advise reaching out to a third external party for training every once in a while.

 

Transcend can provide the help you need to train new IT employees, or to upgrade the skills of your existing IT staff. We can also get involved way before that, by helping you headhunt new employees and train them well to get them ready for your company, this way and from day one, your new staff will be ready to get actively involved and take on tasks! Reach us out today, and explore the different options we have for you.

Software Development ABC The 5 Necessary Right Steps

When the time comes to develop a new software or re-create & re-invent an old one, a person couldn’t help but ask, how should I do it right this time? No matter what kind of software you aim to develop or what type of programming languages and techniques you will be using, there are basic steps spanning across them all, knowing these in advance will be very helpful, in ways you can not imagine.

 

Whether you are a technical guy, or you are simply a business guy and you want to unleash whatever has been crawling in your mind as the next big thing, here are the steps the development cycle should include, so make sure whoever is executing your project will be abiding by them.

 

Software Development Process Steps

The software development cycle consists of several steps, though these might be a bit different depending on the software development methodology you are following, these are some steps that tend to be received as a general approach for the mentioned cycle:

 

1- Steps Before Software Development

Before you start anything in life, whether it is a personal decision and move or a professional project, planning is almost always key! Here are the software development planning steps that you should follow:

  • Write down your requirements.
  • What kind of data should be in and what kind of data should that software be producing.
  • Who is your target audience?
  • Is this product really useful? Why? How to validate that?

This stage usually ends up with a final requirements specification document or a software blueprint, this kind of documents will be the roadmap for it all, especially the design of the product, aka step number 2.

 

2- Software Development Design Steps

Once you have laid out your plans, you and the development team should start designing every element that should go in or out of the software development process. This includes:

  • The programming languages or techniques and tools that would suit this project best.
  • The UI/UX design, here you might choose to roll out an initial sprint just to test those in specific even before your product is fully functional!
  • The flow of the processes from the moment a user starts using the software to the moment he exits it.

This stage might require lots of going back and forth between you and a sample of your potential audience and might include early necessary feedback, or (if you prefer) it might just include mockups to be validated later after the project is done and released (Not recommended).

 

3- Software Development Coding & Programming Steps

This stage is usually the one that consumes most of the software development cycle time, however, outsourcing can save you time and money (in this step in particular)! Of course, each programmer has his own way of doing things, and each development team has his own favorite software development management methodology, for example, we at Transcend prefer Scrum.

 

Scrum allows you to interfere and change things around in every stage as you see proper without having to go through the software development cycle all over again, saving you some very needed resources.

 

4- Software Development Testing & Deployment

There are many different ways of testing depending on the development team and what they prefer, for example, if your team is going with Scrum, then they will probably be testing things in every stage and in every step of the way, way before the product and its units are fully ready.

 

However, generally speaking, things more or less go like this:

  • Unit Testing: Where every unit of the product is tested on its own and bugs get fixed.
  • Integration Testing: Where all units will be integrated together to form the one big product you want, and the overall flow of things between the different units will be tested and bugs will be fixed, might as well test how the product would do when interacting with other external units and software.
  • Validation Testing: Where the developed product will be tested against the original requirements, and will also be tested by the client to detect any glitches and get feedback.

 

5- Deployment & Maintenance

After testing is almost done with, the software will be ready for the beta phase, where it will be rolled out to users to get their feedback.

Afterward, and once all feedback is taken into consideration and once the product is smooth and bugs-free, come the time for the actual start!

 

The actual start here means your product is ready to use, and you just need to give it to the users based on your business plan, whether for free or not. You also need to figure out the maintenance process, such as: how to keep your software updated, how it can comply with third part new updates such as operating systems updates and all …. etc.

 

All of the above require attention and skills and time and money. Here, outsourcing can come in handy to give you a shortcut, sparing you from having to get involved deeply in all of the steps above in an away that could drive you nuts! Give us a call today, and stay sane.

Native, Web Or Hybrid Apps_ What Type Suits Your Business Needs Best_

You have just reached a point in your business, where you know for sure that you need a new application developed, you propose that to your team, they say “yes, great idea!”, then … Suddenly someone asks, “What kind of application should it be? Native? Web? Or Hybrid?”, and now you stand there with a big “huh?” expression on your face!

 

Unfortunately, you have just walked into the World of somehow a confusing terminology, especially if you don’t have a technical background, but no worries, we have you covered. Read on to find out what each type means, and how you can decide.

 

The Different Types of Apps: Understand The Terminology First

Here is a quick guide on what each type means, and how to choose the right one for you:

 

1- Native Apps

Simply put, Native Apps are:

  • Applications you can install from the device store, such as: Google Play or the App Store.
  • Especially designed based on the device operating system, for example:
    • Native apps for Android are built using Java or C++ or Kotlin.
    • Native apps for iOS are built using Objective-C or Swift.
    • Native apps for Windows phones are built using C#.
  • Applications that can be built in a way that leverages different internal features and data stored locally on the device they were built for, such as having full access to: Camera, contact information, geo locations … etc.

 

2- Web Apps

Simply put, Web Apps are:

  • Apps that you don’t have to download from the device store, rather, they can be accessed through your device Internet browser.
  • Apps that can be built easily using :JavaScript, HTML5, CSS.
  • Apps that don’t have to be built by writing a different code for each device or operating system, instead, probably one code for all browsers with some minor modifications to be compatible with each browser, be it Chrome or Firefox or else.

 

3- Hybrid Apps

Simply put, Hybrid Apps are applications that are half Web/Half Native Apps, basically a combination of the previously mentioned apps.

 

You can find some hybrid apps on the App Store or Google Play. This kind of applications are usually the middle ground where the web & native apps meet when it comes to: cost, time to develop, maintenance … etc.

 

What Type of Apps Should You Go With?

The choice you should be making depends on different factors, here is the best choice for each variable:

  • Application Speed: Native apps are the fastest, as these are OS-dependent apps that can run offline.
  • Cost: Generally speaking, Web apps can be the cheapest,since this kind of apps doesn’t need to be built in “different” versions using completely “different” programming languages to run on “different” devices and “different” operating systems! This requires less developers, less time, and …. less money!
  • Time Needed for Development: Web Apps get developed faster than native and hybrid apps.
  • User Accessibility: When installed, native & hybrid apps usually appear as icons on your device home screen, through these icons you can simply access the app. However, web apps don’t usually come with such icons, so users sometimes forget such apps exist!
  • App Maintenance: Native apps require a higher level of maintenance compared to web and hybrid apps, since you need to keep these apps up to date all the time with each device & operating system update.
  • Apps Consistency: With apps such as native apps, it might be hard to provide the same features on different platforms and devices, so be careful.
  • Working Offline: If you want your app to work offline, you should either go for a native or a hybrid app, as web apps can never run offline.
  • Perfermonace: Native apps usually perform better than hybrid and web apps in general.

 

Now, you know how to answer the question above, and in case you want someone to help you decide, or if you want to spare your in-house team the time and effort needed to develop such apps, we are here for you.

 

We at Transcend can help you make the right decision for your needs, and can also develop the app you want from A to Z! Our skilled team and huge talent pool are equipped with all the right skills to develop any type of applications, whether web or native or hybrid or any other type! Give us a call today.

Software Development Methodologies_ 3 Popular Approaches

Programmers and software development teams have a World of their own, and for their work to get done, and your project to be delivered, the development team handling the project will probably be following a specific way of doing things, in other words, a specific software development methodology.

Here are three types of popular software development methodologies:

 

1- “The Waterfall” Model: No Way Back!

This type is the classic way of doing software development. As the name suggests, the overall flow of the project resembles the waterfalls you see in nature, the water keeps flowing down and can never go back up again.

In other words, the project is split up into different stages, each stage begins with a plan and clear expected output. Once the stage at hand is complete, only then can the next stage start.

This methodology lacks flexibility and doesn’t involve the client or get his feedback until all the stages are complete. However, if the final product has some issues, the development team and the client might have to do it all over again (the planning, the coding, the testing!), a process that can be really expensive both money and time wise!

 

3- “Scrum”: Suggest & We Will Modify

Scrum is a methodology so popular among many developers, and for reasons you can easily understand!

Scrum involves sprints, each sprint is timed to be finished within 1-4 weeks period! Every sprint involves a plan, time to execute, then a wrap up once the sprint is over and everything is working, or an extension of the current sprint if modifications need to be made.

During aach scrum sprint, daily meetings are held on the go to assess each team member updates, and to get any necessary guidance from the scrum master who is the person in charge of making sure all goes according to plan.

The development team can start a new sprint only once the previous sprint is completely done. Though this methodology is very popular, things can get a bit messy if one of the team members lacked the skills or the commitment to keep up with his individual tasks causing delays to the overall team work. However, if the team is highly skilled and very committed, you as a client will be very satisfied.

 

4- “Lean”: Get Rid of The Fat, Stick With The Meat!

This methodology is all about saving resources and getting rid of anything that seems to add no value for the project or the client. Just like removing the white fat completely from the red meat steak.

This methodology is known for its flexibility and its high level of commitment to save the client’s money and time when it comes to the overall software development process, as unnecessary small features and requirements could increase the amount of time needed to finish the project and could cost more money having to use more tools and resources. So Lean methodology is kind of “Saving” at its best!

 

 

We at Transcend usually use Scrum methodology, because we do realize how important the clients’ feedback and modifications can be along the way, and Scrum allows for such involvement and such feedback.

Problems Commonly Encountered While Outsourcing IT

Outsourcing IT development enables you to reallocate resources into crucial areas of the business, especially those directly related to your core business values.

 

Although one can not deny the many benefits IT outsourcing can have on your business, when you first start doing it, you should realize a few things in advance, as a matter of fact, you should expect a few problems that usually gets solved quickly if you are dealing with a very professional IT outsourcing company.

 

Here are a few expected problems and how to handle them each:

1- Misunderstanding … In So Many Ways!

Let’s assume you have just signed the deal and you are about to start, a few meetings in, and you suddenly think to yourself “this is not what I said”, or “how come I know this piece of info while they don’t?”, and this is only the beginning in a sequence of questions reflecting anger and frustration. So, why is this happening?

Misunderstanding is really common in the outsourcing business relations, and it has many types, many causes, and it comes in so many ways, such as:

First: The Decision Making

Sometimes the service being developed might need quick decisions with no delays, which might drive any of the parties involved to act on the spot before asking for permission. This might cause misunderstanding and problems, as the decision taken by one party can be a decision the other party wouldn’t want to go with.

Solution: Make sure to clear things out from day 1, name your decision making personnel and arrange for procedures to be taken in emergencies in advance.

Second: Clashes Due To Different Cultures

Your staff and that of the outsourcing company come from different work cultures, what seems common and usual to you in the work environment, might come across strange and unusual for them. Such as:

  • The way they respond to messages, they prefer email while you prefer phone calls.
  • They think first then act, while you want them to execute your orders without thinking.
  • They show up to work at 11:00 Am while you start your day at 7:00 Am and expect replies when you text them around that time.

Solution: Before signing the agreement or before you begin the actual work, make sure to get familiar with each other’s business culture, for you not to be surprised or misunderstood later on, and vice versa.

2- Lack Of Back-Up Plans

Unfortunately, there are many unprofessional outsourcing companies out there who would be too focused on the delivery and deadlines, rather than investing enough time in planning first.

You two need to plan things first before you begin, you need to draft scenarios and solutions to problems that might arise from the very beginning, this way you can plan for: back up plans, back up personnel, back up resources and how to handle an error or a decision gone wrong.

3- Contracts

Contracts should never be signed on the same day you receive them, make sure to read every word first, consult with your legal advisor, make sure the work flow you have in mind and the deliverables agreed upon are all mentioned loud and clear in the contract.

A poorly written contract might ruin it all for you, especially if it falls short when it comes to:

  • Accountability and payment for damage.
  • Procedures to be taken when jeopardizing quality and confidentiality.
  • Follow up processes and the expected kind of follow up.
  • Termination of agreement details and terms.
  • Ownership rights of the service/product being developed.

Most of the problems mentioned above can be handled and solved with no negative impact on the partnership, especially if your decision of choosing that specific outsourcing company was based on the right standards and criteria. Try reaching us out at Transcend, and don’t let the fear of encountering any of these problems hinder you from making the right decision for your business.

 

Our staff has a diverse set of experts who would love to help you overcome your fears and unleash the superpowers of your business. Get in touch today.

 

Outsourcing Tech_ Should You Hire A Freelancer Or An Outsourcing Company

Let us assume that the need to take this task or that to an external party has just arised, the question you are probably asking yourself right now is, what choice would serve my business best? In other words, should you just hire an individual freelancer to create the required software? Or should you contact a company specialized in outsourcing services?

The answer to the question above is a bit tricky, because depending on your business and the required task you as a business owner should weigh the benefits against the drawbacks per option! In this blog post we will help you make the right decision, so read further.

Hiring A Freelancer: The Good Vs. The Ugly

No one can deny how beneficial a good freelancer can be to your business, especially due to the fact that freelancing is known to be:

  • Cost effective: Hiring a freelancer means less expenses, as you are hiring a single individual rather than a whole set of talented individuals that an outsourcing company would provide.
  • Time Flexible: While the employees assigned to work on your project from the outsourcing company side might be only available during work hours, freelancers are way more flexible and have more control on their time throughout the 24 hours!
  • Requiring less of … : Working with freelancers means less legal documents, less formal agreements, less steps in the process of hiring.

However, there will always be the not so good side of doing business with freelancers, especially when it comes to these critical areas:

  • Unreliability: One of the major problems a business might encounter while working with freelancers (even the super talented ones) is the fact that there might always come a day when the freelancer is sick or has a personal emergency, and as far as any business owner is concerned that day is a lost business day, as there will probably be no backup plans or anybody available to do the job and deliver!
  • Unavailability: Talented freelancers have their plates full most of the time, which might make it difficult to find one in time to do the job, especially if the required task is time critical.
  • Unpredictability: One day the freelancer is here, the next day he might just disappear with no prior notice! And it happens a lot.
  • Jeopardizing quality & confidentiality: Freelancers are required to do the job, and no further, in other words, no follow up! They can also deliberately or accidentally jeopardize the confidentiality needed for some projects you are working on, so be careful.

 

Outsourcing Company: The Good Vs. The Ugly

More and more companies are heading towards partnering with outsourcing companies rather than freelancers, especially in projects that are either recurring or need so much time and resources to get them done.

Before mentioning the positive side of it, let us go through a few points that might discourage some businesses from outsourcing to companies:

  • More expensive: It is globally known that hiring a freelancer comes with less cost compared to partnering with outsourcing companies, but there are a few exceptions (Transcend? Try us).
  • More documents to Sign: Working with an outsourcing company might get you to sign a few more documents every once in a while.

However, the positive side here stretches beyond limits to benefit your company big time. Here is how outsourcing to companies are way better than outsourcing to freelancers:

  • Quality and follow up: Outsourcing companies usually produce better quality work, as the individuals working on the task will be multi-talented and have more eye to details compared to a single pair of eyes that a freelancer has to offer! And the proper follow up is usually part of the deal!
  • Always available: Outsourcing companies are always ready to get you the talent you need to finish the job, if they don’t, they will recruit more from their side. Either way, you will get what you need in time.
  • Broad range of services & talents: Outsourcing to companies means outsourcing to full teams, with individuals of different set of expertise, you can expect a full package of many services, from decision making and product management to the actual software development and quality assurance.
  • Perfect for big projects: As mentioned earlier, outsourcing companies are the right choice when it comes to big projects, bigger projects require bigger and more committed teams, and that is exactly what those companies will offer.
  • Committing to deadlines: Having a full team working for you means no days down, the sudden absence of an individual will be covered up by other team members, so, no delays!

 

Get in touch today and we will help you make the right decision.

Top Mistakes To Avoid When Outsourcing IT

While outsourcing can solve so many problems and save you so much effort and time and cost (Well, as it should), sometimes and if done wrong it can backfire big time!

 

So What are the top mistakes that do prevent many companies from reaping the benefits of outsourcing? Here are a few:

1- Having No Tech Team On Your Side

No matter how much you understand your business, if it needs a software development, you should at least have 1 in-house employee on your team. Why?

As a business owner, you might know the features needed, the product and what it should look like and what it should deliver. But, at some point you need to know the following:

  • What are the best available technologies to adopt.
  • What is that programmer on the other side talking about, be it an expression or a tool or even a request.
  • Why this can be developed and that can not, from a technical point of view.

No one would doubt how smart you are, but a surgeon wouldn’t know much about marketing, and a business person probably wouldn’t know much about programming, and even if he does, he probably wouldn’t have enough time to do a proper follow up. So? Hire a tech guy/team first.

 

2- Micromanaging The Outsourced Work Heavily

Outsourcing is meant to save money, effort, and time! If it is not, then you are doing it wrong.

If you have to step in and make sure the work being produced is done right, and if you keep getting calls with questions and requests for delaying deadlines for example, then … red light … red light, we see it, do you?

Do not neglect doing a proper follow-up, but overdoing it means there is something wrong, and you should stop and think.

 

3- Outsourcing What You Should Never Outsource!

Consider outsourcing only when it comes to tasks that can be outsourced easily, without compromising your business. Never outsource work that you should keep confidential, and never outsource a matter related to your core business concept, get help, yes, but outsource it completely? No.

For example, you are a company working in the field of web security, and instead of offering your clients softwares you have built yourself, you offer them the work of some outsourcing company, does that make sense to you? Exactly, it doesn’t.

 

4- Choosing The Outsourcing Company Based On Wrong Criteria

When considering and evaluating different offers from different outsourcing companies, make sure to avoid having your judgment and choice be influenced only by:

  • The cost: Cheaper is not always better.
  • The language & nationality biases: Some would want a person who speaks their language, others would want someone from a different continent. Try removing this kind of biases out of the way.
  • Sweet Talk: Trust ONLY what that company profile and current/previous clients are saying, because “doing” is what you need, “Talking” is what you don’t need.

Make sure to choose based on things like: Experience and customer feedback, Quality, commitment and ability to meet deadlines, understanding of your culture and Timezone difference (if exists)… etc.

 

5- Lack Of Documentation And Communication

Make sure that you or someone reliable on your team will be there whenever a question or a request arise, schedules are great and deadlines are set in stone, but a smooth and fast communication is a must as well to instantly handle any disasters and avoid any delays or misunderstanding along the way.

Documenting it all in every step of the way will help you keep track of what is happening at any time of your workweek, and it will ensure smooth transition of work, whether to a new outsourcing company or to a new manager on your team.

 

6- Letting Them Do The Research For You

You are a hardworking guy who thinks everyone puts the same effort and passion that you put in your work, bad news here, nope, that is not how the World works.

Before initiating the talks with your new distant outsourcing company, you should know what you need and you should be on top when it comes to new software and outdated ones, what works and what doesn’t work any more.

Simply put, do your research yourself first, because they won’t do it for you, and even if they do, it won’t be extensive and broad as yours would be.

 

7- Other Important Things

You should also avoid making these tiny itchy small mistakes that might ruin it all for you:

  • Not putting enough effort in the selection process and skipping interviewing the team you might start working with.
  • Not having plan B, sometimes things don’t work out, pre-plan your exit strategy in advance.
  • Putting unrealistic deadlines, jeopardizing the quality and so much more.

Contact us at Transcend, and we will work closely with you to satisfy your business needs mistakes- free.