Different Software Projects, Same Obstacles — How We Handle Those Typical Issues

Oksana Bachuk
EcmaStack
Published in
3 min readJan 6, 2017

Right now, we are working on a couple of React/Redux projects that cannot be more different from each other. Clients and industries are so disparate that even the way we communicate with these clients is complete opposite.

At the same time, when it comes to issues our developers have to deal with, the resemblance is striking. Below is how we handle these problems.

Know Your Risks

Before we even write a single line of code, we start with a list of risks this project can bring. We go through each and every possible scenario that might jeopardize our project. By estimating the time and amount of effort to fix all possible errors, our team makes sure we are prepared for anything and won’t miss the deadline.

However, some issues can’t be avoided if other people make mistakes. Reduce the possibility of failure by asking your client upfront to do exactly the same. Sharing possible issues that can come up will avoid future issues on your project. As an example, we are working with an amazing client that has their own dev team. Sometimes, they don’t produce APIs on time, and the whole project is put on hold.

Users Think Different, WAY More Different!

I’ll just leave this here:

Be prepared for anything, and I mean ANYTHING! Yes, users will use your site on IE8.

Keep Your Staging Environment Close, And Your Production Environment Even Closer

Aim for an absolute match when working with different environments. One of the projects for a start-up we are working with right now requires local, staging, and production environments. Any custom web based software will have errors and bugs when run in environments that aren’t in tune. While developing software, it’s not always possible to match the environments completely, but at least always try to do so.

Note to Beginner Developers:

GOOGLE IT!

We have all been there… Writing good code isn’t easy. Don’t waste your time on trying to solve a problem that someone else already knows how to deal with. Google it! 99% of the time you will find your answer or at least get some ideas on how to solve it.

Resources to Use:

· Google

· GitHub

· Stackoverflow

Starter Development Package

Regardless of the project or client we are working with, these are some great tools we always use as part of our “Tool Box”:

· ESLint: An open source project that provides a pluggable linting utility for JavaScript. Ughhhhhh, don’t get me started when I see “disallow unnecessary semicolons”.

· Slack: A cloud-based team collaboration tool that lets you have team conversations in open channels or private channels, send messages, make calls, share all kind of files and So! Much! More! Amazing tool!

· CODESHIP: Speed up your development workflow by eliminating manual deployments. A must have tool!

· GitHub: A web-based Git repository hosting service, that we mostly use for code, bug tracking, task management, and feature requests, etc.

· Pivotal Tracker: Using this for managing our projects. File sharing, story linking, labels are just a few great features that help us to collaborate, develop and deliver quality software projects on time.

· Screenhero: No need to send those files back and forth anymore! This tool lets you code with others remotely, have multiple mouse cursors, voice chat and so much more. Do check out this tool as soon as you get a chance.

So, there you have it, we have explained how we deal with the same obstacles that are bound to rise regardless of the scope or nature of the project. By following the information provided above, you can also sidestep these hurdles and ensure smooth completion every single time.

--

--