Legally Speaking How Can Small IT and Big Business Work Together

Small companies often partner with bigger companies to work together on projects. The small companies gain access to opportunities they can't win on their own; the bigger companies get the smaller firms' specialized expertise, dynamism, and creativity. For these partnerships to succeed, the responsibilities and obligations of both firms need to be spelled out clearly in the contract. These are some of the aspects contracts should address:

• Price

The most basic aspect of the contract will be the price to be paid for services. Neither side should agree to the contract if the financial terms are unsatisfactory. However, even if the contract's financial terms are acceptable, other contract points may need to be negotiated.

• Indemnification

Indemnification clauses state that one of the parties to the contract will be held harmless, in case a third party sues over a specified matter. Typical contracts dictate that the larger firm will not be liable for matters related to new technology introduced by the smaller firm. Because the smaller firm cannot rely on the resources of the larger company to support it in case of a lawsuit, indemnification insurance may be necessary for both parties to be adequately protected.

• Non-infringement of intellectual property

These clauses state that the smaller firm represents that its intellectual property is its own, and not infringing any existing patents. Agreeing to this clause can be difficult for firms that use emerging technologies where patents have been applied for but not yet granted. This contract clause may therefore require negotiation and flexibility on the part of both parties to reach agreeable wording.

• Filing for patents

If the partnership between the two firms will generate patentable ideas, the contract should specify where patents will be applied for and which party will pay for the applications. Big firms may have global reach and require patent coverage around the world, while the smaller firm may not have resources to apply for patents in every market. Frequently, contracts specify that the larger firm will pay the fees in certain markets or split the cost of filing fees with the smaller firm.

• Limitation of liability

Limitation of liability clauses cap the damages that can be owed due to breach of contract. Agreements between large businesses often cap damages to a low multiple of the prior year's fees. However, small firms may be heavily dependent on a single contract, and financially devastated if the contract is breached. Negotiating the limit to an appropriate value is one of the critical points to be addressed when large and small firms need to do business together.

Developers Must Broaden Their Range to Stay Relevant

There are many business applications still running on Cobol, but new developers would never base their career solely around learning Cobol. Even for developers who are working with more modern languages and methodologies, specializing in a single technology isn't the best basis for a career.

Besides the fact that technology changes rapidly (Cobol aside!), developers with a skill set across the technology stack are more valuable to their organization. These developers can step up and pitch in wherever help is needed, and their understanding of the challenges of different technologies provides a foundation for working in architecture, project lead, or managerial roles in addition to a varied programming career.

Understand Infrastructure

Software ultimately runs on physical facilities, so understanding the limitations of hardware and networks helps engineers make appropriate design decisions. Projects can either take advantage of, or be limited by, the specific operating system they are running on, so understanding this is key. Network configurations raise performance issues and security concerns, especially with growing use of the cloud. Mobile devices offer unique challenges as well. Applications won't succeed unless developers understand these issues and handle them appropriately.

Understand Programming

There are fads and trends in programming, so while knowing a specific language is helpful for a while, having a solid foundation in good software engineering practices is more important. Developers need to fully grasp the concepts of object-oriented design in order to write reusable code that speeds projects. Debugging skills are often overlooked, but crucial. So is the ability to reverse engineer and work with existing code, so developers should practice reading and analyzing code they didn't write.

Understand Data

Ultimately, most applications require manipulating data, so developers should be comfortable with a variety of databases. Developers should be able to write SQL queries and work with stored procedures. Although many data-dependent projects will have DBAs to fine-tune the database, developers should be comfortable with the basics of database design and performance tuning. Because "big data" is increasing in importance, developers should learn how to work with very large datasets.

Understand Front Ends

Applications aren't useful until someone uses them, so developers need to understand what makes an effective front end. A designer may polish the look and feel, but developers should understand what works well on different platforms – thick clients still exist, and web applications and mobile apps present different challenges.

How to Appear Confident Through Body Language in an Interview

When you're at a job interview, your goal is to convince the interviewer that you can do the job. Part of the way you do this is by backing up the credentials listed on your resume with strong answers to the interview questions. Part of the way you do this is by simply appearing confident that you can do the job – nonverbal communication is an important contributor to the impression you make.

Dress the Part

It used to be necessary to wear a suit and tie for every job interview. In tech today, that's no longer the case. Try to find out what's appropriate for the company before your interview. Wearing the wrong clothes will undermine your confidence; wearing clothes that make you look like you fit in will help the interviewer picture you doing the job. Whatever style of dress is appropriate, make sure you wear something you like and feel comfortable wearing.

Start Strong

First impressions form almost immediately and carry a lot of weight. Make eye contact, shake hands firmly, and don't be hesitant when you walk into the room. Sit up firmly in your chair – a chair with a firm back where you'll sit up straight will help you present better than a comfy chair where you slouch down. Keeping your feet solidly on the floor will help you maintain good posture. You don't want to be rigid, but don't be fidgety, either.

Project Enthusiasm

If you don't seem interested in the position, the employer probably won't be interested in you. Lean forward during the conversation, but be careful not to intrude on the interviewer's personal space. Avoiding eye contact makes you seem hesitant, but don't engage in a staring contest. Be aware of your voice: tone and speed can make you seem either bored or engaged.

Try not to cross your arms; it's a defensive gesture.  It's better to keep your arms loose and to talk with your hands, as long as you don't wave them around crazily. It's also fine to smile; if you look like you're enjoying the topic, the interviewer will enjoy talking with you.

Practice

When you do practice interviews, practice your body language as well as your responses to interview questions. It may be harder to overcome habitual behaviors than to come up with answers for tricky questions, but presenting yourself well is an important part of succeeding at interviews.

Your Employees are Putting Your Company at Risk

Companies invest heavily in technology to protect themselves from cyberthreats: firewalls, antivirus software, and other tools to keep out intruders. Not all threats are external, however. Whether deliberately through malicious actions, or accidentally through online naïveté, company employees present the biggest threat to corporate information security.

Deliberate Misuse of Resources

Employees can misuse company computer resources in several ways that expose a company to risk. Use of the Internet for personal matters, like online shopping or visiting social media sites, can overload a company's computer network. This can mean companies invest money to upgrade a network when that isn't supported by business needs, and the money would be more beneficial elsewhere.

When employees bring adult content into the office, they can create a potentially hostile work environment that can lead to sexual harassment lawsuits. Employees who use corporate resources to download illegal copies of software, movies, or music also expose the company to lawsuits. In addition, these sites are also often infested with malware, so files brought onto company computers can risk introducing viruses and other dangerous software into the corporate environment.

Employees also misuse resources by removing them from the company. If files aren't appropriately protected, employees can remove confidential company information by emailing them or carrying them out on a USB drive. Employees may be able to take advantage of code bugs to escalate their privileges in an application, and view data they aren't supposed to be able to access.

Accidental Exposure of Company Data

Phishing and social engineering are still extremely effective ways for hackers to gain access. It's surprisingly easy to trick humans into sharing confidential data like passwords and company bank accounts. Employees also can accidentally expose company data if they lose a company laptop or access the company network from an insecure hotspot. The increased popularity of BYOD means that company data is accessed from devices the company doesn't control. If these devices aren't appropriately protected, confidential company information may be at risk.

Use Technology and Training to Increase Security

Companies that want to protect themselves from these risks need to take a comprehensive approach to information security. They need to use the right technological tools; firewalls and antivirus software remain important. They need to have – and enforce – policies that govern the appropriate use of company resources; these policies should also govern the handling of company information on non-company, BYOD devices.

But the most important step companies can take is to train their employees to recognize online risks, and how to defend against them. Educated employees will help defend against these online dangers because they recognize they aren't only a threat to information security; information security failures that seriously damage a company are a threat to their job security as well.

iOS Developer 5 Things You Need to Dominate Mobile Development

Some apps on the iPhone free up our time; other apps, like great games, eat up our spare time. Either way, there are great apps that make our lives better. Here's what you need to be a great iOS application developer.

1. Learn the right programming language

When it comes to developing apps for the iPhone, you have two choices: Objective-C and Swift. The newer language is Swift, and you may think that learning Swift positions you better for the future. But if you learn Objective-C, you can leverage the past better. There's more example code, more online help, more legacy code you can leverage if you start with Objective-C.

2. Learn the specifics of the iOS platform

Knowing the right programming language is only a start. You need to know the ins and outs of developing for the specific platform. To develop efficiently, you need to become comfortable with the IDE and the Simulator for testing your code.

3. Think about how your app will endure

Too many would-be app developers think having a great idea for an app is enough. Don't forget that smartphones are, in reality, portable, powerful computers. The software engineering methods that make code maintainable and supportable on bigger computers are still needed if your app is going to be anything more than a throwaway. Don't just learn how to write code that compiles; learn how to write a well-designed program that will be able to easily grow and adapt, as iOS and the Internet change.

4. Build a throwaway app

Programmers traditionally write a "Hello, world" application whenever they learn a new programming language. You may not want to start quite that small, but you probably shouldn't try to write your million-dollar idea as your first application, either. You'll learn a lot by writing several small, experimental projects first, and it'll be much less frustrating to solve technical challenges when you don't have the pressure of getting your big idea to work.

5. Learn from other developers

Despite the image of great developers cranking out code alone in the wee, dark hours, there's actually a great, supportive community of developers out there. You'll find questions answered in forums like those on Stackoverflow, and you can use and build on code from sources like Github. Don't overlook the possibility of learning from other developers at work, either. Lots of companies in all industries do mobile app development. Work for one of them, and you can get training on the job and learn from more experienced colleagues.

Thursday, Jul 16 2015

4 Tips for Managing a Remote IT Team

Written by

4 Tips for Managing a Remote IT Team

It's common these days for IT teams to have team members in multiple locations around the world, whether to take advantage of specialized talent or cost factors. Technology helps these scattered teams communicate, but there are still challenges that come when co-workers aren't co-located. Here are four tips for managers to help their remote teams work effectively.

Plan ahead

Projects always work more efficiently when there's a plan, and planning is even more critical with remote staff. There are fewer opportunities for casual interactions and questions to clarify assignments, and if confusion crosses time zones, delays can extend for days. Make sure you have a plan, so everyone knows what they're expected to do and when it needs to be done.

Schedule time to communicate

Because team members don't see you in person on a regular basis, they don't often get a lot of feedback. Don't rely on email; it's not dynamic enough, and meaning doesn't always come through. Plan a regular virtual meeting, perhaps once a month, to meet with your remote staff and give development guidance and other feedback. When possible, use videoconferencing, not just audio, so facial expressions and other non-verbal feedback are part of the communication process.

Build processes and systems to support the team

When people are in the same place, you may not need formal processes to address issues that arise; casual communication and spur-of-the-moment working sessions help sort things out. When people are around the world, a formally defined process ensures that everyone knows how to raise concerns, and that everyone is able to contribute input to solutions.

Build team spirit

Remote teams still want to feel like part of the team. Make sure remote staff are included in team celebrations. If possible, have managers visit the remote site periodically, and bring senior members of the remote staff for working visits to the home office. Besides providing an opportunity to build a shared work culture, these out-of-office experiences allow you to get to know remote staff as individuals and treat them as the unique people they are.