Saturday, September 14, 2013
Tuesday, September 03, 2013
The software development landscape worldwide is segmented (into the following regions):
- Brazil, Russia, India
- China (BRIC)
- Pacific nations
- Latin America
Australia and Pacific nations are involved in mainly advancing their economies because of their size so they have enough to self-sustain. Latin America is similar to some extent to Australia & Pacific nation as there is a reliance on North America & Europe to provide opportunities for innovation. Caribbean is mainly for tourism but nothing else, it is an untapped resource.
Key factors in successful outsourcing operations:
- Technical Ability & Aptitude – Can they do what’s required now and do they have the ability to learn
- Cultural Alignment – Do they understand your company’s values and are able to adapt sufficiently
- Infrastructure – Sound technology (high speed internet and reliable) good roads, banks and security.
- Language - Are they able to communicate effectively with your clients and/or your team?
- Time zone – Can the teams collaborate in real-time with your team (to resolve issues or plan)?
- Travel Time – How difficult is it for your team to get to the team delivering the solution if the need arose?
- Cost – How much does it cost for an ideal developer to deliver the solutions?
- Human Resources – Are there enough trained or trainable graduates passing out of tertiary level institutions to support the growth of the industry?
North America & the Caribbean developer need
- Culturally aligned with their locale – understand and able to add value, for example, advancing conversations with clients beyond just the here and now but where do you need to be.
- Knowledgeable & capable of applying contemporary software development processes (such as Agile) – in order to help clients to understand & prioritize their needs
- Good communicators & possess collaborative skills – the ability to communicate with their internal teams, stakeholders and work together to effectively solve problems
- In access of broadband internet & ICT – robust infrastructure to ensure communication and connectivity to remote resources are not hindered by technology failures or interruptions
- Low costing & high value - what is the price/leverage equilibrium of these resources, can you move these resources to higher skilled work easily or will they forever be technical support specialists or programmers?
- Technologically rich in their skillset – understanding and executing utilizing various technology
- Able to deliver on time and high quality – a culture of delivery excellence
- Travel time - is it possible to get into the country easily? Will your staff be willing to get there in 1-4 hours or 10-20 hours. A critical factor for your highly technical managers, no one enjoys being away from their family for weeks at time but with the ability to quickly travel to your location and be back in a day is awesome.
Overall there are some real opportunities available in the Caribbean. Here are a few companies that have done it:
There are also other companies that are utilizing software developers here albeit covertly.
- RealDecoy made that move a few years ago in Jamaica and by all accounts it was a successful move.
- Medullan Inc also has software resources in Trinidad for a few years
Delton Phillips is the Director of Strategy & Innovation of Particular Presence, a technology company which specializes in starting up software teams and team management for businesses. You can reach him at delton[at]particularpresence.com
Friday, August 30, 2013
- Well structured and organized
- Meaningful variable names
- The code is like reading a story book - seriously
- Utilization of DRY principles
Wednesday, July 10, 2013
Check out this excerpt from PrimeChoice Autos (http://www.primechoiceautoparts.com/t-Hub-Assembly-Hub-Bearing.aspx)
Sunday, June 23, 2013
The Content Rules
1. Embrace being a publisher. - Regardless who you are, you are a publisher!
2. Insight inspires originality. Know yourself better than anyone. Get your brand story straight, and give voice to your distinctive point of view based on your mission and attributes. Know your customers, too, and what keeps them up at night. What are their concerns and objectives? What do they care about? How will your brand help them in their daily lives?
3. Build momentum. Why are you creating? Good content always has an objective; it's created with intent. It therefore carries triggers to action.
4. Speak human. Communicate your brand mission, values, and philosophy in simple terms, using the language of your customers. Speak in a conversational tone, with personality, empathy, and true emotion. Kill corporate-speak, buzzwords, and other language that makes you sound like a tool.
5. Reimagine; don't recycle. Recycling is an afterthought; good content is intentionally reimagined, at its inception, for various platforms and formats.
6. Share or solve; don't shill. Good content doesn't try to sell. Rather, it creates value by positioning you as a reliable and valuable source of vendor-agnostic information. Your content shares a resource, solves a problem, helps your customers do their jobs better, improves their lives, or makes them smarter, wittier, better-looking, taller, better networked, cooler, more enlightened, and with better backhands, tighter asses, and cuter kids. In other words, it's high value to your customers, in whatever way resonates best with them.
7. Show; don't just tell. Good content doesn't preach or hard-sell. Instead, it shows how your product lives in the world. It demonstrates through case studies or client narratives how your customers use your product or service, and explains in human terms how it adds value to their lives, eases their troubles, and meets their needs. Good content is not about storytelling; it's about telling a true story well.  Inspired by Jason Fried, co-founder of 37 Signals and co-author of Rework (Crown Business, 2010), writing in Inc. magazine.
8. Do something unexpected. There's no business like show business, right? Occasionally adding an element of surprise to your content both drives viral sharing and enhances your company's personality. (B2B companies, we're looking at you.)
9. Stoke the campfire. Like a good campfire, good content sparks interaction and ignites conversation between you and your customers, and among your customers themselves, in the social sphere.
10. Create wings and roots. This advice is usually applied to parenting (give your children roots to keep them grounded and wings to explore new worlds). But it applies to content nicely, too: Ground your content solidly in your unique perspective and point of view but give it wings to soar freely and be shared across social platforms, all over the Web.
11. Play to your strengths. You don't have to create everything and publish everywhere; you don't have to do it all inclusively—create killer blogs and podcasts and white papers and webinars and ebooks and puppet shows and whatever else you can imagine. You don't have to do all of that. But you do have to do some things—and, at the very least, one thing—really, really well.
Monday, January 21, 2013
For the last 4 years I've been active in recruiting talent (including authoring technical assessments & reviewing results) for my company Medullan in our effort to find talent particularly Software Developers, Senior Software Developers and Technical Architects. It has been a hard slog.
According to Wikipedia (which is community contributed) the definition of a software developer is
a person concerned with facets of the software development process. Their work includes researching, designing, implementing, and testing software. A software developer may take part in design, computer programming, or software project management.
At my home, if I were looking for a plumber, what would be some of the expectations I would have? I think one basic expectation many of us have is, if someone says he's a plumber (even one straight out of plumbing school) they'd be able to fix a facet but probably not be able to design a septic system.
In designing technical tests I design the tests in such a way that only those who have been practising any form of software development can pass. For example, write an algorithm to enforce the rules of a tic-tac-toe game in 30 minutes. If you aren't actively practising you can't pass it.
What do I suggest?
Write applications for writing an application sake. For example, at my home in the hills of Jamaica I've been freezing every night and it's always a joy to start the car in the morning to see the thermometer reflecting 68F temps (yes I know Boston is colder, this is cold for us) and telling my wife. Wouldn't it be cool to create an application to store the temp everyday and just generate a chart every month.
This may sound lame but the problems you'll face in building applications like this (data connectivity, handling arrays and testing your application) will be very similar to the scenarios you'll face in your day to day work life and WILL get you through many technical tests. If you're not creative enough to think of any ideas check out sites like topcoder.com or elance.com and just grab the ideas and develop them, even if you're not entering a competition or bidding for jobs.
My final word is, you can't say you're a software developer and haven't written code in months. It's similar to a student leaving school with an accounting degree and is practicing no accounting, it just doesn't make sense.