Best practices for estimate LOE into a project

Hello friends & teachers,

Now, that I finally got involved into this mobile development area, as usually as developers we need to provide estimation time for some projects, one of first thing I'm facing right now is the "testing" time, it truly takes so much time to perform testing, but I do not mean UNIT testing but Manual testing, like test in the simulator then input data in a form, go next step, etc. I saw that for example, I fix one code line and then for testing it takes me more time than code.

Now, I have been wondering how to estimate projects that the client wants to extend, for example: Initial Project under a PCL project only iOS and Android were added, but now client wants Windows Phone support. Also the project was created before Xamarin.Forms to be released, but then I saw that Apple will require 64-bits support into the apps and now there is a UNIFIED API (xamarin rocks) but, so I'm kind of stuck.

Should I migrate the project to Xamarin.Forms (Shared Project or Portable)?
continue using same project and then just add the windows phone project and start developing?

Migrate everything to UNIFIED API?

Several questions in my head and there are some times that I need some guidance, mostly in how to estimate a mobile project, now the client wants to add windows phone support as mentioned above and I'm stuck about how to estimate a project like that (hours terms). I'm coming from a ASP.NET Website background and I usually estimate by functionality(feature) and that way I can get a more accurate estimation, but on Mobile and per platform this changed.

suggestions? help? guidance? hint? are always welcome.

P.D. LOE stands for Level of effort.

Thanks in advance

Posts

  • rene_ruppertrene_ruppert DEXamarin Team, University, XamUProfessors Xamurai

    You cannot truly estimate a project. No matter if it is a mobile project or something else.

    [INSERT SILENCE HERE TO PUT EMPHASIZE ON THIS STATEMENT AND WAIT FOR THE AUDIENCE TO REACT]

    There's a lot of theory about what works and what not.

    Take small steps, those can be estimated. If you can estimate functions of an ASP.NET website you can also split your mobile project into chunks. Think agile. The client always wants everything immediately, I know. We all do. It's always been like that: not just one candy but the whole box. Now. We all had to learn that's not going to happen.

    Does this help you to estimate your project? No. But I wanted to give you support: you are not alone with this problem. :-)

    If you improve your project step by step or sprint by sprint (btw: better say "week" instead of "sprint" - a week cannot be extended! ;-)) you will be able to deliver and test the new bits if you have a proper architectural design plus automated testing. This includes unit and integration tests but also means continuous integration and automated UI tests. TestCloud can help you here a lot and watched regressions.

    Should you migrate to Unified API? Yes, I think so. However: So far Apple has been pretty relaxed as far as updates are concerned, meaning: even though new apps required a new SDK, existing ones could be submitted even if they use older SDK. Maybe it's worth asking them.

    Should you switch over to Xamarin.Forms? Depends on the app. I recommend to do a test project. If your current projects are already built on top of MVVM pattern, you can easily try Xamarin.Forms; simply treat it as YAP - Yet Another Platform.
    Also depends on the level of experience you have on Windows Phone. If you're new to the platform and won't have too many projects, you might be advised to invest into Forms instead.

    PCL vs. Shared Projects: PCL. Shared Projects tend to become messy; add a compiler flag check here, a partial class there and then it's no longer testable. Rather PCL and proper IoC - my2cents.

  • VictorHGarciaVictorHGarcia USUniversity ✭✭

    The Best reading ever.!! thanks for sharing this!! really helped me a lot.

Sign In or Register to comment.