iconType
FAQ

Your success is also our success, that’s why we want you to know some basic guidelines of how to most effectively prepare to an IT project.

1
How can I choose
a good developer for my project?
                                

There are a few key aspects on which you can judge a developer or a company that handles your project.

The key aspect is a good communication - you have to make sure people you work with understand you fully. If they do, you can expect to receive some constructive feedback.

If you plan to keep developing your project for a longer time, stability becomes an important factor. Usually the bigger the team, the better the stability of the company.

Technology is important - the one that you choose at the beginning will most likely stay with you for the whole project. It’s important that it’s widely used, with good prospects for the future and good development tools.

Coding environment is a next important factor. Best companies have deployment tools, testing tools, code generators and prebuilt modules they can use as patterns.

You can also analyze project management. With good management you have quick access to the product, you can regularly give feedback and you’re always well informed about the progress. It’s good to ask about details of project development to check if companies indeed use methodologies they claim to use.

It’s important to analyze company’s portfolio. It’s not enough to look at nice pictures. Website’s template can be created in one night. A good website can take one person’s work year to prepare. Ask company about projects similar to yours that they worked on - this will make assessing them easier.

Ask what tools company will use to make your website scalable and well optimized. Ask for test data, compare answers of a few developers. Make tests. It’s very easy to be cheated by a developer here as you won’t have much tools to verify their words. When site is badly written, most often you will have to rewrite it completely to make it scalable and well optimized.

2
How I Can make sure
developers understand my idea?
                                

The answer is simple - project documentation. Once you have an overall description of the system, you can already approach developers. From now on, they should actively help you in documenting the project. By analyzing documentation, you can confirm that you’re on the same page.

It’s good to first focus on creation of mockups and graphs.

Mockups are a graphical representation of a system’s interface. Mockups prepared by developers should be a synthesis of your documentation and their knowledge. They may vary based on developer experience, their codebase and technology. Good mockups should be optimized in terms of UI and UX, and should plan the most efficient way of implementing functionalities.

Graphs are useful for more complex functionalities. They depict dependencies that otherwise would be hard to understand, and are a good platform to discuss processes.

Mockups and graphs usually give you a very clear view of how developers see your project, and allow you to check whether all your requirements are met.

After you prepare this graphical documentation, developers have to prepare a technical specification. It’s advised to review this specification as well.

3
How should I approach
optimization of the project?
                                

I will start with a quote from Donald Knuth:

“Premature optimization is the root of all evil”There’s a lot of truth in this phase. You should think about optimization only when you know you need it. Even though you don’t have to optimize from the start, you should have a clear plan of how to optimize when it becomes necessary.

Even though you don’t have to optimize from the start, you have to make sure your code and technology allow for an optimization.

On the code level, this means clean structure, which allows you to easily rebuild elements without breaking the whole system. Your features should be well encapsulated, with well defined interfaces. They should be independent of each other, so that you can optimize them one by one. Automatic tests help a lot as well.

On the technology level, this means ability to scale both horizontally and vertically. You should be able to move particular services to different servers, and you should be able to replicate services on multiple instances. This usually shouldn’t be architectured from the beginning, however it’s important to know that your technology allows for it.

Once you actually need to optimize, first perform a profiling. Even better if you have historical performance data for particular services. You need to know what to optimize. Even if you have very strong guesses, it’s important to confirm them. Believe us, we learned it the hard way.

Once you run good profiling, you can define bottlenecks. They can vary greatly - from issues in the code, throught server setup, to holes in technologies you use. You can’t predict all of them, and each problem has different solution. You should tackle them one by one, and profile afterwards to confirm results.

Remember to optimize only when it’s needed. Before optimization, know your goals.

4
How should I start
an IT project?
                               
                               

This advice is more about how to prepare for a start. If you want your project to be on point and efficiently developed, there is much you should do before you begin an actual implementation. We usually separate this preparation into three phases.

1. Setting your goals

Define:

  • Who will be your main user
  • What need should your project answer to
  • Who will be your client (a person making your project profitable)
  • How will your product answer to your client needs
  • What is your competition
  • How will you differentiate from a competition
  • What is your available budget
  • What are your time constraints

It’s a very good practice to write down all those business requirements. It’s even better to do a market research to make sure your project meets those goals.

2. Specification

Once you have your main goals, you should create a general specification. This specification can take multiple different forms, some of which we present below. You can choose one, or any combination that works best for your project.

Use cases

You can define key roles in the system, and afterwards define operations that each role can perform. Example:

  • Administrator

    • can create new event
    • can delete an event
  • User

    • can join an event
    • can leave an event

Sketches

If you prefer to sketch interface of the system, this also works well. You can use any of available online tools, or just sketch on paper. Personally I would recommend to use Evolus Pencil.

Written descriptions

You can just write down modules that you plan to use in your system and describe in a few sentences how those modules should behave. With this approach, it’s important that you’re specific with your descriptions.

3. Feedback

Once you have a plan for your project, it’s invaluable to consult it with your potential clients, as well as with people experienced in the matter. Believe me, it will save you a huge amount of time in next phases.

5
How should I choose
hosting?
                                

This all depends on your technical requirements. You have to answer to a few key questions:

  • what is your budget?
  • do you want to scale your system?
  • what are your technological requirements?

There are three main hosting solutions that you could use

Shared hosting

This solution focuses mainly on low cost.

Advantages:

  • cost
  • customer support

Disadvantages:

  • it can support low traffic
  • limitations to disk space, traffic and processing power
  • most technologies you’re using won’t be supported by shared hosting

VPS or dedicated server

Those solutions give you your own server, which you can freely configure. VPS give you your own virtual machine, working just like dedicated server, however resources of a physical machine are shared with other users.

With this solution, you need to have a sysadmin to handle your server, or your developers should provide you support.

Advantages:

  • good processing power
  • you can host any technical solution
  • you can scale by increasing processing power (VPS)

Disadvantages:

  • moderate cost
  • you need to do setup yourself

Cloud hosting

This is an integrated environment that allows to better control scalability and adding new services. With this solution, you need to have a sysadmin to handle your server, or your developers should provide you support.

Advantages:

  • good processing power

  • you can host any technical solution

  • you can scale without limit by increasing processing power, or adding new machines

  • you have additional flexibility of using services which are easy to set up for complex systems

    • various storage options
    • video streaming
    • scalable databases

Disadvantages:

  • cost
  • customer support
  • fairly complex architecture
6
How should I approach
SEO?
                                

There are three three key aspects of SEO. The first one is technical SEO - how your website is built. Second one is content SEO - how the content on your site is structured and what is it’s value. The third one is link building - how your site is being referred to by other pages. Neglecting any of those parts lowers your rating.

Technical SEO

This part should be taken care of fully by developers of the site. Most important points are:

  • Make sure your page loads and renders quickly - it influences your page rank
  • Use Google Webmaster Tools to determine ranking of your site
  • Make sure you have a sitemap which shows web crawlers how your site is structured
  • Use robots.txt file and tag to point your sitemap to crawlers and store SEO-related logic
  • Make sure robots can use website also with javascript turned off. For Javascript-heavy websites, use solution like PhontomJS to render alternative non-javascript version of the site for robots
  • Avoid using flash and informative images, or describe them well for robots

Content SEO

This part should be taken care of by a person preparing content for your site. Main points are:

  • Avoid duplicating large parts of content of the page. This is important for titles, descriptions and page content. Pages marked as duplicated go to Google’s supplemental index and are being demoted.
  • Title of the page, first heading (h1) and URL should contain key phrase of your page, which reflects content
  • Use h2 headings to mark synonyms of the key phrase
  • Your content should be relevant with key phrases of your site. If users return from your page to search results, it will lower your ranking
  • Link to your subpages only when it’s relevant. Creating multiple links spreads value you’re passing throught links

Link building

The more pages with good authority and good diversity link to your page, the better is your own authority and position in search results. Main points to improve your position here are:

  • Make sure you get links from popular sites with good authority. Those can be well known journals, or popular websites
  • You should be linked by websites with similar content to yours
  • Avoid being mass-linked to from just one or two pages
  • Never buy links. It’s being detected by Google and lowers your position
Contact

[email protected]
Phone: +48609257363

Headquarters:

Opole, 45-470
ul. Wrzosowa 10e
Poland

Offices:

Wrocław, 50-043
ul. Podwale 7/1
Poland