<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Softheme Blog » Software Outsourcing Ukraine</title>
	<atom:link href="https://blog.softheme.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.softheme.com</link>
	<description>software outsourcing, software development, programming, offshore outsourcing, programming</description>
	<lastBuildDate>Tue, 24 Apr 2018 09:01:26 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.8.1</generator>
	<item>
		<title>iOS or Android: Where to Develop Your App First?</title>
		<link>https://blog.softheme.com/ios-or-android-where-to-develop-your-app-first/</link>
		<pubDate>Tue, 24 Apr 2018 09:01:26 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Mobile development]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Android platform]]></category>
		<category><![CDATA[apple ipad]]></category>
		<category><![CDATA[cross-platform solution]]></category>
		<category><![CDATA[iOS development]]></category>
		<category><![CDATA[Mobile applications development]]></category>
		<category><![CDATA[mobile platforms]]></category>
		<category><![CDATA[new features]]></category>
		<category><![CDATA[press release]]></category>
		<category><![CDATA[revenue]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8518</guid>
		<description><![CDATA[Developing an app for smartphones can be very rewarding and fun, but it can also be time consuming and expensive. For this reason, you need to pick and choose how you use your development time to create the perfect app. Let’s examine several factors that will help you determine which platform you should develop for first.]]></description>
				<content:encoded><![CDATA[<p>Developing an app for smartphones can be very rewarding and fun, but it can also be time consuming and expensive. For this reason, you need to pick and choose how you use your development time to create the perfect app.</p>
<p>One of the biggest questions often asked by customers is: Should they develop their app on iOS or Android first? Of course, the answer isn’t always black or white. In many cases, it depends on the app they are planing to get and what platform their target market uses the most.</p>
<p>Let’s examine several factors that will help you determine which platform you should develop for first.</p>
<h2>What You Must Consider</h2>
<p>It’s easy to get so excited about your new project that you forget some to jump in and sort out some of the details about your app. But understanding some of the details can help you determine not only who the app is for, but what platform you should use for your new project.</p>
<h3>Demographics</h3>
<p>Before you ask to type one line of code, you must determine who you are creating your app for. Who is your target audience? Once you know that, you have to examine the demographics of Android and iOS to determine which platform best fits your app.</p>
<p>Android is the most used mobile operating system in the world, but just because it’s used by more people doesn’t mean it is what your target audience uses.</p>
<p>Android has a much larger proliferation in developing countries in Asia, Africa, and South America. But in developed countries, such as the United States, the United Kingdom, and Canada, iOS is in the lead.</p>
<p>If your app is built for the global community, such as a messenger app or a new web browser, then you may want to choose Android, as it has worldwide appeal. However, if you are creating an app to be used in developed countries such as the U.S., such as local home delivery of goods, then you may want to begin with iOS, as it has a larger hold in this market.</p>
<h3>Revenue Models</h3>
<p>App development and maintenance are expensive, and chances are that you are hoping to make a buck or two from your creation. That is where revenue models come into play.</p>
<p>Do you plan on offering your app for free or with a freemium model, or do you want to charge for your app right from the store? Android has more free apps that are supported by advertising, while iOS has more apps that must be bought and more users that will pay for them.</p>
<p>Your revenue plan can have a great impact on your starting platform. If you want to start with a free app and monetize it later, or you plan on supporting your app with ad revenue, Android may be the better fit. However, if you want to charge for your app, then you will have better luck with iOS.</p>
<h3>Platform Features</h3>
<p>When you look at <a href="http://www.amazon.com/exec/obidos/ASIN/178528844X/makithecompsi-20">Android</a> and <a href="http://www.amazon.com/exec/obidos/ASIN/1491999314/makithecompsi-20">iOS</a>, on the surface, they seem very similar in a lot of ways, especially when it comes to features and what developers can do. However, if you dig a little deeper, you will see that things aren’t always what they seem.</p>
<p>Apple’s iOS is more of a closed operating system. Whereas on Android, you have free reign to access every part of the internal operating system, on iOS, you can only go so deep with your coding.</p>
<p>Development on iOS is a little more difficult, as some access to the operating system for advanced features in your app simply isn’t available. Android, on the other hand, is much more open.</p>
<h3>Operating System Release Cycles</h3>
<p>Both Android and iOS have release cycles that are similar, with each platform releasing a new version of the operating system every year. However, that’s where the similarities end.</p>
<p>Because Android is open source, there are many different versions and flavors floating around, and these versions must then be updated from the original version of Android released by Google. It often takes many months for Android users to receive updates. This is why, <a href="https://developer.android.com/about/dashboards/index.html">as of January 2018, only 27 percent of Android users</a> were using Android Nougat or Oreo.</p>
<p>Apple’s iOS, on the other hand, is quite different. <a href="https://mixpanel.com/trends/#report/ios_11">As of February of this year, over 80 percent of iPhone users</a> have moved to iOS 11. Because of these adoption rates, you can focus more on the features available in the newest versions without worrying about leaving your potential user base behind.</p>
<h3>Tablet Apps</h3>
<p>While sales of tablets may be declining, Apple is clearly the dominating player in this market. In fact, the iPad dominates so much that it can be tough to even find someone with an Android tablet these days. Even die-hard Android smartphone users often prefer the iPad when they do use a tablet.</p>
<p>If you are designing an app primarily for tablets, this factor must be bumped to the top of the list when you are making your decision.</p>
<p>&nbsp;</p>
<h2>Developing for Both Platforms</h2>
<p>In some instances, you may need your app to reach as many people as possible across the world. Designing for both platforms and releasing them simultaneously will guarantee you that coverage, but if you don’t have the experience, it could drastically lengthen development time.</p>
<p>No matter what, if you plan to develop your app cross-platform, you need to develop a plan of action in order to be successful.</p>
<p>In most cases, companies with deep pockets, and lots of experience developing for both iOS and Android, can get away with creating their app for both platforms at the same time. But sometimes you can probably have limited time and resources to develop and release your app. For this one reason alone, it is better to focus on one platform before developing for the other.</p>
<h2>Take Your Time and Make the Best Choice</h2>
<p>Both iOS and Android have something to offer the mobile development world. Each operating system comes with their own strengths and weaknesses, and both are very popular platforms across the world.</p>
<p>Which operating system you choose for your app development will depend largely on your experience and your target audience. However, no matter which one you start with, for the greatest success, you should port your app to the other platform.</p>
<p>Just make sure you start with the platform that makes the most sense for the app you are trying to create.</p>
]]></content:encoded>
			</item>
		<item>
		<title>4 Tips: How to Avoid Burnout?</title>
		<link>https://blog.softheme.com/how-to-avoid-burnout/</link>
		<pubDate>Wed, 11 Apr 2018 11:31:18 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Software development]]></category>
		<category><![CDATA[Trend News]]></category>
		<category><![CDATA[burnout]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[feeling healthy]]></category>
		<category><![CDATA[software developer]]></category>
		<category><![CDATA[work time]]></category>
		<category><![CDATA[work-life balance]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8508</guid>
		<description><![CDATA[How then can developers prevent this issue especially for new developers who are entering the world of corporate programming, no longer writing code for pleasure or for class exercises? Here are some tips to help you in preventing burnout.]]></description>
				<content:encoded><![CDATA[<div class="met"></div>
<p>Life as a Software Developer is about creating great software every day. You feel like less of a developer when you are performing at anything less than your optimum capacity. So every day, you do your best to turn in the best code possible and you try to keep doing that.</p>
<p>Well, even machines do not have the same effectiveness every day. But in the world of today where everyone is seeking better salaries and other bonuses, we want to be better than the next person so we get that comfortable fat check at the end of the month.</p>
<p>Don’t get me wrong, wanting to have the same effectiveness is a good thing; the only issue is to always know when you should stop and take a break, when you have completely exhausted yourself, and when you need to take a long rest to get back to work.</p>
<p>But Sometimes the cycle becomes work, work, work, and a little sleep. It has definite advantages at first, and over time, natural factors set in and the programmer begins to deliver a little less than what he used to deliver. In no time, everyone is demotivated and demoralized.</p>
<p>Never think: well, this cannot happen to me. It happens to the best of us and when it does, you are simply burnt out. What you need then is to be serviced. The way an automobile is serviced after running for a while.</p>
<p>How then can developers prevent this issue especially for new developers who are entering the world of corporate programming, no longer writing code for pleasure or for class exercises? Here are some tips to help you in preventing burnout.</p>
<h2>Never Seek To Be Better Than Anyone Else, Only To Be Better Than Yourself</h2>
<p>The only person you should be better than is yourself. Sometimes we burn out when we focus too much on what others are doing and how others are becoming better everyday while we are just following the path of the great programmers without ever catching up.</p>
<p>What you need is to develop a personal plan and follow through with your plans. Not to follow up on the plans of others. Seek to continue to grow everyday on your path, not on the path of others.</p>
<p>Develop a goal, push for the goal, and keep pushing for the goal. It is important to focus on what you want to do and achieve. Do not let the success or failure of others deter you from your path. Your path is yours and yours only.</p>
<p>Have time to do deliberate practise. In learning how to learn, it is emphasized that to learn, you need to focus, understand, and then deliberately practice. Deliberate practice leads to more expertise in what you are learning and it is more interesting learning what you are good at because you have fewer issues to contend with.</p>
<p>Continuous learning is how you can be a better version of yourself through seeking to learn from others who you feel are better than you. Seeking mentorship and going to events are just a few of the ways that you can improve yourself. But never set your success level based on the success of others.</p>
<h2>Have a Work-Life Balance</h2>
<p>This advice is so cliche that even people from other walks of life can find it useful. We sometimes burn out when we focus all our lives only on work. Imagine the life of a programmer who sleeps barely six hours and is back to work, with no form of engagement beyond his/her current job.</p>
<p>When you ask such a person about themselves, they begin to describe themselves based only their current job. Ask them what they like and dislike, and it is also around the same thing.</p>
<p>It is important to love and cherish our work, but the lack of balance makes us fall too much on one side, and as they say, too much of anything is bad.</p>
<p>You need to be able to have time for activities that are fulfilling and might not have any link to your current work. Taking time out gives you more time to focus on other areas of life where you can also help make more impact and be impacted more than your current job.</p>
<p>Imagine giving tutorial lessons to a group every weekend. This activity allows you to set out time to also relearn what you already know and also goes a long way to impact the life of others. Remember, this is a great opportunity to discover areas you never knew you could excel in.</p>
<p>Not having time to exercise and do a lot more things that energizes the body is known to be a path that leads to fast depleting health issues. Ask some people why they do not work out and they give you the boring explanation that they are basically too busy for that.</p>
<p>Well, if you are too busy to cater to your health, what on earth then are you here for? Do you want to make the money for the time when you fall ill, so you can use the money to take care of yourself? To me, that does not sound right.</p>
<p>Take some time to always look at other ways you can engage yourself actively beyond work. What other activities can you do beyond work that you can also derive pleasure from. Go out once in a while for other activities that can also make you enjoy the time and also make great impact in the community.</p>
<h2>Taking Care of the Little Things</h2>
<p>The little things matter because the small things are what make up the big things. You should focus and pay attention to the very small things that accumulate to become very big things in your life as a developer.</p>
<p>Pay attention to the way you sit, the way you work, the food you eat, and a whole lot more that might not seem to be of great importance to you at the present moment. Take care of how you even type on the keyboard. The brightness of your computer screen. All these things are important if you want to be able to remain a developer for a longer time.</p>
<p>For developers, it is more than just a job that pays the bill, it is a job most developers do with passion and would want to continue programming for as long as possible and doing things that can make that possible is an area to always look out for.</p>
<p>Not doing these things might not show any immediate effect, but over time, I assure you, the effects are obvious and you can only wish then that you did the small things.</p>
<h2>Food, Sleep, and Exercise Are For The Wise</h2>
<p>When you ask some programmers if they set out some time to exercise and better develop themselves, you get funny answers as if it was a crime to exercise as a developer. To some developers, all you have to do is to sleep, eat, and program. That’s all.</p>
<p>Realize, however, that the most important part of your body responsible for developing the idea for writing code is the brain. So the question is to ask whether the brain requires food, sleep, and exercise. The answer is clear &#8211; the brain needs a lot of these.</p>
<p>To be better as a developer, you must always find ways to ensure that you rest and exercise, eat good food to make sure that you can always maintain this flow.</p>
<p>The concept of no time for exercise, sleep, and eating good food should be greatly discouraged. That we can always be as productive every moment of the day without resting and keeping healthy is a notion we need to clear from our mind.</p>
<h2>Be Your Best, Avoid Burnout</h2>
<p>There are more ways you can definitely prevent burnout as a developer than the methods described above. You can make it comfortable to discuss burnout among teams so that they can come up with a solution that better addresses their needs and situation.</p>
<p>By never pursuing that rat race of being better than any other developer and by creating a plan that helps you grow and track your growth, burnout can be quickly noticed and prevented.</p>
<p>Having a work-life balance that ensures that you get a great deal from life: working out and exercising to stay healthy, eating good food to nourish your system, and also taking care of the small things are ways you can also fend off burning out.</p>
<p><strong>We all want to be the best and one sure way to do so is to avoid burning out.</strong></p>
<p>&nbsp;</p>
]]></content:encoded>
			</item>
		<item>
		<title>Курсы Salesforce = гарантированое трудоустройство!</title>
		<link>https://blog.softheme.com/%d0%ba%d1%83%d1%80%d1%81%d1%8b-salesforce-%d0%b3%d0%b0%d1%80%d0%b0%d0%bd%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%be%d0%b5-%d1%82%d1%80%d1%83%d0%b4%d0%be%d1%83%d1%81%d1%82%d1%80%d0%be%d0%b9/</link>
		<pubDate>Wed, 14 Mar 2018 16:17:34 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[Apex]]></category>
		<category><![CDATA[AppBuilder]]></category>
		<category><![CDATA[appexchange]]></category>
		<category><![CDATA[Lightning]]></category>
		<category><![CDATA[salesforce]]></category>
		<category><![CDATA[Salesforce Certification]]></category>
		<category><![CDATA[Salesforce CRM]]></category>
		<category><![CDATA[Salesforce developer]]></category>
		<category><![CDATA[Salesforce Development]]></category>
		<category><![CDATA[Shkola1010]]></category>
		<category><![CDATA[softheme]]></category>
		<category><![CDATA[Visualforce]]></category>
		<category><![CDATA[бесплатные курсы]]></category>
		<category><![CDATA[гарантированное трудоустройство]]></category>
		<category><![CDATA[курсы]]></category>
		<category><![CDATA[обучение]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8503</guid>
		<description><![CDATA[Всем, кто любит программировать, кому нравится разбираться в бизнес-логике приложений, проектировать пользовательские интерфесы, работать с данными! Бесплатное обучение, высокооплачиваемая !_даже_! по меркам IT-рынка работа, сертификация.]]></description>
				<content:encoded><![CDATA[<div class="">
<h3 class="_1mf _1mj">Курсы Salesforce: бесплатно 3 недели интенсива (6 часов в день) + английский и домашние задания = гарантированное трудоустройство</h3>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj">* <strong><a href="http://salesforce.com"><span class="_247o">Salesforce</span></a></strong> &#8211; самая популярная в мире платформа для автоматизации бизнеса. Это облачная платформа, ею пользуются успешные компании во всем мире. (<strong>CRM</strong> &#8211; управление клиентами и сделками, поддержка продаж, интернет-маркетинг, <strong>Help Desk</strong> &#8211; служба поддержки, коммьюнити-менджмент &#8211; взаимодействие и коммуникация внутри компании). Стоимость лицензий вполне доступна, вся информация хранится на клауде, возможность реализовать любые бизнес-процессы, создавать свои приложения и продавать их!</div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<h2 class="_1mf _1mj"><span class="_3gl1 _5zz4"><span class="_ncl">✅</span></span> Программист на платформе Salesforce?</h2>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj">Всем, кто любит программировать, кому нравится разбираться в бизнес-логике приложений, проектировать пользовательские интерфесы, работать с данными! Бесплатное обучение, высокооплачиваемая <strong>!_даже_!</strong> по меркам IT-рынка работа, сертификация.</div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj">Не подходит: если вы бы хотели стать архитектором программного кода, если вам нравится “низкоуровневые задачи“, такие, как работа с памятью, с API сетевых устройств.</div>
</div>
<div class="">
<h2 class="_1mf _1mj"></h2>
</div>
<div class="">
<h2 class="_1mf _1mj"><span class="_3gl1 _5zz4"><span class="_ncl">✅</span></span> Для кого?</h2>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj">Приглашаем студентов и выпускников ВУЗов, а также всех желающих, с базовым знанием хотя бы одного из языков программирования, пройти 3-недельный интенсив (формат camp) в офисе обучающего проекта <a href="http://www.softheme.com.ua/shkola/"><span class="_247o">Shkola 1010</span></a> , в центре Киева (метро Олимпийская).</div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<h2 class="_1mf _1mj"><span class="_3gl1 _5zz4"><span class="_ncl">✅</span></span> Подходят ли вам курсы? Экспресс тест!</h2>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj">Исходное значение переменной х=2. Чему будет равен x после выполнения функции for (int i=0; i&lt;3; i++) { x=x+3 }</div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj">Если получилось 11, приходите к нам! Больше 11 &#8211; вам в политику, меньше &#8211; в финансы! )</div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<h2 class="_1mf _1mj"><span class="_3gl1 _5zz4"><span class="_ncl">✅</span></span> Что будет?</h2>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj">Модульный курс обучения программирования на платформе Salesforce.</div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj"><strong>Неделя 1</strong>: знакомство с платформой, после которого вы сможете стать уверенным пользователем, администратором Salesforce.</div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj"><strong>Неделя 2</strong>: разработка back-end логики, <strong>Apex</strong> программирование под Salesforce. Вы сможете поддерживать уже готовые приложения, дорабатывать функциональность.</div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj"><strong>Неделя 3</strong>: углубленная работа с Apex, front-end разработка с использованием <strong>Lightning</strong> и <strong>Visualforce</strong>. Вы сможете создавать, поддерживать и продавать приложения на платформе Salesforce в маркете приложений <strong>AppExchange</strong> (аналог App Store, Google Play).</div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj">*<em>комфортные условия обучения, бутерброды, возможность посещать бесплатно спорт занятия и мастер-классы!</em></div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj">**<em>Для тех, кто уже знаком с платформой Salesforce, вы можете пройти только 1 или 2 недели обучения, в зависимости от вашего уровня знаний.</em></div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<h2 class="_1mf _1mj"><span class="_3gl1 _5zz4"><span class="_ncl">✅</span></span> Как оценить качество обучения на курсах?</h2>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj">По окончании курса вы можете свободно сдать сертификационный экзамен <strong><a href="http://certification.salesforce.com/appbuilder">App Builder</a></strong>.</div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<h2 class="_1mf _1mj"><span class="_3gl1 _5zz4"><span class="_ncl">✅</span></span> Что нужно?</h2>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj"><strong>Шаг 1</strong>. Пройти он-лайн тест (20 минут времени) по адресу<strong> http://shkola.softheme.com.ua/shkola/</strong></div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj"><strong>Шаг 2</strong>. По результатам тестов будет личное собеседование.</div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj"><strong>Шаг 3</strong>. Обучиться! При успешном прохождении курсов, сразу предлагаем трудоустройство в компании. А это: интересные проекты, работа в команде, бесплатные курсы английского, мастер-классы, мед. страховка.</div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<h2 class="_1mf _1mj"><span class="_3gl1 _5zz4"><span class="_ncl">✅</span></span>Нужны еще причины, чтобы прийти на курс?</h2>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<div class="_1mf _1mj">После испытательного срока, через 2-3 месяца работы, вы сможете сертифицироваться на <strong><a href="http://certification.salesforce.com/platformdeveloperI">Platform Developer I</a></strong>. Чем так хороша эта сертификация? Вы попадаете в базу специалистов, доступную работодателям по всему миру. Получив сертификат и опыт работы, вы становитесь востребованным и ценным специалистом на мировом рынке IT услуг. Это мощный вклад в вашу карьеру и твердая финансовая платформа.</div>
</div>
<div class="">
<div class="_1mf _1mj"></div>
</div>
<div class="">
<h3 class="_1mf _1mj">Заполняйте тест и приходите! Количество мест ограничено! Обучение начинается через две недели ( с 26 марта)</h3>
</div>
]]></content:encoded>
			</item>
		<item>
		<title>Native Mobile Development: Is It Going To Die?</title>
		<link>https://blog.softheme.com/native-mobile-development-is-it-going-to-die/</link>
		<pubDate>Wed, 07 Mar 2018 13:26:22 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile development]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Android applications]]></category>
		<category><![CDATA[bootcamp]]></category>
		<category><![CDATA[cross-platform solution]]></category>
		<category><![CDATA[hybrid app]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iOS applications]]></category>
		<category><![CDATA[native development]]></category>
		<category><![CDATA[React Native]]></category>
		<category><![CDATA[xamarin]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8475</guid>
		<description><![CDATA[So, one of the main concerns of new mobile developers is if they should invest in native mobile development… Is it going to die? Read this article and find out!]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-8479" src="https://blog.softheme.com/wp-content/uploads/2018/03/Native-Or-Hybrid - Understanding-Your-Mobile-App-Development-Options.jpg" alt="" width="800" height="400" srcset="https://blog.softheme.com/wp-content/uploads/2018/03/Native-Or-Hybrid - Understanding-Your-Mobile-App-Development-Options.jpg 800w, https://blog.softheme.com/wp-content/uploads/2018/03/Native-Or-Hybrid - Understanding-Your-Mobile-App-Development-Options-768x384.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<p>There are a lot of questions on the internet about the future of mobile development, especially the difference between <strong>native</strong> and <strong>hybrid mobile development</strong>.</p>
<p>Before we dive into this discussion, it is important to understand the basic difference between native vs hybrid mobile development:</p>
<p><strong>Hybrid App:</strong> Developer augments web code with native SDK. Can be easily deployed across multiple platform and is usually the cheaper and faster solution.</p>
<h2>Native Development</h2>
<p>This is platform (iOS, Android etc.) specific and requires unique expertise. However the full potential of the platform can be leveraged which will drive great user experience and larger app capabilities (especially around phone hardware). Can be pricey based on requirement and may take longer to develop.</p>
<p>So, one of the main concerns of new mobile developers is if they should invest in native mobile development… Is it going to die? Read this article and find out!</p>
<p>If you&#8217;re dealing with Android development for some time, you know that there are other popular hybrid frameworks like React Native, Xamarin etc. for developing both Android and iOS. The fact is that technology doesn&#8217;t vanish away all at once, but the extreme growth of JS might made people worried a little. Lets think whether JS and Python going to take over? Should you stop doing native development and start learning these hybrid technologies?</p>
<h2>Hybrid Development</h2>
<p>This is a really good question because you know what, when mobile &#8211; when iOS and Android first came out everyone was predicting that &#8211; what was it, like, app &#8211; I can&#8217;t even remember the names of the frameworks. Anyway, there has always been hybrid frameworks that have come out and everyone was predicting that native development was not the way to go and native development was not going to be the future and that it was all going to be developed in the browser. In fact, Firefox OS, look how popular it is, do you have phone Firefox OS? Have you ever seen a phone with Firefox OS? It&#8217;s based on the concept of having it all be web based.</p>
<p>This is great. It makes sense to me to use hybrid development, but we haven&#8217;t seen it happen yet. The fact is that the phones still are not powerful enough that the hybrid, the pure hybrid experience is good enough that everyone has abandoned native apps and gone to that. Now, there are a couple of distinctions I&#8217;d like to make here. One of them is that, you know, Xamarin and hybrid is not quite the same thing.</p>
<p>But the thing is like that&#8217;s different. The Xamarin stuff is technically native. It&#8217;s cross platform but it is not hybrid. It is not in a web browser. It actually compiles down to native code and you get native binaries that get installed on the devices.</p>
<p>Lets focuce on developing on iOS and Android (and it was Windows phone but not anymore, still I believe there will be a new Windows thing). Developing on all those platforms natively, in the native language is difficult.</p>
<h2>What to Choose?</h2>
<p>I do think that if you&#8217;re just going to be just a purely native Android or OS developer that that&#8217;s probably not the best choice. Now, with that said, even with my own personal biases, I think if you&#8217;re an Android developer you&#8217;ve still got at least 5 years of doing native Android development, maybe 10 years. There are still COBOL developers that are working on mainframe systems. So there&#8217;s going to be Android applications, there&#8217;s going to be Legacy Android applications even if everyone goes to hybrid or cross-platform development tools, there are still going to be the stuff to support. There are still going to be people that are going to use it just like COBOL so I wouldn&#8217;t worry there.</p>
<p>IF you want to go where you&#8217;re going to be most useful and where the most money is going to be, I would look at some kind of cross-platform. I wouldn&#8217;t worry about &#8211; don&#8217;t try and win this battle between hybrid and native. Instead, look at cross-platform, because cross-platform is where it&#8217;s at. The hybrid native thing, nobody knows exactly how long this battle is going to go on. It&#8217;s difficult to say if ultimately hybrid is going to win. What is clear,  there is a  pendulum, and it swings back and forth on the web and it swings back and forth on the desktop. You have periods of time where, remember, everyone was going to Flash and everyone was basically creating these thick client applications inside of the web browser. We&#8217;re kind of there now. We have single page applications, and React and so we&#8217;re able to build essentially thick clients inside there and then we went to where we had it super light with Web 2.0 or that came first, but we go back and forth.</p>
<h2>Conclusion</h2>
<p>I wouldn&#8217;t worry necessarily about that. If you want to get into web development, yeah, learn JavaScript and Python. If you want to stay on mobile development then figure out what is the best technology for mobile development. Maybe that&#8217;s going to be a cross-platform hybrid technology or framework. If that&#8217;s the case, then yeah, maybe you&#8217;re going to have to learn some JavaScript and Python, but that might not be the case. Your focus doesn&#8217;t need to be on figuring out whether or not hybrid or native is going to win. It needs to be on what is the best cross-platform tools that are winning and pick one of those, pick a winner there.</p>
<p>If I were you, I would look at cross-platform.</p>
<p>&nbsp;</p>
]]></content:encoded>
			</item>
		<item>
		<title>Getting Things Done: A Productivity Guide for Programmers</title>
		<link>https://blog.softheme.com/getting-things-done-a-productivity-guide-for-programmers/</link>
		<pubDate>Tue, 13 Feb 2018 15:31:44 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Trend News]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[focus]]></category>
		<category><![CDATA[getting things done]]></category>
		<category><![CDATA[personal productivity]]></category>
		<category><![CDATA[productivity hack]]></category>
		<category><![CDATA[productivity tools]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[to-do list]]></category>
		<category><![CDATA[trello]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8466</guid>
		<description><![CDATA[Programming is hard. It’s fun, it’s rewarding, but it’s definitely not an easy thing. In order to be successful and productive, being able to get into that deep focus state and stay there is key. Read our new blog post to learn more details how do you keep track of your thoughts and how to make sure that everything you need to do gets done. 
If you have any other tips, share it with us]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-8472" src="https://blog.softheme.com/wp-content/uploads/2018/02/2446ae083b186200e10560e04c593d8f.jpg" alt="" width="736" height="501" srcset="https://blog.softheme.com/wp-content/uploads/2018/02/2446ae083b186200e10560e04c593d8f.jpg 736w, https://blog.softheme.com/wp-content/uploads/2018/02/2446ae083b186200e10560e04c593d8f-676x460.jpg 676w" sizes="(max-width: 736px) 100vw, 736px" /></p>
<p>Programming is hard. It’s fun, it’s rewarding, but it’s definitely not easy. In order to be successful and productive, being able to get into that deep focus state and stay there is key.</p>
<p>At the same time, it seems like the universe is trying its best to keep you out of that state by peppering you with other things that clamor for your attention at irregular and infuriatingly unpredictable intervals: email, meetings, phone calls, and more.</p>
<p>Even if you manage to successfully get rid of all of the unnecessary distractions, there is some minimum amount of outside world engagement that is required to be a successful and well-adjusted employee, co-worker, and human being. Depending on how much you’re storing “in memory” at any given time, even these small distractions can be enough for you to lose your focus and have to get back into “the zone.”</p>
<p>That being said, here’s the question: how do you keep track of your thoughts? How do you make sure that everything you need to do gets done?</p>
<p>Everybody has some sort of system &#8211; even not having a system and trying to remember everything is technically a system. I wanted to share mine because it seems to work pretty well.</p>
<p>There&#8217;s a method that is fairly well-established called the “Getting Things Done” (GTD) approach for managing the things that you have to do. It was<a href="https://gettingthingsdone.com/meet-david/"> created by David Allen</a> around 2002 and been discussed in <a href="https://www.wired.com/2005/07/gtd-a-new-cult-for-the-info-age/?currentPage=all">Wired</a> magazine and on <a href="https://www.hanselminutes.com/234/getting-things-done-with-lane-newsom">Hanselminutes</a> (Scott Hanselman’s podcast). You can read more about the philosophy behind it on the <a href="https://gettingthingsdone.com/fivesteps/">Getting Things Done website</a>.</p>
<p>I&#8217;ll go over my own process step by step, which is loosely based on the GTD approach. I like to think about it in terms of a few catchy mantras that I came up with all by myself.</p>
<h2>1. Remember Nothing; Record Everything.</h2>
<p>Don&#8217;t remember anything. You&#8217;re not good at it. Find someplace to store all the things you need to think about and remember.</p>
<p>You can use <a href="https://trello.com/">Trello</a>, if it’s a tool that really fits with how your brain works. Trello is a web app that provides users with any number of <em>boards</em>, which are basically blank canvases that will eventually house all of your to-dos, ideas, projects, and everything else.</p>
<p><img class="aligncenter size-full wp-image-27453 lazyloaded" src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2018/02/blank_board.png" alt="productivity guide" width="790" height="381" /></p>
<p>On these <em>boards</em>, you can create <em>lists</em>, which are vertically aligned and ordered collections of <em>cards</em>.</p>
<p><img class="aligncenter size-full wp-image-27454 lazyloaded" src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2018/02/board_with_cards.png" alt="productivity guide" width="790" height="381" /></p>
<p>You can use these cards to store individual brain items. They can have images, comments, documents (like this article), checklists, and even due dates attached to them. I call this system my Other Brain.</p>
<p>The most important feature for me is that Trello allows you to drag and drop your lists and cards. You can create a task, keep all the information about that task (including conversations, history, and data) bundled along with the same card, and even use your lists as a form of workflow control.</p>
<p>If you’ve got a ton of items in the pending list and someone asks you if you have time to take on just one more quick task, there is a concrete record that you can look at, instead of trying to remember all of the things you have to do.</p>
<p>Sorting your tasks allows you to quickly find the next thing you need to work on and get started in it, minimizing the brain space your task management system takes up.</p>
<p>If Trello doesn’t fit your style, use a note-taking app, an actual paper notebook, or something else. The important thing is that you get <strong>everything out of your head!</strong></p>
<p>Here’s why. If you’re carrying everything you have to do later around in your head, you’re <em>not</em> using that space for thinking about the thing you need to do now.</p>
<p>For programmers especially, having that extra space can make a big impact. When you’re programming, you need to be able to simulate the code in your head, stepping through each line and understanding how that line affects the current values of each variable. This process necessarily means that you need to constantly be remembering what variable values are, what function inputs <em>could be</em>, and &#8211; depending on those values &#8211; which branches of program flow could be triggered.</p>
<p>Having the space to accommodate all of these values in your “mental memory,” without bumping up against the space containing your dentist appointment at 3:30 or what you’re going to say to the customer tomorrow morning, can make your life significantly less error-prone and stressful.</p>
<p>In the same way that you feel better and more productive when you clear off your desk, clean up your room when it’s messy, or refactor your code, this step is all about <em>cleaning out your brain</em>.</p>
<p>Once you’ve picked how you want to store your information, you can begin the process. The very second you:</p>
<ul>
<li>have a brilliant idea,</li>
<li>remember something you have to do,</li>
<li>finish a feature which causes you to have new problems,</li>
<li>someone stops by your desk to ask you to take a look at something,</li>
<li>get an email from a customer that needs a long answer,</li>
<li>or get assigned something at a meeting,</li>
</ul>
<p>put it in your Other Brain.</p>
<p>Feel free to make your Other Brain pretty, and create various sections for different parts of your brain. .</p>
<h2>2. Your Inbox Is a Receiving Area, Not a To-Do List</h2>
<p>After you get your Main Brain cleaned out and offloaded into your Other Brain, you need to stop all of the junk that’s pouring into your Main Brain from cluttering it up. The main place this junk pours in, especially in the professional setting, is your email inbox.</p>
<p>I used to keep things in my email inbox until I was done with them. Then I realized that having a full inbox stresses me out. It makes me feel like I have a billion things to do, and there&#8217;s no categorizing or organization. It&#8217;s just a big crap-pile of things that make me feel bad and give me anxiety.</p>
<p>Now, a couple of times a day, I open up my email. For each thing, if I can handle it quickly, I take care of it right away.</p>
<p>The question that goes through my head is, “Can I answer this in the next 30 seconds, without stopping and looking something up?” And depending on how overwhelmed I’m feeling by things that aren’t yet tracked in my Other Brain, that time limit gets shorter and shorter.</p>
<p>If it&#8217;s going to take me a little while to track down the answer or information I need to respond, I enter it into my Other Brain and archive it in its corresponding email folder. When in doubt, put it in the Other Brain.</p>
<p>One way or another, it&#8217;s out of my inbox quickly and painlessly. Generally, this lets me get to Inbox Zero in less than an hour. (Hopefully).</p>
<h2>3. Get Things Done, One Bite at a Time</h2>
<p>After you&#8217;ve stemmed the tide of ideas, emails, and people asking you to do things, open up your Other Brain and get to work. Don&#8217;t get freaked out by everything that&#8217;s on your list, because it will probably be a lot. It&#8217;s your whole Other Brain!</p>
<p>But since you don&#8217;t have to spend valuable time remembering all the things you have to do, you&#8217;re going to be able to fully focus on your tasks. And since you&#8217;ve already pre-sorted your thoughts by order of importance, you should be able to look at your list and find the first thing that needs to be done.</p>
<p><strong>Do it.</strong> Don&#8217;t think about any of the other things. Once you&#8217;re done, cross it off, archive it, or do whatever you have to do to close it out. And find the next thing. Do it again and again until you are tired, hungry, or your list is empty.</p>
<p>The nice thing about this approach is that it matters less if you get interrupted or if somebody jams something in the front of your queue in a panic. It allows you to stay in that all-important deep-focus state, since the act of putting something in your Other Brain doesn’t take nearly as much focus as actually handling the item that threatens to disrupt your concentration. You just file the interruption into the Other Brain, and when they go away, you get right back into your tasks!</p>
<h2>Now, Get Started Getting Things Done<img class="wp-image-27463 alignright lazyloaded" src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2018/02/start-getting-things-done.png" alt="" width="283" height="283" /></h2>
<p>That&#8217;s it. Remember nothing, get everything out of your brain <em>and</em> your inbox, record everything <em>somewhere</em>, and do the things you can, when you can focus, one bite at a time.</p>
<p>When you’re coding, in order to know what you’re program is doing, you have to be the computer &#8211; and that takes a lot of focus.</p>
<p>Like, “everything you’ve got” levels of focus.</p>
<p>Like, “if someone asks you a question in the middle of a session, you have to stare blearily at them for a second, figure out who they are and what’s happening, and probably end up saying ‘Um. What?’” levels of focus.</p>
<p>So, distracting yourself with anything else while you’re doing that is not only unproductive &#8211; it’s unnecessary. I mean, come on! We’re programmers. We’ve got tools for this. Automate it, delegate it, and get back to the fun stuff.</p>
]]></content:encoded>
			</item>
		<item>
		<title>The Best Automation Frameworks and Tools</title>
		<link>https://blog.softheme.com/the-best-automation-frameworks-and-tools/</link>
		<pubDate>Tue, 06 Feb 2018 11:30:31 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software testing]]></category>
		<category><![CDATA[acceptance testing]]></category>
		<category><![CDATA[automation frameworks]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[mocking frameworks]]></category>
		<category><![CDATA[statistic analysis testing]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[testing tools]]></category>
		<category><![CDATA[unit testing frameworks]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8462</guid>
		<description><![CDATA[If you are trying to do some automated UI testing, automated unit testing, static code analysis, or something else, there are tried and tested tools and frameworks that can help you to accomplish your goal.

Check our blog post to find a list of the best C# automation frameworks and tools you should be using. Everything in this list is applicable to .NET; however, some tools may be more generic because they can be used with any programming language.]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter wp-image-8463" src="https://blog.softheme.com/wp-content/uploads/2018/02/Qa-logo-graphic.png" alt="" width="735" height="735" srcset="https://blog.softheme.com/wp-content/uploads/2018/02/Qa-logo-graphic.png 1000w, https://blog.softheme.com/wp-content/uploads/2018/02/Qa-logo-graphic-460x460.png 460w, https://blog.softheme.com/wp-content/uploads/2018/02/Qa-logo-graphic-768x768.png 768w, https://blog.softheme.com/wp-content/uploads/2018/02/Qa-logo-graphic-614x614.png 614w" sizes="(max-width: 735px) 100vw, 735px" /></p>
<p>Have you ever tried to build an Enterprise-level automation framework? You’re not the first.</p>
<p>Luckily, many smart individuals have been creating different tools and frameworks to deal with automation for many years. Therefore, if you are trying to do some automated UI testing, automated unit testing, static code analysis, or something else, there are tried and tested tools and frameworks that can help you to accomplish your goal.</p>
<p>What follows here is <strong>a list of the best C# automation frameworks and tools</strong> you should be using. Everything in this list is applicable to <strong>.NET</strong>; however, some tools may be more generic because they can be used with any programming language.</p>
<h2>Selenium WebDriver Framework Code</h2>
<h3><a href="https://github.com/ProtoTest/ProtoTest.Golem">1) Golem Automated Testing Framework</a></h3>
<p>Selenium WebDriver | GUI Testing | RESTful testing | SauceLabs</p>
<p>This framework is one of the most feature-rich frameworks. It helps you to build GUI tests, RESTful tests, and tests against Windows applications, and it runs all of these things locally or in the cloud.</p>
<p>The creator has some excellent strategies for making very readable tests. Furthermore, he creates great logs, screenshots, and video recordings to help debug the failed tests.</p>
<h3><a href="https://github.com/nadvolod/LightPomFrameworkTutorial">2) Page Object Model Framework</a></h3>
<p><a href="https://courses.ultimateqa.com/">Ultimate QA</a></p>
<p>Selenium WebDriver | C# | Page Object Model</p>
<p>This is a robust Selenium automation framework that will help you to get started with the Page Object Model and GUI automation. Furthermore, this framework contains many advanced techniques to help you manage large page objects, good solution architecture, and creating HTML reports.</p>
<h3><a href="https://github.com/angelovstanton/Projects/tree/master/PatternsInAutomation.Tests">3) Automate The Planet Frameworks</a></h3>
<p>Anton Angelov</p>
<p>Selenium Webdriver | Test Studio | C#</p>
<p>Angelov has a ton of useful code that you can look at. He applies different design patterns to his code to show you how it would look. For example, you can see how to use the Strategy Design Pattern, the Facade Design Pattern, Page Object Model, and Advanced Page Object Model. You can cycle through it and decide which <a href="https://aax-us-east.amazon-adsystem.com/x/c/QjmHDio6AdIFrRZFNLIRe3EAAAFhS8I3ugEAAAFKAYv0Ri8/https://assoc-redirect.amazon.com/g/r/http://www.amazon.com/exec/obidos/ASIN/1783283033/makithecompsi-20/ref=as_at?creativeASIN=1783283033&amp;linkCode=w61&amp;imprToken=yFHzE5LxgdCiUvFdUn.exQ&amp;slotNum=0">code you want to reuse</a>. The code will help you to get started on your own test automation.</p>
<h2>BDD Frameworks</h2>
<h3><a href="http://www.specflow.org/">1) SpecFlow BDD Automation</a></h3>
<p>C# | Selenium Webdriver | BDD</p>
<p>SpecFlow is one of the few C# BDD frameworks out there, which automatically makes it a highly desirable automation tool for you to use in your development projects. This framework helps you to build acceptance tests using business readable specifications. You use the Gherkin syntax to build tests that read close to plain English. Therefore, these tests are readable by the developers, testers, and business personnel, and in theory, serve as living documentation that can replace requirements.</p>
<h3><a href="http://www.thucydides.info/#/">2) Serenity</a></h3>
<p>Java | Selenium | BDD</p>
<p>Serenity is a BDD framework that works with Java and Selenium WebDriver. Serenity also offers functionality such as:</p>
<ul>
<li>Providing WebDriver management</li>
<li>Taking screenshots</li>
<li>Running tests in parallel</li>
<li>Facilitating Jira integration</li>
</ul>
<h3><a href="http://getgauge.io/get-started/index.html">3) Gauge</a></h3>
<p>ThoughtWorks</p>
<p>Test Automation Framework</p>
<p>Gauge is a test automation framework designed by the team that created Selenium WebDriver. In their words, “Gauge is a light-weight cross-platform test automation tool with the ability to author test cases in the business language.”</p>
<h3><a href="https://watirmelon.blog/2011/03/15/specdriver/">4) BDD Sample Code</a></h3>
<p>Alister Scott</p>
<p>C# | Selenium WebDriver | BDD | Specflow</p>
<p>If you are looking to build Behavior Driven Development tests using Selenium WebDriver and C#, then Scott has the code that you want to see. He utilized <a href="http://www.specflow.org/">SpecFlow</a>’<a href="http://www.specflow.org/">s</a> framework to run his tests. This resource is not a real framework, but some sample code. However, I always recommend you look at all the code you can as a practical method of acquiring knowledge from other individuals.</p>
<h2>Unit Testing Frameworks</h2>
<h3><a href="http://nunit.org/">1) NUnit</a></h3>
<p>C# | Unit Testing</p>
<p>NUnit is definitely the most popular C# unit <a href="https://aax-us-east.amazon-adsystem.com/x/c/QjmHDio6AdIFrRZFNLIRe3EAAAFhS8I3ugEAAAFKAYv0Ri8/https://assoc-redirect.amazon.com/g/r/http://www.amazon.com/exec/obidos/ASIN/9401800626/makithecompsi-20/ref=as_at?creativeASIN=9401800626&amp;linkCode=w61&amp;imprToken=yFHzE5LxgdCiUvFdUn.exQ&amp;slotNum=1">testing framework</a>. It’s extremely active on Github with tons of contributors and commits. You can use this framework to do unit testing and also acceptance testing with a tool like Selenium WebDriver. It’s pretty easy to use, as well as robust. The documentation is also good, and there are tons of online resources to help.</p>
<h2>Mocking Frameworks</h2>
<h3><a href="https://github.com/Moq/moq4">1) Moq</a></h3>
<p>Mocking Framework</p>
<p>It makes mocking for test automation easy using .NET Linq expression syntax. The documentation is also rich and descriptive. The Github community has about 60 contributors and there over 1,000 commits; this means that the project is being updated. Plus, you can find an excellent tutorial on how to use it on Pluralsight.</p>
<h3><a href="https://fakeiteasy.github.io/">2) FakeItEasy</a></h3>
<p>Mocking Framework</p>
<p>With a quick look at the documentation page, you will see that it’s a framework that reads really well. The format of the mocks makes it easy to read and understand. Therefore, if you have some issues with using Moq, you could give FakeItEasy a try, and I believe that it will satisfy your mocking needs.</p>
<h2>Acceptance Testing</h2>
<h3><a href="http://fitnesse.org/">1) FitNesse</a></h3>
<p>FitNesse is an acceptance testing framework that is language agnostic. One great thing about the program is that you can create and edit requirements through the web browser, which makes it simple for everyone involved with the project to interact with this tool. “Using acceptance tests allows for better collaboration because now the stakeholders can design the documentation that becomes testable.” This program is a good way to improve communication between business personnel and programmers.</p>
<h2>Mutation Testing and Property-Based Testing</h2>
<h3><a href="http://visualmutator.github.io/web/">1) VisualMutator</a></h3>
<p>C# | Mutation Testing</p>
<p>Have you heard of mutation testing? It’s an interesting concept that allows you to basically reverse all of your assertions to see if your automated tests will ever fail. A mutation testing tool will point out the tests that never fail so that you can fix those tests.</p>
<p>Visual Mutator is one of the few C# tools that seems decent at performing mutation testing.</p>
<h3><a href="https://github.com/fscheck/FsCheck">2) FsCheck</a></h3>
<p>C# | F# | Property-Based Testing</p>
<p>FsCheck is a tool for testing .NET programs automatically. “You can provide the properties of a program — that is, which functions, methods, or objects should satisfy. FsCheck tests those properties to see if they hold in a large number of randomly generated cases.”</p>
<p>FsCheck supports multiple testing frameworks like NUnit, MsTest, and XUnit. Furthermore, their documentation is pretty good, and you shouldn’t have much trouble getting started.</p>
<h2>Code Coverage and Static Analysis Testing</h2>
<h3><a href="https://www.jetbrains.com/dotcover/">1) dotCover</a></h3>
<p>C# | Code Coverage</p>
<p>DotCover is a tool in the ReSharper Ultimate suite that allows you to get code coverage metrics for your code. You can execute your unit tests and then see which parts of your code are covered and which parts are not by using the provided useful highlighting.</p>
<h3><a href="https://www.sonarqube.org/">2) SonarQube</a></h3>
<p>Static Code Analysis | Continuous Code Quality | Multi-Language Support</p>
<p>I strongly believe in excellent quality in all source code, including test code. However, maintaining quality code can be extremely tough. Every bad coding decision can quickly get out of hand and cause your test code to rot.</p>
<p>An excellent way to decrease the amount of rotting code is to set strict standards on code quality. Then, you can use static analysis to make sure that your team standards are enforced. SonarQube is a tool that I am excited to learn and include in my test automation pipeline.</p>
<p>SonarQube provides a home page that shows where you stand in terms of quality. Quality gates can be set to prevent smelly code from going into production. You can also run the analysis on your pull requests, which provides you with the capability to quickly see how your code has impacted the whole project.</p>
<p>&nbsp;</p>
<p>Go and use these tools to drastically improve your test automation skills. With them, you now can automatically perform code coverage, unit testing, property-based testing and so much more.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Building Effective Software as a New Developer</title>
		<link>https://blog.softheme.com/building-effective-software-as-a-new-developer/</link>
		<pubDate>Tue, 23 Jan 2018 16:42:02 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Application development]]></category>
		<category><![CDATA[IT career]]></category>
		<category><![CDATA[Mobile development]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[designing]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[software requirements]]></category>
		<category><![CDATA[Software testing]]></category>
		<category><![CDATA[testing tools]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8457</guid>
		<description><![CDATA[Every customer wants to get the best result and a product that will be built in a way that it is fast to market . Our task as developers is to provide him with such a result. Read our new blog post to find out the ways how to build a reliable product. ]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-8458" src="https://blog.softheme.com/wp-content/uploads/2018/01/1278360_beb4_3.jpg" alt="" width="750" height="422" /></p>
<p>Many new developers think that mastering a lot of programming languages is all you need to build effective software, but that’s like saying having multiple types of wood is all you need to build a house.</p>
<p>If you’re building a house, what really matters is knowing how to use the wood. It’s the same thing with developing software: <strong>Being able to use one language as a tool to build strong software</strong> is more important than knowing a lot of different languages.</p>
<p>So, if mastering many languages isn’t the answer, what does it take for a new software developer to build great software? It’s a combination of many factors and a lot of preparation before you dive into the code itself.</p>
<p>I’m going to walk you through five key elements critical to building the most effective software. This process is one that can be followed by any developer, but if you’re new to software development, you’ll find these steps especially useful to help you get started.</p>
<h2>Specifying Software Requirements</h2>
<p><img class="aligncenter" src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/12/Software-Specification.png" alt="" width="777" height="437" /></p>
<p>You can’t design and build what you can’t describe. In order to start off a software project the right way, your first step should be to specify your software requirements.</p>
<p>Software requirements are the description of features and functionalities that your software must have. Defining your requirements makes it easy to understand your software, which in turn leads to clear design. Once you have a clear design, writing the code will be easy.</p>
<p>The more requirements you have, the more complex your software will be. It’s important to know what the right requirements are. You need to cover all the functionalities that the software should achieve, the expected inputs, and the resulting outputs.</p>
<p>You also need to plan the right amount of time to complete each requirement. One tip is to prioritize the list of requirements from most important to least. If you don’t complete all of the requirements, some of the software’s functionalities will be incomplete, but if you prioritize, you’ll finish the most critical elements.</p>
<p>In order to create the right prioritized list of requirements, you should sit with your client so they can tell you about the problems they need to be solved. The more details you have about the problems, the better you’ll understand the requirements.</p>
<p>Another tip is to create a checklist of all the requirements and functionalities, when you have finished building the software program, go through your checklist to make sure those functionalities really exist and work as expected, check if the problems have been solved, and ensure that the requirements have been met.</p>
<p>It might feel strange at first to have multiple meetings with a client, but the longer you work as a developer, the more you’ll get used to it.</p>
<p>Requirements gathering takes time; you may need to meet with the client many times before you understand their perspective correctly and have a complete list of requirements that you both agree to. Creating this list of requirements before you start writing the software will help you better build effective software.</p>
<h2>Designing the Software</h2>
<p>The language by itself can’t save you, so there must be something else — something that can guide the code to work in a good manner, something like a blueprint that is needed to describe different modules of the software.</p>
<p>That’s what the software design does! It lights the way for code to build the correct software. You can’t build a car if you don’t know what the car looks like. You have to know what the different parts of your car are, categorize them based on their priorities to know where to start first, and then specify the tools and materials you need to put everything together.</p>
<p>Software design is about defining the modules that need to be built to achieve the client’s requirements. It’s putting the requirements into an action plan.</p>
<p>You need to describe each module, how it works, and how all the modules are integrated and work together without any errors or performance problems. At this point, you also should know how the data flows between the different modules.</p>
<p>Diagrams are the best way to describe your design, because they give you a visual representation of what you need to program. There are many types of diagrams used in software design. Each type describes a different level of your design. Data flow diagrams, use case diagrams, sequence diagrams, and class diagrams are examples of the commonly used diagrams.</p>
<p>Having a good design makes it easier to write your code because you already know the modules you need to build, and the functionalities of each module.</p>
<h2>Choosing a Language</h2>
<p>New developers take time in choosing which programming language to use in their software, but it is not a big deal. You can search for advantages of the most widely used languages and choose the one that best serves your requirements.</p>
<p>Each language has a set of frameworks that can be used to decrease the lines of code you write, which helps you to reach your goal with less effort. You can use a language that you already know, and use the framework that facilitates your project.</p>
<p>Because you know your requirements and have a good design, you can choose a language that best helps you meet your goal.</p>
<h2>Testing Your Software</h2>
<p><img class="aligncenter" src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/12/Testing-Software.png" alt="" width="778" height="438" /></p>
<p><strong>Software testing is very important to make sure that you are moving in the right direction</strong>. Just like if you were building a car, you’d want to ask yourself, “Is this really how it (the car or the software) is supposed to look? Should it work that way? Is this what the customer expected?”</p>
<p>Even if it’s not easy to meet all the customer’s expectations, you want to make sure you have covered everything on your requirements list so that the customer gets the functionality they asked and paid for.</p>
<p>So, is your software ready now to be delivered? You don’t know until you test it.</p>
<p>You need to write test scenarios based on your requirements so that you know you’re building the right software in the right way. These scenarios help you to detect if there are any bugs to be fixed or any missing requirements.</p>
<p>The tests you run should answer a few questions:</p>
<ul>
<li>Is the program easy to use?</li>
<li>Does it adapt to changes or does it need a lot of hands-on modifications?</li>
<li>Is it safe to use?</li>
<li>Can it be enhanced to consume fewer resources?</li>
</ul>
<p>Also, it’s very important to test your software performance—no one likes waiting a long time to get a response!</p>
<p>Unfortunately, some developers skip testing for the sake of time, then they discover problems in their codes after the software has been launched. Don’t make that mistake; take the time to test your software and it will make you a better developer.</p>
<h2>Keeping It Up to Date</h2>
<p>After software is launched, a lot of enhancements can be applied; that’s why most software has many versions.</p>
<p>A new version of software may contain fixes for some bugs that are discovered after launching. It also can include new features and functionalities, or it can just be some modification in user interface design to increase the usability.</p>
<p>Keeping your software up to date and continuously enhancing it ensure that the software is of the highest quality.</p>
<h2>Start Building Your Software With Confidence</h2>
<p>If you’re a new developer, you may struggle with where to start in the process of building new software. The five steps discussed above are clear and simple guidelines for you to use.</p>
<p>These guidelines are ones you can and should keep following as you progress in your career as a programmer, but they are especially helpful when you’re just starting out.</p>
<p>By understanding what your client wants, describing it in clear diagrams, writing your code in a language you’re comfortable with, testing the software, and then keeping it up to date, you can build software that’s fully functional with the best performance capabilities. Even better, you can meet your customer’s full expectations—and maybe even exceed them.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Stay Happy at Work</title>
		<link>https://blog.softheme.com/stay-happy-at-work/</link>
		<pubDate>Thu, 11 Jan 2018 13:40:08 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Trend News]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[burnout]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[development team]]></category>
		<category><![CDATA[happy]]></category>
		<category><![CDATA[IT career]]></category>
		<category><![CDATA[self improvement]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[software projects]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8449</guid>
		<description><![CDATA[Hopefully, you like what you're doing at work. But what if you just feel extremely tired and uninspired after your workday? Maybe you need some useful tips how to deal with it? Check our blog post and  find out how to stay happy at work. ]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter  wp-image-8453" src="https://blog.softheme.com/wp-content/uploads/2018/01/Screen-Shot-2017-07-31-at-4.26.31-PM.png" alt="" width="640" height="395" /></p>
<p>Being a programmer or software developer isn’t always a glamorous life. Even if you get to do something exciting and innovative — like sitting at home in your PJs working on a current project — it’s easy to feel burned out and become unhappy or uninspired with your tasks and output.</p>
<p>If you’re in an office or cubicle, that scenario could become even worse as you aren’t in the comfort of your home. Sure, you probably share an inside gag or two with co-workers and you have a good time every so often, but it’s not uncommon for feelings of unhappiness to sneak up.</p>
<p>That’s not to say coding and development is atrocious. In fact, we all are a part of this industry because we love doing it, naturally, and we — most of us, anyway — love being creative.</p>
<p>But who really enjoys plugging away at their keyboard all day, with few breaks and lots of coffee drip-fed into your veins? Even if you do, I’m willing to bet there are some days at work where you just aren’t feeling like yourself.</p>
<p>Negative feelings, like being unhappy and burned out, can impact your overall work productivity and satisfaction. So it’s important to remember that, as developers and programmers, we’re going to run into assignments that make us feel like we’re running in place without getting anywhere — but there are ways to fight against these feelings.</p>
<p>You can empower yourself to take control of negative feelings, and in turn be the best programmer you can be. Here are six tips on staying happy and productive on the job.</p>
<h2>1. Take Frequent Breaks</h2>
<p><img src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/12/1-Taking-A-Break.png" alt="Image of the importance of taking breaks" width="1280" height="720" /></p>
<p>No, your boss is not going to like it if you’re throwing a football outside or playing games while you’re supposed to be at your desk diligently working. However, that doesn’t mean you always have to be at your desk plugging away at the computer or even interacting with the development environment.</p>
<p>When you find yourself feeling burned out or are having a tough time focusing on your current work, take a quick break. It’s OK to<a href="https://www.forbes.com/sites/kevinkruse/2017/02/06/want-to-get-more-done-try-taking-more-breaks/#3f3baa5d6db4"> allow yourself some free time</a>. If you’re at an actual office or working alongside others, you’ll need to be reasonable, obviously. You can’t let loose and guzzle down an entire bottle of wine, but you can definitely take a few minutes of silence to clear your head.</p>
<p>One of the techniques I have found most effective has been writing myself a debrief note for the next day detailing 3-5 things that have happened to me at work, be they a task I had difficulty with or a conversation with a coworker about a project.</p>
<p>Some other head clearing techniques that have worked for me in the past include taking a couple of minutes to listen to some calming music (I opt for classical as it simultaneously invigorates the mind while washing over you) and taking a short walk away from your desk (physically leaving the place of frustration can be eye-opening sometimes).</p>
<p>The key to remaining productive is not just working constantly but also making efficient use of the time you do work. You could, for instance, get more work done in the span of an hour when you’re hyper-focused, as opposed to three or four hours when you’re distracted.</p>
<h2>2. Ship as Early as Humanly Possible</h2>
<p>There’s one particularly nasty element of this industry we’ve all grappled with at one point during our careers, and it’s called scope creep. It happens when the burden or responsibilities of a project begin to outweigh budget, time, and resources.</p>
<p>Often, scope creep can happen because of a delayed or pushed-back ship schedule, offering more time to add content and features. The problem, however, is that the more things you add, the more problems you create.</p>
<p>Start with a general outline of the project, and pay attention to the full scope before you dive in. Outlines can help you streamline your process and get more done. Being able to see what you’ve completed and what comes next can make you feel more productive and thus more happy.</p>
<p>Once your outline is complete, be ready to ship as soon as you possibly can to offset the risks of feature or scope creep. You will always have a chance to add improvements and different features in the future.</p>
<h2>3. Properly Identify Bugs, Features, and Improvements</h2>
<p>Testing is important because it helps us learn all the little — and sometimes major — things we missed during our regular work sessions. Often, there’s time set aside near the end of a project to accommodate this process.</p>
<p>The most important distinction, though, is to separate bugs, features, and improvements, and properly identify and schedule time to handle each and every one. A bug, for instance, is a serious vulnerability or flaw in the system that needs to be fixed. That fix should become a higher priority than, say, adding a new element to the user interface that’s a nice-to-have, not a must-have.</p>
<p>The point is that you need to understand the differences between these three components and use that information in your planning. The hierarchy should always go:</p>
<p><strong>Bug &gt; Improvement &gt; Feature</strong></p>
<p>Every time you introduce a new feature, it’s going to introduce new bugs and also highlight some improvements that need to be made. By separating these things and treating them in this order, you can cut down on the stress and problems you’ll encounter during development.</p>
<p>More importantly, you don’t have to run around like a chicken with its head cut off trying to identify and handle these things the night before you ship.</p>
<h2>4. Stay Away From Uninteresting Work as Much as Possible</h2>
<p><img src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/12/2-Uninteresting-Work.png" alt="Image of staying away from uninteresting work as much as possible" width="1280" height="720" /></p>
<p>I’ll level with you: This is not a perfect industry, and your career will not be perfect, either. You’re going to get stuck working on projects that you abhor, which may or may not turn out bad in the end. It happens even to the best of us. Sometimes you just have to roll with the punches and do the work, and that’s true of any job or career.</p>
<p>However, it’s also easy to fall into the trap of thinking you don’t get to have an opinion or choice. You do, as this is still largely your blood, sweat, and tears going into the bulk of the development. You have the ability to take control of your reaction, and a choice on how you will deal with assignments you don’t like.</p>
<p>It’s good to do your best to simply stay away from work you don’t find interesting. However, if you’re assigned something bland, you can choose to find ways to make it more relevant and interesting to you.</p>
<p>One of the best ways to stay in the zone and focused is to have an attachment — on some level — to the creative work you’re doing.</p>
<p>Think about the impact your project will have for a client. Angle your view of the project as an opportunity to learn or refine a few skills. Find a way to make that happen, and if you can’t, you might want to consider moving to another project or possibly even another team.</p>
<h2>5. Interact and Collaborate With Others on Projects</h2>
<p>You are human. No matter how much you love sitting on your couch at home, binge-watching Netflix alone in the dark, surrounded by melted ice cream and tissues, you are a social creature. Try to find some ways to collaborate with team members or at the least discuss your current projects with one another.</p>
<p>If you work in an office, don’t be afraid to ask a co-worker out for lunch. The time away from the office and the casual conversation will do you good, especially on days when your stress levels are through the roof.</p>
<p>And if you’re working from home, there are multiple Facebook groups for developers and programmers. It’s okay, and totally natural, for you to reach out to others in your industry. They can offer insights into some of your problem areas at work or, if nothing else, be someone to vent to who can personally understand your frustrations.</p>
<p>The social collaboration will contribute to a more pleasant and more enjoyable experience. There’s a reason that the whole water cooler idea is so popular. People love to interact with one another, and you’re no exception.</p>
<p>Collaboration isn’t just good for you personally but can lead to more workplace productivity. In fact,<a href="https://www.pachamber.org/assets/pdf/study_reports/13_Workforce_Development_White_Paper.pdf"> 90 percent of businesses rated collaboration/teamwork</a> as an extremely important skill to have for the next 10 years.</p>
<p>No matter if you’re interacting with a team you’re collaborating with or if you’re just expanding your social circle with other programmers/developers, you’ll find your productivity and enjoyment levels will rise considerably.</p>
<h2>6. Speak Up Instead of Stressing Out</h2>
<p>Often, our work is marred by higher-ups, red tape, and unresponsive or unknowledgable management. A manager might have no idea about the kind of security or authentication necessary to deploy a new cloud system or platform, for instance.</p>
<p>Don’t just go along with everything they say because they are your superior. You do need to be respectful though, and arguing is never the appropriate way to approach your manager with concerns.</p>
<p>That said, sometimes you do need to speak up for your own sanity if you see real problems with the way the project is going. Don’t keep banging your head repeatedly against the wall because your management is telling you to. Speak up and let them know there’s another way, a better way.</p>
<p>If you feel like you have a good relationship with your boss or supervisor, don’t be afraid to send them an email asking for a meeting to talk about your concerns.</p>
<p>If you’re not comfortable talking to your boss alone about complaints, try reaching out to those co-workers you’re now interacting with and see if they are having similar issues. If you can gather a group of employees who are all having the same issues, your boss might not see it as complaining but rather valid concerns that can be solved.</p>
<h2>Enjoy Your Job and Avoid Burnout</h2>
<p><img src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/12/3-Happy-At-Work.png" alt="Image of avoiding burnout" width="1280" height="720" /></p>
<p>Staying happy on the job is vital in order to avoid burnout and frustration. There are also long-term benefits: you’ll be able to enjoy the job you’re doing every day, you’ll find yourself falling in love with the field all over again, your productivity will increase, and your mental and physical health will improve from not being stressed out all the time.</p>
<p>By implementing these six suggestions in your daily routine, you can feel empowered and ready to tackle any task — boring or otherwise — that comes your way.</p>
<p>&nbsp;</p>
<h6><a href="https://simpleprogrammer.com">Source </a></h6>
]]></content:encoded>
			</item>
		<item>
		<title>The Beginner’s Guide to Mobile Application Requirements Documents</title>
		<link>https://blog.softheme.com/the-beginners-guide-to-mobile-application-requirements-documents/</link>
		<pubDate>Mon, 18 Dec 2017 16:41:59 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Mobile development]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Android applications]]></category>
		<category><![CDATA[app requirements document]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[iOS applications]]></category>
		<category><![CDATA[Mobile application development]]></category>
		<category><![CDATA[project scope]]></category>
		<category><![CDATA[Requirements Documents]]></category>
		<category><![CDATA[Sketches and Wireframes]]></category>
		<category><![CDATA[software documentation]]></category>
		<category><![CDATA[Technical Specifications]]></category>
		<category><![CDATA[UX design]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8440</guid>
		<description><![CDATA[In this article, we will walk you through the most common approaches to writing requirements documents. We will help you with the basic steps of writing mobile application requirements and what a good requirements document looks like.]]></description>
				<content:encoded><![CDATA[<h1><img class="aligncenter size-full wp-image-7769" src="https://blog.softheme.com/wp-content/uploads/2017/03/772618_cdee_5.jpg" alt="" width="750" height="422" /></h1>
<p>The Google Play Store hosts<a href="https://www.statista.com/statistics/266210/number-of-available-applications-in-the-google-play-store/"> 3.3 million apps</a>, as on September 2017, but not all apps are equal. Users rate a good number of these apps below par, and such apps have very few downloads.</p>
<p>Several factors contribute to the poor performance of an app. Some common causes include faulty design, poor user experience (UX), excessive bugs and lack of focus on functionality.</p>
<p>Another factor is that in many projects, the app owner and the developer are not on the same page.</p>
<p>Visualize yourself in a situation where you want to build an app. Next thing you would do is search for a developer who can build your app and describe your ideas to him. Despite thinking you were on the same page,  when the developer unveils the app for the first time, it’s a  far cry from what you actually wanted.</p>
<p>What went wrong? Vague, informal ideas could be the underlying reasons. When this happens, the developer may build the app in a way that the owner didn’t intend it to function. This disconnect can cause problems with the app as well.</p>
<p>As a developer, how can you pre-empt problem scenarios from happening?</p>
<p>Make sure all project requirements are crystal clear before you start any work. Preparing an app requirements document provides clarity on any new app, getting everyone on the same page in all aspects of the project. Share this document, which describes how you see the result of the development process, with the developer.</p>
<p>In this article, we will walk you through the most common approaches to writing requirements documents. We will help you with the basic steps of writing mobile application requirements and what a good requirements document looks like.</p>
<h2>App Development for Beginners: The Basics</h2>
<p><img src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/11/App-Requirements-Document.png" alt="" width="853" height="480" /></p>
<p>Developers need to seek clarity on six main components of a project before they start the actual task of application development:</p>
<ol>
<li>The text narrative or user story</li>
<li>Project scope</li>
<li>Technical specifications</li>
<li>Sketches and wireframes</li>
<li>Asset creation</li>
<li>Putting everything together in a workflow document.</li>
</ol>
<p>These six components constitute the core of an app requirements document. Developers need to hammer out consensus on all these components with the app owners before any code is written. Ideally, the project stakeholders, especially the developers, business owners, and managers, get together and reach consensus on each of the above-listed items.</p>
<p>An important point to keep in mind upfront is the fact there are no hard and fast rules, or any rigid format, for the app requirements document. This checklist covers the essential components included in most documents, but you can include additional information based on your own project’s needs. If you’re a new developer, you should find this checklist handy, so that you can develop the app requirements document in a structured way, without leaving anything out.</p>
<h3>1. The Text Narrative or User Story</h3>
<p>The user story is the first methodological step in the mobile app development process. It narrates what the app will provide for the intended users, and it also lists the target customers for the app.</p>
<p>The best user stories are a collaborative effort. The process of developing the text narrative involves the development team, business managers, and end user. These stakeholders get together to identify what problem the app would solve, or what aspect of company operations the app would improve. They prepare a specific list of features of functionality for the app.</p>
<p>A proper narrative pinpoints the core feature of the application. It goes into detail, leaving no scope for ambiguity. It lists the various possibilities with the app from the user’s perspective. Often, a large story is split into sub-stories, to focus on a specific user-case scenario.</p>
<p>The best user stories are simple and easy to understand. While the user story cannot, by itself, be the foundation for developing the app, it offers a good starting point.</p>
<h3>2. The Project Scope</h3>
<p>User stories are not a technical document, and do not come with any rigid format. The project scope extracts definite and technical requirements from the user story, to give a coherent shape to the purpose of the app. It also lists out all the components to be included in the app.</p>
<p>A good scope outline addresses the purpose of the app, in other words, the problems it would address or the process it would streamline. Writing the outline upfront gives a definite direction and goal for the app.</p>
<p>The project scope encompasses the business model of the app, as in whether the app is for the customer or internal employee, whether the app is for monetization, and so on. The structure of an app depends on the business model. For instance, an app aimed at monetization may require paywalls. An app meant for internal employees may be lean and minimalist in design. A customer-facing app, on the other hand, may require more assets such as images and banners.</p>
<p>The scope deals with the extent to which the app would leverage any assets already available to the company or the end user, and the new assets, which would be required to support the app. For instance, if a company launching a new mobile app for employees already has a BYOD (Bring Your Own Device) ecosystem running on Android phones, the app can be installed directly into those phones. On the other hand, if the company is launching a new highly-secure iOS app for top management, and the intended users do not have Apple iPhones, the new app would require the purchase of new smartphones.</p>
<p>The scope also lists out the constraints or limitations applying to the project. The most common limitations relate to budget and time. Other limitations relate to scope, risk tolerance, resource availability, and staffing. Clarity on such limitations makes sure the development team does not go overboard during the development process, and reconciles practical limitations to best practices.</p>
<p>Scope clarity is very important to plan out each feature and functionality. Each component of an app is interlinked, with one leading to another. A specific functionality may be tied to—or dependent on—another one, meaning that adding features and functionality at a later stage could lead to major chop-and-change to the entire code and architecture. Rework at a later stage subverts the project budget and timelines, and may take the wind out of the project’s sails.</p>
<h3>3. Technical Specifications</h3>
<p><img src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/11/Technical-2.png" alt="" width="800" height="450" /></p>
<p>The scope outline leads to framing the <a href="https://aax-us-east.amazon-adsystem.com/x/c/QicdIO8hnGKTy7JFP6i249UAAAFgajAXrAEAAAFKAZOq9RQ/https://assoc-redirect.amazon.com/g/r/http://www.amazon.com/exec/obidos/ASIN/1519204582/makithecompsi-20/ref=as_at?creativeASIN=1519204582&amp;linkCode=w61&amp;imprToken=wGzYOQpHeQHaDu92FeqUGw&amp;slotNum=1">technical specifications of the project</a>. Listing the technical specifications of the project in the app requirements document is essential to determine the practical budget of the app, and in identifying the amount of time and effort required for the project. It’s important for management and the people paying for the app to understand exactly what the project will require in terms of time and money so that they won’t be surprised later in the development process or ask for unreasonable changes.</p>
<p>A good list of technical specifications details the platforms on which the app runs, and the versions of the OS supported by the app. The app may be developed as a cross-platform one, or developed for Android, iOS, or Windows OS.</p>
<p>The list of technical specifications may contain profile, account, and platform credentials. The most essential credentials are Apple, Google, or other developer accounts. While such information may be sourced at a later stage as well, without affecting the development process, identifying such information upfront means that you won’t have to go back and gather information again later on in the process—and the app can be launched immediately when ready, without wasting further time on the account.</p>
<p>Another key inclusion in the list of technical specifications is a blueprint for the post-launch maintenance of the app. All apps require post-launch support. A good app requirements document lists out the extent of support the app will require, and at which times such support will be needed.</p>
<p>All apps will definitely require services documentation, so including these resources in the technical specification gives you a more comprehensive list.</p>
<p>All apps run on an ecosystem of third party software, servers, and databases. Apps also make use of dependency hardware to communicate, and in some cases, just to run. For example, beacons may power an IoT (Internet of Things) enabling app. An app designed to power a touch-screen kiosk would require the kiosk itself as dependent hardware.</p>
<p>The best technical specifications lists are comprehensive and detailed. However, at the same time, it does not go into the finer details, such as the color of a button. These finer details may safely be fixed at a later stage, without changing the scope or budget of the app.</p>
<h3>4. Sketches and Wireframes</h3>
<p>The UX<a href="https://www.statista.com/statistics/266210/number-of-available-applications-in-the-google-play-store/"> makes or breaks an app</a>. A good UX makes it easy for users to find what they seek, improving customer satisfaction. Wireframe sketching is a vital part of UX designing. Based on user requirements, the UX designers use a wireframe to define the hierarchy of items on the screen, and any possible functions.</p>
<p>Why are wireframes important during the mobile app development process?</p>
<p>No matter how competent you are, it’s impossible to go from an idea to immediately building it out without hashing out the details in between. Sketching out your idea before you build it is necessary for every designer.</p>
<p>Wireframe for mobile app development is what blueprint is for architecture. A wireframe is a visual concept of your future app or, say, the guidebook for the whole construction process. It may not give any idea about the design but helps in understanding how your future app will work. Sketches and wireframes make explicit the relationship between different features and functionality. They also illustrate the action-response sequence.</p>
<p>In this section we will guide on how to go ahead with the wireframe sketching.</p>
<p>Start with detailed screen sketches to render clarity to the requirements. A sketch is basic in nature, making explicit what the user will see on each screen. The screen design sketch illustrates the chain of sequence. Each new path, triggered by user action, represents a scenario, and ties back to the project scope. For example, a sketch might illustrate what happens when a user performs a swipe-down action.</p>
<p>Then create a wireframe, which refines the concept, making explicit in great detail how the app will work. The wireframe is usually prepared in pixelated grayscale widgets, and goes into the exact sizing, placement and order of elements.</p>
<p>Innovative designers translate user stories into wireframes that provide a comprehensive description of the proposed features, and how such features would appear on the app screen.</p>
<p>The best practice for creating a good user experience interface, especially if you are new at developing apps, is to proceed in the same sequence that a standard user would proceed in when using the app. The most common starting point is the onboarding screen and user registration. From there, you should cover all paths and eventualities in the user’s journey.</p>
<p>The success of an app depends on an awareness of what forms a good UX. A knowledge of standard navigation patterns, how to link different screens, and the relationship between various elements also helps. It’s important to create a document that covers all eventualities, such as how the app will behave when a user opens it with a push notification.</p>
<p>The development team may also include any necessary branding and design guidelines into the sketches and wireframes.</p>
<h3>5. Create the Required Assets for the App</h3>
<p><img src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/11/5-Assets.png" alt="" width="1280" height="720" /></p>
<p>A well-written requirements document describes all the technical assets and information required for app store submission.</p>
<p>Though the app store information might vary depending on the app stores themselves, some of the assets information to be included are supported sizes of icons, supported sizes of splash screens, correct sizes for screen shots, app descriptions and keywords in required languages and a list of supported devices and OS versions.</p>
<p>The development team may choose to create such assets upfront and before coding, which would quicken the submission process when product is ready to go.  They could also choose to wait and develop the assets at a later stage, and integrate it into the software at the end. Many developers choose to outsource such asset creation tasks, enabling simultaneous development.</p>
<h3>6. Putting It All Together in the App Requirements Document</h3>
<p>The <a href="https://www.fingent.com/insights/portfolio/mobile-app-specification-template/">mobile app requirements document</a> outlines how the product or solution addresses the needs of the company or the users for whom the app is made. It compiles all the above-listed elements in one place and becomes the base reference document for the entire development team and other stakeholders.</p>
<p>The app requirement document leads from the narrative to the scope outline, and from the scope outline to the page design. It also lists out the technical specifications, and the list of assets connected with the app. The page design becomes the basis for co-opting documentation on graphics and video or audio files.</p>
<p>The best requirements documents are:</p>
<ol>
<li>Easy to read, with clear and concise language</li>
<li>Precise and detailed, leaving no room for ambiguity</li>
<li>Iterative; while the finer details may change, the basic requirements remain constant</li>
<li>Collaborative, co-opting the views of all the stakeholders associated with the app.</li>
</ol>
<h2>The Template As a Guide</h2>
<p>The above-mentioned steps to prepare a great mobile app requirements documents are a guide for you to use. The best practices are not set in stone.</p>
<p>There are several formats in vogue for the app requirements document. The most common methods include a functional specification document and storyboarding. The best method to document the requirements depends on the nature of the project. The best format depends on the project it is specific to.</p>
<p>However, regardless of the format, each of these key components is critical in the app development project process, especially if you’re a new developer.</p>
<p>The app requirements document constitutes the blueprint on what exactly goes into the app, and is, in a way, the technical agreement between the developer and the company or person who will own the app. Without it, the development process may end up chaotic, with ambiguities, follow-ups with different stakeholders for confirmation, and even scope creep, which can wreck a project.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Six Mobile App Development Mistakes That Could Ruin Your App</title>
		<link>https://blog.softheme.com/six-mobile-app-development-mistakes-that-could-ruin-your-app/</link>
		<pubDate>Fri, 24 Nov 2017 10:49:06 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Application development]]></category>
		<category><![CDATA[Mobile development]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[app design]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[coding platform]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8429</guid>
		<description><![CDATA[From features to design to marketing to bug fixes and updates, designing a mobile app is no small undertaking. Many developers assume that creating an app is simpler than it seems, but they'll often find themselves forgetting or foregoing very important steps in the development of the app outside of the coding itself. 
Check our new blog post to learn more about common mistakes in the mobile development process and how to avoid them to run your app flawless. ]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<p><img class="aligncenter size-full wp-image-8434" src="https://blog.softheme.com/wp-content/uploads/2017/11/iphone-mistake-1.jpg" alt="" width="725" height="425" /></p>
<p>Do you believe your idea could be the next big thing in the mobile app stores? Maybe you have a product or service that will fit perfectly on a mobile app or you just want to create the next hot game to take the <a href="https://itunes.apple.com/">App Store</a> and<a href="https://play.google.com/store?hl=en"> Google Play Store</a> by storm. Whatever your idea, <strong>you need to proceed carefully and develop your mobile app the right way</strong>.</p>
<p>From features to design to marketing to bug fixes and updates, designing a mobile app is no small undertaking. Many developers assume that creating an app is simpler than it seems, but they&#8217;ll often find themselves forgetting or foregoing very important steps in the development of the app outside of the coding itself.</p>
<p>Here are <strong>6 common mobile app development mistakes that could ruin your app</strong> unless you become aware of them and actively work to prevent them from happening. When you undertake a <a href="https://blog.softheme.com/what-is-mobile-development/">mobile app</a> project, avoid these mistakes and you’ll release your app on the right foot.</p>
<h2>1. Developing for Too Many Platforms</h2>
<p><img class="aligncenter" src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/11/More-Than-One-Platform.png" alt="" width="701" height="393" /></p>
<p>Developing for multiple platforms at the same time is often the first challenge that many developers face.</p>
<p>Android and iOS hold a majority of the market share. Today, Google Play has over 2.8 million apps while Apple comes in second with 2.2 million apps, according to<a href="https://www.statista.com/topics/1002/mobile-app-usage/"> Statistica</a>. So which do you choose?</p>
<p>Often developers attempt to develop for both of these major platforms at once — others even try to include the Microsoft Store in the mix. It’s an understandable dilemma; ideally, you want your app available on every platform at the same time. However, <strong>from a development standpoint, doing everything at once is often a mistake</strong>.</p>
<p>Unless you have almost limitless resources available to you, designing for multiple platforms will only take away valuable time and money from your app’s development. <em>Sure, if you have a huge development staff and a large budget, this will probably work. But if you’re an indie developer, chances are you are short on both time and money</em>.</p>
<p>Instead, consider choosing one of the major platforms first, based on your target audience’s mobile device usage, and then roll out your app to the other platforms a few months after the initial release. By doing so, you will not only save time and money, but you will also <strong>avoid major issues with your app during development and at release</strong>.</p>
<h2>2. Designing Bad Interfaces and Features</h2>
<p><strong>Nothing can kill an app faster than bad interface design</strong>. Remember, the idea of a successful app is to make things as simple as possible while still packing in all the features that you can. You must  devote time to designing the perfect interface.</p>
<p>If interface design isn’t one of your strengths, consider hiring someone that specializes in interface design, if your budget allows. If not, you may want to do a little research on interface design. Books such as <a href="http://www.amazon.com/exec/obidos/ASIN/0123969808/makithecompsi-20">UI is Communication: How to Design Intuitive, User Centered Interfaces by Focusing on Effective Communication</a> are a great place to start.</p>
<p><strong>Each feature you add to your app must be useful</strong>. Adding extra features that don’t really provide any value only serve to clutter the interface and annoy your users. When designing your app, identify the core features your users will need and focus your time on getting these just right. Extra features (such as additional sharing features), while important, aren’t necessary to the core functionality of your app. Consider adding these later in a future update.</p>
<p>Instead, focus on adding only those features that your audience will find valuable, and then package them into an interface that is simple to use — while still making it powerful enough to accomplish whatever task your app is designed to do. Useful and powerful features, backed by simplistic design, is truly the key to app success.</p>
<h2>3. Executing a Poor Testing Phase<img class="alignright" src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/11/Testing-Phase.png" alt="" width="357" height="357" /></h2>
<p>So, you have your app ready to go. Time to release it on the app stores, right? Wrong.</p>
<p>Once you have created the app, <strong>you need to spend quite a bit of time testing it</strong>. During this phase, you can discover any problems with the app, catch random bugs that crop up, and even tighten up the overall design.</p>
<p>Unfortunately, many developers fail to execute this phase of the development process properly. In many cases, developers rush this phase because they want to get the app out the door. Some don’t spend much time testing at all. The end result of rushing this phase is an app that has  multiple problems and bugs at release.</p>
<p>Bugs may be a part of software but that doesn’t mean you shouldn’t do what you can to minimize them. With the wide array of smartphones on the market, it’s paramount that your app is tested thoroughly on as many popular devices as possible.</p>
<p><strong>During testing, use every tool available to you</strong>. For example, I’m sure you know other developers, and I bet you have friends that are willing to give it a try; allow them to install and use the app. Give them plenty of time to use the app the way a normal user would, and then listen to their feedback — both the good and the bad.</p>
<p>The more problems you have at launch, the fewer people who will be willing to download your app. Chances are many vocal reviewers will download your app; if it is full of bugs because you sped up the testing phase, the reviews will show it.</p>
<p>Take your time during testing. Don’t rush it. Remember,<strong> quality is important</strong>, even if that means your app is released a month later than you wanted.</p>
<h2>4. Forgetting Monetization</h2>
<p>While I’m sure you are focused on the functionality of your app, you must bring monetization to the table as part of your initial design. Unless you are a steadfast believer in free software for all, I’m betting that you are hoping the release of a mobile app will translate into a few dollars in your pocket at some point. Why then do so many developers forget this very important part of mobile app design?</p>
<p>By incorporating your monetization strategy into your interface and design, you can provide a much more fluid user experience from the beginning — instead of tacking on a badly executed monetization strategy that negatively impacts the user experience.</p>
<p><strong>Without a sound monetization strategy, your mobile app may fail to live up to your expectations in the money category, no matter how popular it is</strong>.</p>
<p>Early on in the development stages, you should determine your monetization strategy. Do you plan on charging for your app? Will you have ads? Do you plan on selling products and services? Are you considering a preemium model?</p>
<p>You must ask yourself all of these questions long before your app is ready to go. Determining how you plan on monetizing your app will be key to its success and the solution to getting a return on your investment once your app has been released.</p>
<h2>5. Marketing Your App Too Late</h2>
<p><img class="alignleft" src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/11/Marketing-Too-Late.png" alt="" width="323" height="181" /></p>
<p>Not marketing is often one of the most common mistakes app developers make. After all, you aren’t an expert in advertising; you are a developer. Many developers believe marketing can wait until after the development phase, once the app is ready to be released.</p>
<p>This couldn’t be farther from the truth. While you don’t have to start marketing on the very first day you begin your development, <strong>you need to start long before your app is ready to be released</strong>. The idea is to drum up some excitement and create an audience of potential users for your app. That way, when you do release your app on the store, you will hopefully have an army of people ready to download it.</p>
<p>Knowing when to begin your marketing campaign can be difficult, as there are a lot of factors to consider. Obviously, to properly market your new app, you need to have something to show everyone. <strong>That could be a few screens of your app or maybe even a video.</strong></p>
<p>Personally, I believe that once you have the design of your app nailed down and some features up and running, you should begin your campaign. As you add new features and functionality,<strong> you can release more screenshots and videos to demonstrate how your new app is evolving</strong>.</p>
<h2>6. Failing to Address Bugs Quickly</h2>
<p>No matter how much you test your app, there is a good chance users will stumble upon a bug in your app. Bugs in software are just part of life, and most users are accustomed to dealing with them. However, what they do expect is that <strong>whatever bugs crop up in an app are dealt with quickly</strong>. How fast you respond will depend on the nature of the bug. Users are very tolerant of minor bugs in your app, but major flaws that impact the usability of your app must be fixed as quickly as possible.</p>
<p>Your job is far from over after you release your newly created app. Once it is in the wild, you need to keep watch of the reviews and check your messages to identify any bugs that have been found. In the beginning, it’s wise to focus on your newly released app, monitoring everything about it. After a  month, you will probably need to move to a new project — but you still can’t forget about the app you’ve already released.</p>
<p>Bug fixes should continue throughout the lifecycle of your app but you must budget your time; major bugs should be given more attention while smaller ones may be able to wait. How much time you devote to the app will impact its success. Try to strike a balance with your time so new projects don’t get behind and your existing app doesn’t get ignored.</p>
<p>If a bug has been found, it’s paramount that you dig in and figure out what’s wrong as quickly as possible. Once you do, you then need to release an update to get rid of them.</p>
<p><strong>For the entire life of your app, you will have to take care of bugs, update it for new software, and even add more features</strong>. Developers that fail to do this in a timely manner often find their apps without an audience.</p>
<h2>Parting Thoughts</h2>
<p>With more and more users switching to their smartphones and tablets as their primary devices, having a mobile app can mean the difference between your services being seen a lot or not at all. But if you’re going to create a mobile app, you need to make sure you do it the right way, as a bad app can be even worse for your mobile presence than no app at all. After all, the last thing you want as a developer is a reputation for creating and releasing terrible apps.</p>
<p>While avoiding these mistakes in no way guarantees success, making them could mean that your mobile app will get lost in the app store, never to be downloaded by the masses.</p>
<p>Avoiding these mistakes above is a great way to make sure you launch your app off to a good start. By managing the process carefully, you can ensure a smooth release of your app into the wild.</p>
<h6><a href="https://simpleprogrammer.com/">Source</a></h6>
]]></content:encoded>
			</item>
		<item>
		<title>The Seven Circles of Developer Hell [Infographic]</title>
		<link>https://blog.softheme.com/the-seven-circles-of-developer-hell-infographic/</link>
		<pubDate>Wed, 08 Nov 2017 14:58:39 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Trend News]]></category>
		<category><![CDATA[client management]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[customers]]></category>
		<category><![CDATA[development process]]></category>
		<category><![CDATA[have fun]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[sales and marketing]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[work with people]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8418</guid>
		<description><![CDATA[What do you mean when say that software development is hell? Read our blog post to check whether we have something in common. ]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-8426" src="https://blog.softheme.com/wp-content/uploads/2017/11/img-1.jpg" alt="" width="788" height="632" srcset="https://blog.softheme.com/wp-content/uploads/2017/11/img-1.jpg 788w, https://blog.softheme.com/wp-content/uploads/2017/11/img-1-574x460.jpg 574w, https://blog.softheme.com/wp-content/uploads/2017/11/img-1-768x616.jpg 768w, https://blog.softheme.com/wp-content/uploads/2017/11/img-1-766x614.jpg 766w" sizes="(max-width: 788px) 100vw, 788px" /></p>
<p>Software development is a special kind of a nightmare. The kind that you wish you could wake up from, but can’t, because code is money and money is life.</p>
<p>Guys from <a href="https://toggl.com/" target="_blank" rel="noopener">Toggl </a>have created a humorous infographic that illustrates the agonies and nightmares of a developer as the different circles of hell.</p>
<p><img class="aligncenter" src="https://blog.toggl.com/wp-content/uploads/2017/02/7-circles-of-developer-hell-toggl-infographic-02.jpg" /></p>
<p>&nbsp;</p>
<h3 style="text-align: center">Have fun!</h3>
]]></content:encoded>
			</item>
		<item>
		<title>Multiple opportunities which C#.NET gives</title>
		<link>https://blog.softheme.com/info4u/multiple-opportunities-which-c-sharp-net-gives/</link>
		<pubDate>Thu, 02 Nov 2017 12:56:50 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[info4u]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8356</guid>
		<description><![CDATA[C# development is demanded highly across the globe. At our company, we have over nine years of experience working and [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>C# development is demanded highly across the globe. At our company, we have over nine years of experience working and developing in C# and know the ins and outs and all the specifics this body of knowledge calls for.</p>
]]></content:encoded>
			</item>
		<item>
		<title>10 Major Tips for Safe Programming</title>
		<link>https://blog.softheme.com/10-major-tips-for-safe-programming/</link>
		<pubDate>Wed, 01 Nov 2017 13:32:27 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Software development]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[data encryption]]></category>
		<category><![CDATA[data security]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[JSON API]]></category>
		<category><![CDATA[software security]]></category>
		<category><![CDATA[technological security]]></category>
		<category><![CDATA[writing code]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8351</guid>
		<description><![CDATA[Are you working on a project that is going to contain personal data? Check our blog post to find the ways how to make your code more secure. ]]></description>
				<content:encoded><![CDATA[<p>Technological security threats around the world are increasing gradually. Where before it was simply individual credit card numbers being stolen, now it seems almost every day there’s another story of severe breaches where millions of financial records are exposed, like the recent Experian discovery.</p>
<p>Writing secure code is not an easy task. In order to approximate bulletproof code, managers, auditors, engineers, and architects imagine everything that could go wrong with every facet of the code. Though it is not possible to predict every bad curve the hackers will hurl,<strong> you must do everything you can to decrease your attack surface, seal holes, and guard against the fallout of a potential breach.</strong></p>
<h2>1) Testing Inputs Rigorously</h2>
<p>Attackers require a path into your machine, and the simplest routes are via the doors your own code opens. If your program is connected to the Internet, someone will attempt to sneak something past you through those doors.</p>
<p>A good example of a vulnerable path into software is the buffer overflow created by lazy C programmers who will accept any character string until that string hits zero, the last character’s official C symbol.</p>
<p>Long ago, attackers discovered that they could log data packets arbitrarily and write over the memory and the programming stack until <a href="http://searchsecurity.techtarget.com/news/1048483/Buffer-overflow-attacks-How-do-they-work">they never sent that terminating zero.</a> For instance, a program is waiting for a user to enter his name. Instead of entering the name, the hacker would write an executable command that exceeds the size of the stack. They could rewrite anything and assume control if they were clever with what they had written.</p>
<p>The solution is to never trust the person on the other end of the Internet — <strong>test the structure and size of incoming data</strong>. Even the environments that are not susceptible to buffer overflow attacks must be tested, because the overly large inputs may cause denial of service or various other operational problems.</p>
<p>Data transport languages, such as JSON and XML, aren’t equipped  to check the data in order to prevent these problems, so <strong>checking is what the programmer must do to secure their code</strong>.</p>
<h2>2) Store only what you need</h2>
<p><img class="aligncenter" src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/09/Untitled-1.png" alt="" width="768" height="432" /></p>
<p>Before you ask for the snail mail address of your customer, ask yourself whether you will send a physical letter to them via the post office, <strong>don’t store business or home addresses if email is sufficient for correspondence.</strong> The extra information takes up disk space, costs time to process, and makes a target for hackers.</p>
<p>Very often, programmers think like obsessive hoarders, storing anything that stands the least chance of being useful someday. This instinct may help when you have to debug software, but it also leaves a trail of data for anyone to find.</p>
<p>Is every table and column in the database necessary? Make the database tables smaller and the forms shorter when in doubt. Try to simplify everything. <strong>Customers will enjoy investing less amount of time filling out forms</strong>.</p>
<h2>3) Avoid depending just on passwords</h2>
<p>Programs that accept dangerously simple passwords are another <a href="https://www.infoworld.com/article/2621442/password-security/stop-using-these-25-passwords-today.html">problem</a>. Programmers are aware of this issue but haven’t been able to find solutions that offer users an easy and flexible solution.</p>
<p>One solution is to implement N-factor authentication that tosses several distinct hurdles in the user’s way when they log in. One example is sending a text message with a random number to the user’s phone and asking them to type the number along with their password. It’s a good solution unless the user is in an area without mobile coverage or their phone battery dies.</p>
<p>Some programs take things a step further and require special hardware that <a href="https://en.wikipedia.org/wiki/Key_management">manages the cryptographic keys</a>. These tokens are generally easy to lose and are more expensive than a phone.</p>
<p>These type of extra steps or hardware are not perfect solutions, <em>but they are much better than just depending on a password</em>, even if that password technically has the right mixture of punctuation marks, numbers, and lowercase and uppercase letters.</p>
<h2>4) Negotiate requirements</h2>
<p>When developers are considering project requirements, <strong>they must consider how those requirements might open the door to security problems down the road</strong>. The right time to have this discussion with project managers is at the beginning of development, when you can negotiate those requirements.</p>
<p>For example, a requested feature may seem cute, but will it drive you to keep extra sensitive information and enhance the security level needed throughout the program? Is a slick feature worth all those additional headaches?</p>
<p>When the customers are not salivating over the features you have promised them, or when the requirements document is still flexible, then that is the right time to begin securing your code against future breaches. The developers must let the managers know when they see the potential for security issues and inform them what type of features need to be added.</p>
<h2>5) Add delays to your code<img class="alignleft" src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/09/Depositphotos_56670849_l-2015-1.jpg" alt="" width="364" height="364" /></h2>
<p>Many attacks depend on utilizing a bot to relentlessly enter information over and over again, using multiple queries to overwhelm the program. Some bots screen scrape databases, pretending to be a user, while others try multiple potential passwords until the right one is found.</p>
<p>To confound these bots, the trick is to add a delay and to increase that delay progressively over the login process. In many cases, you don’t want your software to be very efficient or very fast; <strong>you want it to be quick enough to aid the right humans but too slow for the bots that are attacking to get much accomplished.</strong></p>
<p>With each incorrect password tried, some login programs double the delay. Other databases limit the number of queries that come from each IP address. Some systems send an email request deliberately to slow the process down. It all lies in the interest of security — <strong>humans won’t observe the additional one or two seconds, but a bot will be bored to the point of being ineffective</strong>.</p>
<h2>6) Use more encryption that you think you should</h2>
<p>Encryption is often underused as it adds another step to the process and makes debugging much harder. Finding errors in a system can be hard enough; when the data is some enigmatic pile of numbers, it’s even harder.</p>
<p><strong>If it’s inscrutable to you as the developer, it will be the same for hackers.</strong></p>
<p>All popular software applications and major operating systems provide you with the option of encrypting folders or files on your device. When you utilize this option, you’ll need to choose a password that enables you to unlock and decrypt those files.</p>
<p>Locking up databases that store personal data saves you the trouble of worrying about the database, the underlying operating system and the hypervisor that might be running underneath the system.</p>
<h2>7) Build walls</h2>
<p>The demand for ease-of-use is greater than the demand to add security. People don’t like logging into different system components, but it can be dangerous to connect all of the programs and systems together into a single portal. <strong>Everything can be compromised by one weak link.</strong></p>
<p>Although many users may want to traverse the system and achieve what they want with just a single click, <strong>the simpler you make it for an authorized user, the simpler you make it for an attacker who slips in</strong>.</p>
<p>It can make sense to set apart the highly sensitive operations into a separate system, where users must log in again when they want to use those functions.</p>
<p>Even with the perceived inconvenience to the user, <strong>you should build more walls between the login phase and highly sensitive operations in order to provide greater overall security</strong>.</p>
<h2>8) Use well-tested libraries</h2>
<p>Encryption is really hard to perform well, and even the most carefully built code can have backdoors and loopholes. One way to avoid these potential problems is to pull the code for your encryption from a well-tested library.</p>
<p>Reinventing a well-tested library is a mistake in general, but with encryption, it is even more problematic. If you invent your own algorithm for encryption, you may introduce holes into the code that can be exploited by a hacker. It’s better to use tested code from an existing library; these processes have already shown they can pass security testing.</p>
<h2>9) Utilize internal APIs</h2>
<p><img class="aligncenter" src="https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2017/09/API.png" alt="" width="707" height="398" /></p>
<p>A lesson everybody learns early in their career is <strong>breaking down your code into modules and imposing communication via well-designed internal application programming interfaces (API)</strong>. APIs make it easy for programs to communicate with each other and share data.</p>
<p>APIs are now mainstream because of the software permeating every industry and product. Companies develop and deploy APIs based on individual project requirements, but overall, there are three types of APIs: serverless and codeless, managed, and self-managed.</p>
<p>In the context of <a href="https://mindmajix.com/cyber-security-training">security</a>,<strong> APIs make it easy to find holes, fix problems, and audit interactions</strong>. It’s often easier to analyze parts rather than the whole, so creating internal sub-modules makes sense to help analyze how secure your code is. Modules can be scrutinized separately and then results can be combined to give an overall security review.</p>
<p>An API also offers another layer of security because it acts as a doorway to your database and server; only those with an API key can have read or write access to the program.</p>
<h2>10) Get outside auditors to critique your code</h2>
<p>While each of us can utilize an editor, your organization should also invest in code audits. These external audits can identify security flaws (as well as other issues with your code) and suggest how to improve the code.</p>
<p>Generally, outside auditors who have more experience identifying security issues will be able to review your code with a more critical and thorough eye, looking for problems you and your team may be too close to see. Plus, as outsiders, they <strong>may be able to break ties and unjam internal conflicts</strong> because they have the benefit of not being attached to internal factions.</p>
<h2>Remember: Safety First</h2>
<p>Security is critical, and programmers need to consider building it into their programs from the beginning.</p>
<p>These 10 tips are a starting point. Programmers must continually educate themselves on the latest security practices; you should keep up with new information by reading current publications, taking a class, or following knowledgeable experts.</p>
<p>There are also many books and other valuable sources of information available on the Internet that explain how to generate highly secure code.</p>
<p>Imparting security to your code may take an extra step as you’re building it but you must remember that in the long run, it is better to be safe than sorry.</p>
<p>&nbsp;</p>
<h6><a href="http://simpleprogrammer.com">Source</a></h6>
]]></content:encoded>
			</item>
		<item>
		<title>To-Do-List Apps: Easy Tricks to Increase their Efficiency</title>
		<link>https://blog.softheme.com/to-do-list-apps-easy-tricks-to-increase-their-efficiency/</link>
		<pubDate>Thu, 26 Oct 2017 07:35:07 +0000</pubDate>
		<dc:creator><![CDATA[Ivan Lytvyn]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Trend News]]></category>
		<category><![CDATA[app development]]></category>
		<category><![CDATA[Google Keep]]></category>
		<category><![CDATA[mobile app]]></category>
		<category><![CDATA[personal productivity]]></category>
		<category><![CDATA[productivity management]]></category>
		<category><![CDATA[task management]]></category>
		<category><![CDATA[tasks management]]></category>
		<category><![CDATA[time management]]></category>
		<category><![CDATA[to-do list]]></category>
		<category><![CDATA[trello]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8346</guid>
		<description><![CDATA[Many people rely on to-do-list apps but some experts say that we can get much more out of them. You [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="size-large wp-image-8347 aligncenter" src="https://blog.softheme.com/wp-content/uploads/2017/10/paper-iphone-to-do-list-921x614.jpeg" alt="" width="640" height="427" srcset="https://blog.softheme.com/wp-content/uploads/2017/10/paper-iphone-to-do-list-921x614.jpeg 921w, https://blog.softheme.com/wp-content/uploads/2017/10/paper-iphone-to-do-list-690x460.jpeg 690w, https://blog.softheme.com/wp-content/uploads/2017/10/paper-iphone-to-do-list-768x512.jpeg 768w, https://blog.softheme.com/wp-content/uploads/2017/10/paper-iphone-to-do-list.jpeg 1000w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<p>Many people rely on <strong>to-do-list apps</strong> but some experts say that we can get much more out of them. You just have to follow some easy tricks. If you want to find out how it&#8217;s possible, then read our blog post.</p>
<h3>Free your mind from information</h3>
<p>According to David Allen, a productivity guru and author of “Getting Things Done”, your brain can not remember and manage more than four things at once. The brain generates ideas but doesn&#8217;t store them, so for this reason, it&#8217;s important to record all ideas (not just some parts of them) into to-do-list apps. Otherwise, you won&#8217;t be able to rely on your brain or a task list.</p>
<p>For such tasks there is a great app that is called <a href="https://itunes.apple.com/us/app/things-3/id904237743?mt=8">Things 3</a>. This app has an option that is designed especially for such type of tasks. Write down your ideas and tasks there &#8211; you can even do this using Siri. Later, you’ll be able to organize these records &#8211; create lists, assign deadlines for each task and so on.</p>
<h3>Detail your tasks</h3>
<p>David Allen says that most people use to-do-list apps incorrectly. The reason is that users do not detail their records. Allen advises to create such tasks, that initially require some action. For example, ‘To book a restaurant for Mom’s birthday’ instead of ‘Mom’s birthday’. Ideally, each action on a to-do list should take no more than about 20 minutes.</p>
<p>So, another good app is <a href="https://trello.com/">Trello</a> which allows you to visualize all tasks and organize them into lists. In the app, you are able to easily check a full list of tasks, and see all details of each task in just one click.</p>
<p><img class="size-large wp-image-8348 aligncenter" src="https://blog.softheme.com/wp-content/uploads/2017/10/to-do-list-concept_1325-59-614x614.jpg" alt="" width="614" height="614" srcset="https://blog.softheme.com/wp-content/uploads/2017/10/to-do-list-concept_1325-59-614x614.jpg 614w, https://blog.softheme.com/wp-content/uploads/2017/10/to-do-list-concept_1325-59-460x460.jpg 460w, https://blog.softheme.com/wp-content/uploads/2017/10/to-do-list-concept_1325-59.jpg 626w" sizes="(max-width: 614px) 100vw, 614px" /></p>
<h3>Set a deadline</h3>
<p>Many experts say that one of the biggest mistakes of people who use task apps is that they do not set deadlines. If you come back to the same task from time to time with an intension of taking action about it, and as a result you do nothing over and over again, then it may turn into a graveyard of unfinished tasks.</p>
<p>In that case, an app is better than a notebook. In such apps you can set a reminder based on geolocation. For example, you’re visiting the biggest tech conference in Ukraine &#8211; IT Forum, and you have a task in <a href="https://www.google.com/keep/">Google Keep</a> &#8211; ‘To learn more about ICO (Initial Coin Offering)’. So an app could remind you about this task, and in that case you would visit the discussion panel about Blockchain and its technologies.</p>
<h3>Create a balance with an anti to-do-list</h3>
<p>To be clear, The Anti To-Do-List is not against a to-do list, but it&#8217;s a list of actions that are already taken. It complements a to-do-list, and what&#8217;s more, saves you from a thought that your day is gone and you didn&#8217;t achieve anything. It can bring you a good feeling of productivity and fulfillment.</p>
<p>Using an anti-to-do list is also a great way to track your progress.</p>
<h3>Test and adjust</h3>
<p>All people are different. Those tips that work for one person might not work for another one. So we recommend you to start trying out the tips mentioned above, and then proceed with adjusting them according to your needs.</p>
<p>You can also compare your weekly lists and see how much was done, and which methods/tips work better for you.</p>
]]></content:encoded>
			</item>
		<item>
		<title>The Internet of Things in the World of Banking</title>
		<link>https://blog.softheme.com/the-internet-of-things-in-the-world-of-banking/</link>
		<pubDate>Mon, 23 Oct 2017 11:14:55 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Trend News]]></category>
		<category><![CDATA[Artificial intelligence]]></category>
		<category><![CDATA[banking]]></category>
		<category><![CDATA[big data]]></category>
		<category><![CDATA[Customer service]]></category>
		<category><![CDATA[Internet of Things]]></category>
		<category><![CDATA[mobile banking]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8337</guid>
		<description><![CDATA[While banks are still evolving to become possibly best service providers, they do not stick to their basic offerings. They are exploring new channels of reaching out to clients. Read our new blog post to learn more about Internet of Things in the banking world ]]></description>
				<content:encoded><![CDATA[<h2><img class="aligncenter size-full wp-image-8341" src="https://blog.softheme.com/wp-content/uploads/2017/10/mobile-banking-and-finance-trends-2016-e1505136463301.jpg" alt="" width="750" height="500" srcset="https://blog.softheme.com/wp-content/uploads/2017/10/mobile-banking-and-finance-trends-2016-e1505136463301.jpg 750w, https://blog.softheme.com/wp-content/uploads/2017/10/mobile-banking-and-finance-trends-2016-e1505136463301-690x460.jpg 690w" sizes="(max-width: 750px) 100vw, 750px" /></h2>
<h2>A niche market with amazing potential!</h2>
<p>While banks are still evolving to become possibly best service providers, they do not stick to their basic offerings. They are exploring new channels of reaching out to clients. Although it is still too soon to a predicate, which solutions will be implemented, surely banks are curious what possibilities connected objects might proffer.</p>
<p>Due to its huge potential, the connected object’s market is growing exponentially and it is already too late to pigeonhole it as trivial accessories. We are currently experiencing dynamic changes in perception of connected objects. As many of these solutions may become useful in providing customer service, banks set their minds on exploring this aspect of new tech branch. Especially new improvements in clients’ identification lead to growing security and reliability in developing safe and fraud free customer experience.</p>
<p>While for some it may be seen to be a waste of funds and trifles unworthy serious business attention, these approach is luckily disappearing. Principals already realized that <strong>banks should focus on investing in the Internet of Things, as it offers solutions of tomorrow </strong>–<em> geolocation, biometrics, secure payments, also via biometrics</em>. As these technologies are already in use, they are still undergoing improvements, especially in safety of use issues. Next step for making connected objects part of every household is solving questions of grave importance – <strong>dependency on smartphones and lack of general regulations</strong>.</p>
<p>For the sake of being able to interact with clients, banks made huge investments in mobile technologies, especially in <em>HD mobile networks</em> (4G+/5G), as to make it their main communication medium, as KPMG’s reports on Mobile Banking show. As we already may observe on the example of British users, this strategy pays off – almost 30% of bank customers in the UK is using their mobile devices to perform banking operations, for example, transfers of funds. As smartphones already merged almost every possible aspect of everyday’s’ life, it is the right time to become familiar with new services available on mobile devices, before we will be offered with separate equipment, highly specialized in particular fields.</p>
<p>But what if we already are equipped with such item, the Holy Grail of connected objects, or, as fantasy fans may express it – &#8220;The one to rule them all&#8221;? Isn’t it the bank card, that has all the customer data, allowing to predict clients’ next steps, allowing tracking his habits and understanding special customs? Bank cards are first ever tech-driven objects enabled to synchronize with purchases, giving banks opportunity to understand the *custom* in customer.</p>
<p>Before we truly understand all aspects of building customer experience via the Internet of Things and harness the potential of connected objects, we have to prepare for another revolution in providing services, as soon the wind of change will move such concepts as Big Data and Artificial Intelligence into clients everyday’s reality.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			</item>
		<item>
		<title>Open Vacancies in Softheme [October 2017]</title>
		<link>https://blog.softheme.com/open-vacancies-in-softheme-october-2017/</link>
		<pubDate>Fri, 20 Oct 2017 08:27:33 +0000</pubDate>
		<dc:creator><![CDATA[Ivan Lytvyn]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[IT career]]></category>
		<category><![CDATA[IT education in Ukraine]]></category>
		<category><![CDATA[Trend News]]></category>
		<category><![CDATA[Ukraine]]></category>
		<category><![CDATA[career growth]]></category>
		<category><![CDATA[fluent English]]></category>
		<category><![CDATA[IT engineer]]></category>
		<category><![CDATA[IT job]]></category>
		<category><![CDATA[IT specialist]]></category>
		<category><![CDATA[open vacancy]]></category>
		<category><![CDATA[software developer]]></category>
		<category><![CDATA[technical knowledge]]></category>
		<category><![CDATA[we're hiring]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8335</guid>
		<description><![CDATA[If you belong to those people who have just started looking for new job opportunities, you might want to check [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="size-full wp-image-8246 aligncenter" src="https://blog.softheme.com/wp-content/uploads/2017/08/team-copy-1.png" alt="" width="750" height="450" srcset="https://blog.softheme.com/wp-content/uploads/2017/08/team-copy-1.png 750w, https://blog.softheme.com/wp-content/uploads/2017/08/team-copy-1-160x96.png 160w" sizes="(max-width: 750px) 100vw, 750px" /></p>
<p>If you belong to those people who have just started looking for new <strong>job opportunities</strong>, you might want to check openings in Softheme as for October.</p>
<p>As usually, we’d like to start with the list of <strong>benefits</strong> that Softheme can provide:</p>
<ul>
<li>Highly competitive salary;</li>
<li>High-tech office in the city’s center (office access 24/7, 5 min from the metro station, free parking);</li>
<li>28-days of paid vacation, 100% paid sick leave;</li>
<li>Wellness program (similar to health insurance);</li>
<li>Free English and Polish lessons during working hours;</li>
<li>Business trips to Europe and USA;</li>
<li>Free certifications and trainings inside and outside the company;</li>
<li>Free business and tech literature;</li>
<li>Tasty benefits – natural coffee, tea, cookies, sandwiches, and fruits for the employees;</li>
<li>Large opportunities for career growth in the innovative tech company and in rapidly growing IT sector.</li>
</ul>
<h3><a href="http://softheme.ua/c-linux-kernel-developer/">C Linux Kernel Developer</a></h3>
<p><em>Skills required:</em> Technical education (at least 6 semesters); Experience in developing applications on C in a Linux environment; Experience in working with multitasking applications and synchronization mechanisms; Basic knowledge of Python and Bash; Experience of modules / drivers development for Linux Kernel and knowledge of Git / GitHub would be an advantage; Good English.<br />
<em>Project:</em> The project will include support and development tasks of a well-known data backup system.</p>
<h3><a href="http://softheme.ua/senior-javascript-developer-4/">Senior JavaScript Developer</a></h3>
<p><em>Skills required:</em> Technical education; 3+ years of experience in mobile development with JavaScript; experience with HTML5 / CSS3; knowledge of Vanilla JS frameworks (Webpack, Gulp / Grunt, Jasmine / Mocha, Chai &amp; Sinon, NightwatchJS) would be an advantage; fluent English.<br />
<em>Project:</em> The tasks will include development of a next-generation web video player and related functions using the latest JavaScript technologies.</p>
<h3><a href="http://softheme.ua/asp-net-developer-4/">ASP.Net Full-Stack Developer</a></h3>
<p><em>Skills required:</em> Technical education (at least 6 semesters); 2+ years of experience in apps development with ASP.Net; Good Knowledge of C# and JavaScript/TypeScript; Experience with Angular; Good English.<br />
<em>Project:</em> Implementation of an audit project for companies and enterprises.</p>
<h3><a href="http://softheme.ua/php-symfony-developer/">PHP / Symphony Developer</a></h3>
<p><em>Skills required:</em> 1+ year of work experience; knowledge of PHP, frameworks (knowledge of Symphony would be an advantage), front-end development, SQL and other databases; Fluent English would be an advantage.<br />
<em>Project:</em> One of the most popular sport gaming portals in the UK and Ireland.</p>
<h3><a href="http://softheme.ua/c-linux-developer-2/">C++ Linux Developer</a></h3>
<p><em>Skills required:</em> Technical education (at least 6 semesters); experience in app development with C++ in Unix; experience in multi-threading; knowledge of Boost and Azure Cloud libraries would be an advantage; good English.<br />
<em>Project:</em> A data backup and storage project.</p>
<h3><a href="http://softheme.ua/csharp-developer/">C# .NET Developer</a></h3>
<p><em>Skills required:</em> Technical education (BA degree at least); 2+ years of experience in C# development; Good knowledge of .NET Framework; Understanding of principles of app development with SOA; Experience of working with ORM; Fluent English.<br />
<em>Project:</em> A complicated and interesting project with a large team of developers.</p>
<h3><a href="http://softheme.ua/salesforce-developer-2/">Salesforce Developer</a></h3>
<p><em>Skills required:</em> Technical education (at least 6 semesters); 1+ year of experience in commercial projects with Salesforce CRM; knowledge of development with high-level programming languages, and experience in commercial web development; Fluent English (Intermediate+).<br />
<em>Project:</em> Development projects for the Salesforce CRM platform.</p>
<h3><a href="http://softheme.ua/asp-net-mvc-developer-2/">ASP.Net MVC Developer</a></h3>
<p><em>Skills required:</em> Technical education (at least 6 semesters); 2+ years of experience in development of ASP.Net apps; Knowledge of JavaScript, jQuery, HTML, CSS, Bootstrap, AngularJS; Knowledge of C#, ASP.NET MVC, WebApi; Good English.<br />
<em>Project:</em> Development of a website for administration of a data backup service.</p>
<p>Even if your CV does not match 100% of the requirements for one of the listed jobs, send it to <a href="mailto:4candidates@softheme.com">4candidates@softheme.com</a> or call +380996140106 and who knows, maybe there is something for you. <strong>Join our team!</strong></p>
]]></content:encoded>
			</item>
		<item>
		<title>3 Legal Questions to Ask Yourself Before Launching a Mobile App</title>
		<link>https://blog.softheme.com/3-legal-questions-to-ask-yourself-before-launching-a-mobile-app/</link>
		<pubDate>Thu, 19 Oct 2017 15:47:27 +0000</pubDate>
		<dc:creator><![CDATA[Olha Statura]]></dc:creator>
				<category><![CDATA[Software development]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[Application development]]></category>
		<category><![CDATA[EULA]]></category>
		<category><![CDATA[guideline]]></category>
		<category><![CDATA[legal policy]]></category>
		<category><![CDATA[legal questions]]></category>
		<category><![CDATA[Mobile application development]]></category>
		<category><![CDATA[Mobile development]]></category>
		<category><![CDATA[privacy policy]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8331</guid>
		<description><![CDATA[Launching a mobile app can be a daunting task. Not only because you have to ensure that it’s polished and running smoothly - which is no easy task itself - but also that you satisfy some key legal requirements. 

What questions should you ask yourself before launching a Mobile App? Check our blog post to find it out! ]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-8332" src="https://blog.softheme.com/wp-content/uploads/2017/10/YPS_1510_WC151015_facebook_1920-800x450-800x400-768x384.jpg" alt="" width="768" height="384" srcset="https://blog.softheme.com/wp-content/uploads/2017/10/YPS_1510_WC151015_facebook_1920-800x450-800x400-768x384.jpg 768w, https://blog.softheme.com/wp-content/uploads/2017/10/YPS_1510_WC151015_facebook_1920-800x450-800x400.jpg 800w" sizes="(max-width: 768px) 100vw, 768px" /></p>
<p>Launching a mobile app can be a daunting task. Not only because you have to ensure that it’s polished and running smoothly &#8211; which is no easy task itself &#8211; but also that you satisfy some key legal requirements.</p>
<p>You’ve built an app that works like it’s supposed to, and you’ve done everything you need to do to describe the app in appealing terms that accurately convey its functionality. Now you need to figure out how to meet those legal requirements.</p>
<p>Requirements vary depending on your state and target user base. Regardless of the specific requirements, you’ll need to include the appropriate legal documentation with your app.</p>
<p>So what should you think about?</p>
<h2>1. Does Your App Collect Personal Information?</h2>
<p>From a legal standpoint, <strong>this is the most important question to ask yourself</strong> about your soon-to-launch mobile application. If you collect personal information from your users, you are automatically subject to several state and federal regulations.</p>
<p>The mobile ecosystem is constantly evolving, allowing for more sharing of more information with more people &#8211; and parties &#8211; so it’s best to be cognizant of your own practices.</p>
<p>Personal information is defined as any information that can be used to personally identify an individual, and can include names, email addresses, birthdays, login information, credit card information, and device data.</p>
<p>There are several state and federal laws that pertain to the collection, storage, and use of personal information by mobile apps. The actions covered by these laws include the collection of information using tracking technologies like cookies. It also applies to the gathering of information by any third-party services you employ, including analytical software and payment gateways.</p>
<p>If your application, or any third-party service you use, collects &#8211; or has the capacity to collect &#8211; personal information from any of its users, you are required by law to post a privacy policy that addresses these practices in a conspicuous place.</p>
<p>This notice could be anything from a link placed on the home screen of your app to a fully embedded document in the “settings” section.<a href="https://consumercal.org/about-cfc/cfc-education-foundation/california-online-privacy-protection-act-caloppa-3/" target="_blank" rel="nofollow noopener"> </a></p>
<p>All major app stores, including<a href="https://www.apple.com/ios/app-store/" target="_blank" rel="nofollow noopener"> Apple’s App Store</a>,<a href="https://www.google.com/aclk?sa=l&amp;ai=DChcSEwiMxqiizPvVAhWWBCoKHfcsDJ8YABAAGgJ0bQ&amp;sig=AOD64_0sOsngDConOi-Aqtw8RtKzzjB_oA&amp;q=&amp;ved=0ahUKEwi6gKOizPvVAhWKWLwKHeIcAlMQ0QwIIw&amp;adurl=" target="_blank" rel="nofollow noopener"> Google Play</a>, and third-party service providers like <a href="https://adwords.google.com/home/" target="_blank" rel="nofollow noopener">AdWords</a>, also have this requirement. So not only are you personally legally bound to provide a privacy policy, but you are required by your business partners to include one as well.</p>
<p>If you or your third-party service providers collect personal information of any kind, <strong>your mobile app must have a privacy policy.</strong></p>
<h2>2. Do You Want to Establish Guidelines for Your App? (You Should)</h2>
<p>Regardless of the type or functionality of your mobile app, there will certainly be some ways in which you don’t want people to use it. Inappropriate uses of the app could be anything from abuses to the app itself, or to other app users, to using it for something that could be considered illegal.</p>
<p>Although most people will use the app in the intended manner, there are always a few bad eggs out there. To deal with these bad eggs in a way that gives you legal ground to stand on, you need to have a comprehensive terms and conditions agreement in place.</p>
<p>A terms and conditions agreement &#8211; also called a terms of service or terms of use &#8211; is a legal contract agreed upon by you and the user. It is in this document that you state and describe all your rules, guidelines, and stipulations for the use of your application. <strong>These rules are decided entirely by you </strong>(ideally with the consultation of an attorney), and it is then up to the user to agree &#8211; or decide not to use the app.</p>
<p><strong>This legal contract protects your position</strong> as the owner and proprietor of the application. It gives you the right to deal with abusive users on your own terms and have the law on your side.</p>
<p>You are also able to terminate the accounts of abusive users, establish the governing law in the event of legal disputes, and limit your own liability with regards to contributors and third-party links that may make their way onto your platform.</p>
<p>Additionally, it protects your intellectual property: the design, content, logos, images, and functionality of your app are all legally yours. All copyrighted and trademarked material on your app is part of your intellectual property. All this material has great value, in terms of money, time, and effort.</p>
<p>In your terms and conditions, you establish your legal right to this intellectual property. In the event that this property is infringed upon, having these clauses in your terms and conditions will protect your investment from a legal standpoint, and make it much easier to resolve in court.</p>
<p><strong>Without a terms and conditions, you will be toothless in the inevitable battle with abusers and intellectual property thieves.</strong></p>
<h2>3. Do You Mind If Your App Is Replicated?</h2>
<p><strong>Imagine this scenario</strong>: you’ve spent hundreds of hours building and refining a novel app that has the potential to be extremely successful and propel you to a lifestyle you’ve only ever dreamed of. You’ve submitted it to your app store of choice, and things start to take off. The money starts coming in, and you’re feeling great.</p>
<p>Then, out of nowhere, an app so similar to yours that it can’t be coincidence pops up in the app store. Your sales and downloads start to dwindle as this new application gains traction. Even if you stay on top of this new competitor, it will always cut into your success.</p>
<p>So what happened?</p>
<p>Someone probably downloaded your app and reverse-engineered it so they could make a similar app for their own benefit. They didn’t copy the design or intellectual property of your app, per se, but at the same time, their app wouldn’t have existed without yours.</p>
<p>So how do you prevent your app from being reverse engineered?</p>
<p>Let’s start from the beginning. In order for anyone to download and use your application, it must first be copied. After all, you wouldn’t want someone to take your one and only original copy away from you. Whichever app store you decide on makes legal copies of your application, which users then download. Essentially, everyone that uses your app owns and uses a copy of the original.</p>
<p>For users to legally copy your property, <strong>you must first give them permission to do so</strong>. Developers give this permission in what’s called an end-user license agreement, or EULA.</p>
<p>An EULA is a contract between the user and the developer, which establishes the ways in which the app can be copied and used. As a rule of thumb, an EULA pertains to the <em>macro</em> use of the app &#8211; that is, the more global, external use, such as copying and reverse engineering &#8211; while a terms and conditions pertains to the <em>micro</em> use of the app &#8211; meaning use of features within the app itself.</p>
<p>An EULA is a necessity if you want to distribute your application via an app store. In fact, if you don’t provide one, <a href="https://www.apple.com/legal/internet-services/itunes/dev/stdeula/" target="_blank" rel="nofollow noopener">most app stores have a default EULA </a>that will be affixed to your app.</p>
<p><strong>An EULA is essential for anyone who builds an app </strong>(or any software, for that matter) and wants to distribute it without the fear of their ideas being stolen. A reminder: I am not a lawyer, so the best practice is to consult with a licensed attorney to include an EULA clause within your terms and conditions statement, which will give your investment all-around legal protection.</p>
<h2>Don’t Wait Until It’s Too Late to Ask the Legal Questions</h2>
<p>The road to launching your mobile app can be stressful and riddled with speed bumps and potential pitfalls. You can save yourself a lot of stress and headaches by simply asking yourself these questions and making the appropriate moves with your legal policies.</p>
<p>At the end of the day, the most responsible thing to do is consult with a licensed attorney for guidance when launching your mobile app.</p>
<h5>
Thanks Zachary Paruch for food to think about</h5>
]]></content:encoded>
			</item>
		<item>
		<title>Pics from Conference “How to find, win and retain customers with Salesforce platform”</title>
		<link>https://blog.softheme.com/pics-from-conference-how-to-find-win-and-retain-customers-with-salesforce-platform/</link>
		<pubDate>Tue, 17 Oct 2017 12:19:19 +0000</pubDate>
		<dc:creator><![CDATA[Ivan Lytvyn]]></dc:creator>
				<category><![CDATA[Cloud computing]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[IT Conference]]></category>
		<category><![CDATA[IT education in Ukraine]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[Ukraine]]></category>
		<category><![CDATA[client management]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[CRM development]]></category>
		<category><![CDATA[CRM solution]]></category>
		<category><![CDATA[Customer service]]></category>
		<category><![CDATA[Sales Cloud]]></category>
		<category><![CDATA[salesforce]]></category>
		<category><![CDATA[Salesforce CRM]]></category>
		<category><![CDATA[softheme]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8320</guid>
		<description><![CDATA[Last week we announced the conference that was organized by Softheme and Salesforce &#8211; &#8220;How to find, win and retain [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Last week we announced the conference that was organized by Softheme and Salesforce &#8211; &#8220;How to find, win and retain customers with Salesforce platform&#8221;.</p>
<p><img class="size-large wp-image-8321 aligncenter" src="https://blog.softheme.com/wp-content/uploads/2017/10/22366423_1666864630054354_2027315862707343627_n-819x614.jpg" alt="" width="640" height="480" srcset="https://blog.softheme.com/wp-content/uploads/2017/10/22366423_1666864630054354_2027315862707343627_n-819x614.jpg 819w, https://blog.softheme.com/wp-content/uploads/2017/10/22366423_1666864630054354_2027315862707343627_n-613x460.jpg 613w, https://blog.softheme.com/wp-content/uploads/2017/10/22366423_1666864630054354_2027315862707343627_n-768x576.jpg 768w, https://blog.softheme.com/wp-content/uploads/2017/10/22366423_1666864630054354_2027315862707343627_n.jpg 960w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<p>Check now the pics from the event:</p>
<p><img class="size-large wp-image-8327 aligncenter" src="https://blog.softheme.com/wp-content/uploads/2017/10/22406318_1666864636721020_1034058586979855139_n-819x614.jpg" alt="" width="640" height="480" srcset="https://blog.softheme.com/wp-content/uploads/2017/10/22406318_1666864636721020_1034058586979855139_n-819x614.jpg 819w, https://blog.softheme.com/wp-content/uploads/2017/10/22406318_1666864636721020_1034058586979855139_n-613x460.jpg 613w, https://blog.softheme.com/wp-content/uploads/2017/10/22406318_1666864636721020_1034058586979855139_n-768x576.jpg 768w, https://blog.softheme.com/wp-content/uploads/2017/10/22406318_1666864636721020_1034058586979855139_n.jpg 960w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<p><img class="size-large wp-image-8323 aligncenter" src="https://blog.softheme.com/wp-content/uploads/2017/10/22405620_1666864646721019_7051398836714309547_n-819x614.jpg" alt="" width="640" height="480" srcset="https://blog.softheme.com/wp-content/uploads/2017/10/22405620_1666864646721019_7051398836714309547_n-819x614.jpg 819w, https://blog.softheme.com/wp-content/uploads/2017/10/22405620_1666864646721019_7051398836714309547_n-613x460.jpg 613w, https://blog.softheme.com/wp-content/uploads/2017/10/22405620_1666864646721019_7051398836714309547_n-768x576.jpg 768w, https://blog.softheme.com/wp-content/uploads/2017/10/22405620_1666864646721019_7051398836714309547_n.jpg 960w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<p><img class="size-large wp-image-8325 aligncenter" src="https://blog.softheme.com/wp-content/uploads/2017/10/22366432_1666864813387669_5882613069081894542_n-819x614.jpg" alt="" width="640" height="480" srcset="https://blog.softheme.com/wp-content/uploads/2017/10/22366432_1666864813387669_5882613069081894542_n-819x614.jpg 819w, https://blog.softheme.com/wp-content/uploads/2017/10/22366432_1666864813387669_5882613069081894542_n-613x460.jpg 613w, https://blog.softheme.com/wp-content/uploads/2017/10/22366432_1666864813387669_5882613069081894542_n-768x576.jpg 768w, https://blog.softheme.com/wp-content/uploads/2017/10/22366432_1666864813387669_5882613069081894542_n.jpg 960w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<p><img class="size-large wp-image-8326 aligncenter" src="https://blog.softheme.com/wp-content/uploads/2017/10/22406024_1666864806721003_7121618532870535489_n-819x614.jpg" alt="" width="640" height="480" srcset="https://blog.softheme.com/wp-content/uploads/2017/10/22406024_1666864806721003_7121618532870535489_n-819x614.jpg 819w, https://blog.softheme.com/wp-content/uploads/2017/10/22406024_1666864806721003_7121618532870535489_n-613x460.jpg 613w, https://blog.softheme.com/wp-content/uploads/2017/10/22406024_1666864806721003_7121618532870535489_n-768x576.jpg 768w, https://blog.softheme.com/wp-content/uploads/2017/10/22406024_1666864806721003_7121618532870535489_n.jpg 960w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<p><img class="size-large wp-image-8328 aligncenter" src="https://blog.softheme.com/wp-content/uploads/2017/10/22449682_1666864703387680_8375685290251923377_n-819x614.jpg" alt="" width="640" height="480" srcset="https://blog.softheme.com/wp-content/uploads/2017/10/22449682_1666864703387680_8375685290251923377_n-819x614.jpg 819w, https://blog.softheme.com/wp-content/uploads/2017/10/22449682_1666864703387680_8375685290251923377_n-613x460.jpg 613w, https://blog.softheme.com/wp-content/uploads/2017/10/22449682_1666864703387680_8375685290251923377_n-768x576.jpg 768w, https://blog.softheme.com/wp-content/uploads/2017/10/22449682_1666864703387680_8375685290251923377_n.jpg 960w" sizes="(max-width: 640px) 100vw, 640px" /></p>
]]></content:encoded>
			</item>
		<item>
		<title>Conference by Softheme “How to find, win and retain customers with Salesforce platform”</title>
		<link>https://blog.softheme.com/conference-by-softheme-how-to-find-win-and-retain-customers-with-salesforce-platform/</link>
		<pubDate>Tue, 10 Oct 2017 13:02:36 +0000</pubDate>
		<dc:creator><![CDATA[Ivan Lytvyn]]></dc:creator>
				<category><![CDATA[Cloud computing]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[IT Conference]]></category>
		<category><![CDATA[Marketing automation]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[SaaS]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[Ukraine]]></category>
		<category><![CDATA[client management]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[CRM development]]></category>
		<category><![CDATA[CRM solution]]></category>
		<category><![CDATA[Customer service]]></category>
		<category><![CDATA[Sales Cloud]]></category>
		<category><![CDATA[salesforce]]></category>
		<category><![CDATA[Salesforce CRM]]></category>
		<category><![CDATA[softheme]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8312</guid>
		<description><![CDATA[Salesforce and Softheme invite everyone to the educational conference in Kyiv &#8211; “How to find, win and retain customers with [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="size-full wp-image-8316 aligncenter" src="https://blog.softheme.com/wp-content/uploads/2017/10/22007912_1648466891894128_4796186538153459880_n-1.png" alt="" width="750" height="447" srcset="https://blog.softheme.com/wp-content/uploads/2017/10/22007912_1648466891894128_4796186538153459880_n-1.png 750w, https://blog.softheme.com/wp-content/uploads/2017/10/22007912_1648466891894128_4796186538153459880_n-1-160x96.png 160w" sizes="(max-width: 750px) 100vw, 750px" /></p>
<p><a href="https://www.salesforce.com/">Salesforce</a> and <a href="https://www.softheme.com/">Softheme</a> invite everyone to the educational conference in Kyiv &#8211; <strong>“How to find, win and retain customers with Salesforce platform”</strong>.</p>
<p><em>Date:</em> 12th of October (Thursday);<br />
<em>Time:</em> 10:00 am &#8211; 3:00 pm;<br />
<em>Place:</em> InterContinental Hotel Kyiv.</p>
<p>The conference will be focused on <strong>three</strong> main topics:</p>
<ul>
<li>How to find more leads while technologies continue to affect marketing processes; tracking data and analytics are becoming more detailed, more user friendly and much more valuable. The attendants will find out how to maximize the use of marketing automation tools for better optimization of marketing campaigns and better conversion of leads.</li>
<li>How to win more customers: use Sales Cloud to have the latest and complete information about your customers anywhere at any time. All data is just a click away and accessible from all devices.</li>
<li>How to retain clients: customer expectations are growing every day. Be ready to provide a personalized service that works much better than what your competitors can offer.</li>
</ul>
<p>You can find the full agenda and registration form here: <a href="https://www.salesforce.com/eu/events/details/fwkg-event-kiev-12-10-17/">https://www.salesforce.com/eu/events/details/fwkg-event-kiev-12-10-17/</a> Register now to get your spot!</p>
<p>Also if you’re interested in Salesforce development and integration services, then check the website about Salesforce CRM, solutions and a list of services provided by Softheme&#8217;s CRM team: <a href="http://sf.softheme.com/">http://sf.softheme.com/</a></p>
]]></content:encoded>
			</item>
		<item>
		<title>Free Online IT Courses [October 2017]</title>
		<link>https://blog.softheme.com/free-online-it-courses-october-2017/</link>
		<pubDate>Tue, 03 Oct 2017 09:31:34 +0000</pubDate>
		<dc:creator><![CDATA[Ivan Lytvyn]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[IT career]]></category>
		<category><![CDATA[IT education in Ukraine]]></category>
		<category><![CDATA[Trend News]]></category>
		<category><![CDATA[coding courses]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[Coursera]]></category>
		<category><![CDATA[educational platform]]></category>
		<category><![CDATA[edX]]></category>
		<category><![CDATA[free courses]]></category>
		<category><![CDATA[FutureLearn]]></category>
		<category><![CDATA[IT courses]]></category>
		<category><![CDATA[IT education]]></category>
		<category><![CDATA[IT specialist]]></category>
		<category><![CDATA[online courses]]></category>
		<category><![CDATA[online education]]></category>
		<category><![CDATA[personal development]]></category>
		<category><![CDATA[programming courses]]></category>

		<guid isPermaLink="false">https://blog.softheme.com/?p=8310</guid>
		<description><![CDATA[Online education is like attending a college for free but without putting your life on hold. If you think the [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="size-full wp-image-8229 aligncenter" src="https://blog.softheme.com/wp-content/uploads/2017/08/free-online-courses_new-new.png" alt="" width="900" height="500" srcset="https://blog.softheme.com/wp-content/uploads/2017/08/free-online-courses_new-new.png 900w, https://blog.softheme.com/wp-content/uploads/2017/08/free-online-courses_new-new-768x427.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></p>
<p>Online education is like attending a college for free but without putting your life on hold. If you think the same, then check our regular list of <strong>free online courses</strong> in programming, computer science, mathematics and personal development that are starting in October.</p>
<h3>Computer Science</h3>
<p><strong>Fundamentals of Network Communication</strong><br />
University of Colorado System<br />
9th of October, <a href="https://www.coursera.org/learn/fundamentals-network-communications">Go to Class</a> via Coursera</p>
<p><strong>Packet Switching Networks and Algorithms</strong><br />
University of Colorado System<br />
9th of October, <a href="https://www.coursera.org/learn/packet-switching-networks-algorithms">Go to Class</a> via Coursera</p>
<p><strong>Digital Accessibility as a Business Practice</strong><br />
Ryerson University<br />
9th of October, <a href="https://www.canvas.net/browse/ryersonu/courses/digital-accessibility">Go to Class</a> via Canvas Network</p>
<p><strong>Windows Server Management and Security</strong><br />
University of Colorado System<br />
2nd of October, <a href="https://www.coursera.org/learn/windows-server-management-security">Go to Class</a> via Coursera</p>
<p><strong>Microsoft Professional Orientation: Cloud Administration</strong><br />
Microsoft<br />
3rd of October, <a href="https://www.edx.org/course/microsoft-professional-orientation-cloud-microsoft-azure215x">Go to Class</a> via edX</p>
<p><strong>Introduction to Cybersecurity for Business</strong><br />
University of Colorado System<br />
9th of October, <a href="https://www.coursera.org/learn/intro-cyber-security-business">Go to Class</a> via Coursera</p>
<p><strong>Deep Learning for Business</strong><br />
Yonsei University<br />
2nd of October, <a href="https://www.coursera.org/learn/deep-learning-business">Go to Class</a> via Coursera</p>
<h3>Programming</h3>
<p><strong>Service-Oriented Architecture</strong><br />
University of Alberta<br />
2nd of October, <a href="https://www.coursera.org/learn/service-oriented-architecture">Go to Class</a> via Coursera</p>
<p><strong>Develop and Deploy Windows Applications on Google Cloud Platform</strong><br />
Google Cloud<br />
9th of October, <a href="https://www.coursera.org/learn/develop-windows-apps-gcp">Go to Class</a> via Coursera</p>
<p><strong>Design Your First App with Build</strong><br />
4th of October, <a href="https://open.sap.com/courses/build1">Go to Class</a> via openSAP</p>
<p><strong>Object Oriented Programming in C#</strong><br />
Microsoft<br />
Self paced, <a href="https://www.edx.org/course/object-oriented-programming-c-microsoft-dev204-2x">Go to Class</a> via edX</p>
<p><strong>Introduction to Virtual Reality</strong><br />
University of London International Programmes<br />
9th of October, <a href="https://www.coursera.org/learn/introduction-virtual-reality">Go to Class</a> via Coursera</p>
<p><strong>Making Your First Virtual Reality Game</strong><br />
University of London International Programmes<br />
9th of October, <a href="https://www.coursera.org/learn/making-virtual-reality-game">Go to Class</a> via Coursera</p>
<h3>Mathematics</h3>
<p><strong>Number Theory and Cryptography</strong><br />
University of California, San Diego<br />
9th of October, <a href="https://www.coursera.org/learn/number-theory-cryptography">Go to Class</a> via Coursera</p>
<p><strong>Introduction to Graph Theory</strong><br />
University of California, San Diego<br />
2nd of October, <a href="https://www.coursera.org/learn/graphs">Go to Class</a> via Coursera</p>
<p><strong>More Fun with Prime Numbers</strong><br />
Kyoto University<br />
2nd of November, <a href="https://www.edx.org/course/more-fun-prime-numbers-kyotoux-011x">Go to Class</a> via edX</p>
<h3>Personal Development</h3>
<p><strong>Media ethics &amp; governance</strong><br />
University of Amsterdam<br />
28th of September, <a href="https://www.coursera.org/learn/media-ethics-governance">Go to Class</a> via Coursera</p>
<p><strong>Professional Resilience: Building Skills to Thrive</strong><br />
Deakin University<br />
20th of November, <a href="https://www.futurelearn.com/courses/professional-resilience">Go to Class</a> via FutureLearn</p>
]]></content:encoded>
			</item>
	</channel>
</rss>
