Lately, I’ve been thinking about the state of software engineering in Trinidad and Tobago. I’ve work for and with my fair share of software development companies here. I’ve spoken to and worked with engineers here and through out the Caribbean, as well as engineers and software architects from the US. From these experiences, I know that Trinidad has the raw talent in the field that can rivals most countries in the world. It is also clear from these experiences that we need to take it further.
I’ve written about this before, well, from a different perspective i.e. ‘ninja coding’ projects and by that I mean taking a project from concept to reality with great software engineering skill but little discipline. This usually involves working with a small team, excitedly white boarding the idea, hurriedly discussing the features and UI of the application then jumping right into the code.
In ninja coded projects, it’s not uncommon to have to make many many sacrifices/ hacks to get over unforeseen issues that came up due to lack of planning, synchronization issues between parts of the system delegated to various members of the team, even if it’s only two people. These projects may also take a lot longer than originally planned, but engineers can loose their way because there wasn’t a plan to begin with … and that’s just some of the issues on the technical side. What about the business side?
What’s the main problem/pain that the application is addressing? Is it already being solved today? How? How is your solution different? Who are your users? How large is the market? What’s your strategy for getting your solution to your users? How much do you need to start? What’s your revenue model? What’s your growth model? How will you determine which it is? How will you get funding? … and there are a lot more where those came from.
This week, I heard about a fairly large and well respected local company that had little to no structure, tools and processes around development efforts. This got me thinking about the state of software development in Trinidad here in Trinidad. (I’d be very interested to hear of readers of my blog if their company has processes and tools and what some of those are.)
I’ve worked to 2 companies in Trinidad that really did well in these areas one company excelling far above all the others that worked at or spoken to.
I spent the most time of the engineering career at Teleios Systems Limited. There was always a degree of technical excellence that the company, one which I’ve not seen matched by many of the other companies here in Trinidad and the Caribbean. During my last couple of years at the company I drove hard for the adoption of ALM tools in the development process coming out of a pretty spectacular semi-bust of a project we were working on. I’d say that we did a fairly good job, though I didn’t see ALM and the Agile process (+ very strong business development and account management) until I went to Medullan.
Medullan’s use of the Agile programming methodology and its value to all processes at the company (Sales and account management) is far superior to any other local software engineering that I am aware of in Trinidad today. Developers that have passed through the company know what I’m talking about…
In the end, I guess what I’m trying to say is, business men of T&T, CTOs, CIOs, CSAs (Chief software Architects), Team Leads, etc. Let’s get serous about Technology and the “Business” of software development … it’s not just about hacking together a software solution anymore.
Have a look at the following ALM tools
- RALLY (www.rallydev.com)
- Microsoft’s Team Foundation Server (http://www.microsoft.com/visualstudio/en-us/products/2010-editions/team-foundation-server/overview)
- Microsoft’s Team Foundation Service (www.tfspreview.com)
- GIT (www.git-scm.com)
- and much more
- With the right processes you can seriously reduce project overruns and raise the probability of successful project completion. I’ve seen it and done it myself.
- I’m currently using Visual Studio 2012 RC1, Team Foundation Service and Windows Azure for some projects that the company is working on … I must admit that I’m doing some quasi ninja coding on my current project, but I still have version control and integrated deployment. Makes a world of difference.
At Caribbean Ideas, I function as the Chief Software Architect and even though we’re a small company with an even smaller development team, I will not allow us to ignore good software engineering discipline simply because we’re a small team, or because we have a lot of work to do. The work will never get easier, I see building the right habits into the the very foundation of the team as an instrumental and critical step to building a team that crosses double digits. It is my firm belief the other software companies here in Trinidad will do the same.
- I think local engineers should get together and talk about this … what do you guys think?