Skip to content

Category: platformSyndicate content

Android - the Mobile Developer Relief

November 13, 2007 by Artem

Yesterday Google eventually unveiled the details of its mobile platform called Android. The least I can say is that I am impressed. The application level is all Java based, no Linux C, no legacy EPOC C++, no even standard C++. It's all readable Java with the garbage collector, reflection, extensive unit-testing support and zillion of standard and not so standard libraries many of which are actually documented.

Platform, Applications and Product Management

However, what impressed me most was not the wonderful architecture, that allows you to change the very phone dialer, not the Linux kernel as the only porting requirement, not even the Java language. Several years ago I was working together with the folks building another Java phone you might have never heard of - so I know very well that Java is no silver bullet for the phones.

Good and evil of software platforms

March 15, 2006 by Artem

Software platforms by definition are

“some sort of framework, either in hardware or software, which allows software to run. Typical platforms include a computer's architecture, operating system, or programming languages and their runtime libraries.”

Business requirements driven platforms

Lately I've heard an opinion of one manager that the platform features should be driven by the business requirements and then these features will enable the concrete products. As an agile methods supporter I immediately became suspicious: anything that does not directly add value is over-design and are very likely to be useless and harmful.

Test the platform

March 6, 2006 by Artem

One concrete tip about from the seminar discussion: If you are unsure about the platform features, create a test for it.

One of the topics discussed was Test Driven Development (TDD). It is the software development method, when programmer first creates the unit test for the new functionality and only then implements it. I had the concern about the unknown platform capabilities. It happens so, that I and my colleagues often work on fresh betas of the coming software platforms that don't have all the new features documented or even implemented. Therefore quite often I don't have a concrete plan in mind. I try using one feature and another until I find a way that satisfies the original requirements somehow. Of course, these feature trials tend to become the release code and it's mentally difficult to write a unit test after the code - after all this way it is not TDD anymore.