Atlogys

3 Common Mobile Architecture Problems to Avoid

February 5th, 2014 by Ritika Sanghi
Posted in Chief Technology Officer | No Comments »

3 Common Mobile Architecture Problems to Avoid

 

With a rapid increase in the number of smartphones and more affordable connectivity, mobile applications are fast gaining popularity and organizations can no longer rely solely on web-based applications for all their traffic. The mobile space is truly vibrant due to the spectrum of devices and the enormous opportunities it offers. However, mobile application development comes with many unique challenges like the devices to be targeted, offline capabilities, creating an application that’s simple yet effective and security of the data that is being uploaded and In this article we will talk about 3 common mobile application architecture problems to avoid:

  1. Performance Considerations: Developer should customize the code for performance at every stage of mobile application development and not just at the end. It is important to keep under consideration that mobiles mostly operate on battery and hence CPU-intensive performance enhancement features, wireless communication etc. should be kept to a minimum. Similarly using programing shortcuts in the code to deflate the code size reduces battery usage as well as memory consumption. The performance can further be optimized by the following:
    • Minimize the startup time for applications – this can be done using lazy initialization so that data, scripts are only loaded on demand when needed.
    • In general incremental rendering and pre-fetching should be used to reduce the overall perceived latency of the application.
    • Each mobile platform has different best practices and standards which should be thoroughly understood and utilized to optimize the code
    • Memory usage should be kept at a minimum. This can be done by using fewer data objects and by clearing the cache regularly.
  2. Connectivity & Synchronization: Mobiles in general have intermittent connections with varying degrees of connection speeds right from 2G, 3G to wireless. Mobile application architecture should accommodate the loss of a network connections as well as handoff between the various connection types. The following things should be kept in mind to handle connectivity issues:
    • Allow for offline access and background syncing of data – The application can store a local copy of the data that allows users to perform tasks locally when there is no or limited connectivity. Once connectivity is restored, the application should sync in the background with the server and have logic in place to handle synchronization and data conflict issues.
    • Caching is very important – Caching large sets of data from the server can provide a very smooth user experience. However, care should be taken to insure that the cache is expired after a certain time period, so that the user is not seeing very old data.
  3. User Interface and User Experience: Many factors such as reduced application start up time, data consistency, latency etc. play an important role in influencing user experience. Every mobile platform (iOS, Android, Windows, etc.) has well-documented user-experience guidelines that should be followed in order to give a consistent look and feel throughout the application.

Mobile devices have limited screen real-estate with their small screen sizes, thus the mobile application must be designed with each and every pixel in mind. The following things should be kept under consideration

  • Only the most commonly used and important options should be displayed, and the application should be designed for a single full-screen layout with minimal scrolling. Using a wizard or a tabbed interface is better than having a single page with lots of scrolling.
  • Typing is always an issue on a mobile device, so the interface should utilize tools like auto sign-in, auto-complete and dropdown selections in order to minimize
  • CSS media queries should be used to apply different CSS rules and layouts based on different screen sizes, resolutions and orientations. Vector graphics and groups can be used for images for easy scaling between resolutions.

Mobile application development is a specialized field and governed by a completely different set of rules compared with web application development. It is important to understand all the differences in architecture and have the necessary software architecture design skills, expertise and experience before taking on a mobile application development project.


Share

 

How to do effective software quality assurance (QA)

January 23rd, 2014 by Ritika Sanghi
Posted in Chief Technology Officer | No Comments »

Software quality assurance/QA Testing is an integral component of the SDLC (software development lifecycle) process. It detects bugs, functional mismatch and code execution problems in software so as to prevent deficient or incomplete or inaccurate software from getting released in the market.

If you are an entrepreneur outsourcing development of any software application, then it is very important for you to know what software quality assurance is and how to do effectively do software QA testing. Here we will discuss steps and standards you may follow, and also enforce on your development team in early stages of the software development life cycle to account for efficient testing.

Efficient QA testing can increase software delivery times by almost 20% and also cost by around 30—40%. With good QA processes in place, we spend less time in re-iterating, re-testing software – not to mention all the hair pulling time spent in explaining bugs /use cases and documenting tickets for your software team/s!!

The following steps results into an effective quality assurance process:

  1. Accurate Requirements and Tech Specs (Participation from the early stages):The first stage in SDLC (software development life cycle) is making the SRS (software requirement specification). SRS is the first document made by senior business analysts or product managers post getting the functional and business requirements from the clients. Make sure to review the SRS before finalizing it. Your SRS must include all user interactions and functionalities that you wish to provide to your users with all edge cases and data flows documented. It must have per-screen wireframes along with the control flow. A clear requirement in the beginning makes sure that rest of the development life cycle is smooth and delay free. If it’s not possible for you to be a part of this stage then ask your team lead or QA manager to be involved while reviewing the SRS.

  2. Comprehensive Test Cases: It is very important to ask your QA team to write comprehensive test cases and make a good testing plan. The testing plan should be in the form of a project Gantt chart showing which features will be tested on which dates and when will the bugs from the testing get addressed. Good Test cases cover all positive and negative features with the desired outcome. Test cases mention the steps required to test the scenario, the assumptions and the actual vs. expected behavior. Test cases must be made by a QA team that is separate from the technical development team. The QA team should take the SRS as input and make test cases. As the end-client, you must review and sign off on the test cases.

    It’s a well-known fact that bugs are easier to fix during the development stage as compared to being fixed after deployment – which in turn becomes very expensive and results in several regression bugs. So, its very import to have a good test strategy along with the right set of test cases ready before the development begins.

  3. Test Environment – Get your development teams to make a QA testing environment – This should be a server different from the local development machines of the developers. Make sure you get the web access link for the QA server and only do testing on this environment. Never do testing on developer’s sandboxes or on direct developer machines. Ask the teams to push sanitized and reviewed versions of code – post their internal QA onto the QA server for your testing. While you are doing your testing on the QA server, the development team should not push or make any code changes on the QA server as this will result in inconsistencies and inaccurate testing results.

 

  1. Milestone Releases: Divide the application under testing into smaller functional modules and a subset of modules should be released on the QA server once every month for iterative testing. Waiting for 100% development in order to start testing is time consuming and less effective. Divide the whole coding into 3-4 releases and test that subset of features in each release. Ask your development team to do a Word breakdown Structure so that you know what feature is getting coded in which release and test that functionality per release.

    This will allow you to catch errors early; otherwise developers will continue to build more code on top of those errors. Errors detected late would require a re-write of the whole application which will be time consuming and costly.

  1. Software QA Test Reports – Software QA Test Report is a report with a status allied pass/fail next to each test case that the development team must submit with every release. Before you start testing the release on the QA server, make sure the team has done an internal QA and their QA engineer has already caught bugs, gotten them fixed and then released the same to you. In the test cases report you get from the dev. team, all tests must show pass before you start your testing.

While reporting a bug give a detailed description of the same with any additional information like login details, browser version, steps to reproduce etc. Detailed bug reports help to fix the problems/bugs quickly.

A sample test case report can have the following columns

Test Case ID

Test Objective

Steps

Expected Result

Actual Result

Result/Status

Remarks/Comments

  1. Thorough Testing – If you are testing a web application, get reports for cross-browser and cross-resolution testing. If it is mobile, make sure you define the mobile software OS version and the hard ware devices to be supported. E.g. my mobile app is supposed to work bug-free on iOS 5, 6, 7 on iPhone 4, 4s, 5 iPad 3 but not iPhone 5s as it is too new. Tools like

    http://quirktools.com/screenfly/

    http://browsershots.org/

    http://resizemybrowser.com/

    can prove immensely helpful for this.
    Make sure the teams submit test cases report with pass/fail for this complete matrix of requirements. Put yourself in the shows of the end user and run through all cases like registering, activating account from email, fb login, logout, reset password, account settings etc. and make sure they work as expected.

  2. SEO testing – Any web application must have HTML which is SEO optimized. Get an IT consultant to QA test the SEO aspects of the web app like W3C standards compliance (http://validator.w3.org/) , 508 accessibility compliance, Rich snippets and micro data, alt image tags etc. In case the coding is not SEO optimized, the report for the same must be submitted to the dev. team so they may fix the bugs.

  3. Regression testing – Every time a developer writes new code, there are chances that they may or can break something that you had testing or approved before. These are called regression bugs. With each subsequent release of the software, make sure you check for features which you had already tested in the previous release. This is called regression testing.

  4. Bug Management Software for tracking Bugs – There are several bug mgmt. tools such as Bugzilla, redmine which can be used to create bugs, make tickets and follow-up on the same. Get visibility into the discussions happening internally w.r.t. the bug, catch the cause of confusion, see who it is assigned to, set priority and attach screenshots etc. if required. Such tools are very useful to track conversations happening wrt. The bugs and understanding all reasoning and causes.

  5. Performance and Security testing – It is important to load test the web app to ensure page load time as will be witnessed by end users on their browsers. Home pages should ideally load in less than 3 seconds. Post login all web features and functions should work without undue delays.

    Browser based plugins and add-ons like FasterFox, Firebug, Yslow can be used to test network latency and app speed. These can help identify bottlenecks in the code that cause unnecessary compute cycles and hence delay page load.

    Similarly tools like penetration testing (metaspoilt), PageTest by Google can be used to check for security flaws like Sql injection, XSS, CSRF in software applications.

    If you feel you cannot handle such testing, hire an IT consultant to help with creation of such reports.

Give a final sign off to your development team only after all QA testing bugs are resolved, after the app is SEO optimized and performance friendly and secure. Do full regression testing once again after all bugs are fixed and always only accept 100% bug free code.


Share

 

The Interface between Business and Technology – who, what, why ?

February 5th, 2013 by Ritika Sanghi
Posted in Chief Technology Officer | No Comments »

Situation 1

The diagram below shows the situation when a businessman works directly with a technical service provider like a software development company.


Result: Unsatisfied entrepreneur driven by WHAT the developer can do, and not what actually the business requires. The developer is focused on their technology and on only doing a fixed quantum of work (called work packet) without really thinking about the business use case or the evolving nature of the product.



SITUATION 2

The diagram below depicts the situation when a businessman employs an interface to manage the process. This interface can be their CTO or a technology consultant (IT consultant) who understands both the business and technology side of things.

RESULT: Satisfied and happy entrepreneur who gets real value for his time and money. The businessman initiatives really pay off and he/she gets a robust scalable product which is healthy and easy-to-use.
The CTO consultant advices on technology and creates a technical design in line with your business vision. He/she then can even choose the best team which suits your need, and also guide, monitor the team.

Businessmen and entrepreneurs often do not understand technology. They may have great ideas and great marketing plans. However, the lack of knowledge of the technical processes and parameters introduces inefficiencies in their product development cycle which lead to complete failure of the business idea itself.

Businessman should remain focused on the business and not software. Development companies should focus on what has to be done. The interface in the middle must manage the requirements, do the design and provide processes and guidelines to each party along with enforcing measurable performance benchmarks.


Share

 

Startups – The ideas that don’t make it !

February 5th, 2013 by Ritika Sanghi
Posted in Chief Technology Officer | No Comments »

The latest boom and trend in the IT industry is to risk one’s potential to the maximum by doing a startup. With the various open source technologies available today, more and more people are willing to give it a shot. Despite the risk, it is amazing to see the innovative ideas that take form in people’s mind today.

However, due to the lack of exposure to technical trends in the current IT industry, when people try to put into practice their innovations, they realize that there are many challenges in making a successful software product and as such, a successful business venture. By the time they learn to overcome the challenges and get into the drift, they realize realize their innovations are already dead.

So what is happening here?

The ones who take initiative go forth and begin the initial stages of bringing a startup together. They work on it with passion but soon realize that they had taken a lot of factors (from an IT perspective) for granted. Without sound technical know-how and an eye for the latest emerging trends and tools in software, they are not able to breathe strength and charisma into their product. In short, they fail to make their ideas successful.

As such, to avoid falling into such pitfalls, , it is only human nature to heed the advice of those experienced in the field. In order to support you in the areas where you lack expert knowledge, there is always an option to ask help from those who have achieved expert technical knowledge and experienced the IT industry much.

What you need is the next door CTO.

The Entreprenuers should focus on the business and not the software.

The basic problem that an entrepreneur experiences is the trouble of managing the entire project. Plus, without proper technical guidance, they will fail to see their business bloom. Apart from these, they also face the following challenges at various stages:

  • Low quality design.

  • Slow rate of initial development.

  • Intolerability of peak-time traffic.

  • Security loop holes.

  • Un-scalable architecture.

  • Time delays.

  • Unmet deadlines.

  • Impromptu communications.

With a CTO to watch your back, you can concentrate on your business and leave the geekiness and technology to the experts. You will find your innovation being packaged and ready for the world to behold in no time along with it being the best quality as well as making the very best first impression. Your CTO will

  • Understand your business vision.

  • Provide you with the most optimal technical execution strategy.

  • Seamlessly source and manage The Right development team off-site.

  • Provide a Fully managed and monitored development experience.

Have a startup in mind? Time to ring the bell of your next door CTO!


Share

 

Venture Capitalists express interest in ‘Offshore CTO’ to strengthen client’s software

March 14th, 2011 by Ritika Sanghi
Tags: , ,
Posted in Chief Technology Officer, Consulting | No Comments »


The success of a web based business depends highly on the quality and efficiency of its underlying technical platform. As a Venture Capitalist funding such technical ventures, it is necessary to ensure that the portfolio CEO not only has sound technical competence for the design of the platform, but also has reliable and competitive developers for implementation and delivery as per its scope and schedule.

In such a situation, if the entrepreneur is considering outsourcing the platform’s development; perhaps to save costs; then he/she must hire and employ an ‘offshore CTO’ to safe guard themselves from all shortcoming of the offshoring process.
An offshore ‘Chief Technology Officer’ (CTO) is a highly niche service that provides tremendous value addition.

A CTO is a 3rd party individual, who sources and guides a high-performance, local offshore development team to ensure delivery of self-designed, robust, scalable software on an on-time and on-budget basis. The CTO works closely and collaboratively with the client as their dedicated point of contact and manages the entire implementation process.

 

The CTO ensures:
A final product the fully meets all strategic goals –> implements the business vision as per expectations
• Cutting-Edge software that can scale to millions of users
• A fully managed and monitored dev process –> and delivery on-time,on-budget, as per scope and schedule

The services provided by the offshore CTO are as follows:

  1. Program Management – The Business –> IT Translator
    • Technical Advising – In sync with latest developments and trends in IT
    • Execution Strategy & Roadmap – Mock individual features, finalize order of implementation
  2. Software Design Engineering
    • Selection of technology, programming language, tools, API’s and integrations.
    • Overall Architecture Design –Select algorithms and data structures, make data flow diagrams, software design
    • Advice on Coding guidelines – Code refactoring, Hierarchy design
    • Cloud server architecture – Server Farm Design
  3. Project Management
    • Project Lifecycle Management – bug tracking, ticketing
    • Resource and Delivery management
    • Communication – Demos, report submissions, sync ups, meetings
    • Client feedback and iterations
  4. The CTO provides the extra Engineering Eye for Detail often ignored by development teams
    • Testing – Model, functional and integration test cases – App QA and Regression
    • Performance Optimization – Conduct client and server side latency tests
    • Load balancing and Scalability Testing

The Offshore CTO also has the following credentials and qualifications:
• Understands Web 2.0, Understands large-scale, distributed web development
• Passion for designing Heavy traffic, low latency web architectures
• Seasoned Computer scientist and software engineer
• Well-versed with latest trends and development in technology
• Quickly and comprehensively understands the client’s requirements

 

The CTO can also help shortlist and select an offshore development team in situations where clients don’t already have one selected. The CTO can frame an optimized quotation from the vendor on behalf of the client. The CTO ensures that the vendor is charging for the number of hours that are actually needed to write the code as designed by the CTO themselves.


Advantages of such a service:

  1. Software written by outsource teams is usually of low quality – It works as expected but it is not secure, not scalable, not well tested, not performance friendly and not maintainable.
    Non-technical savvy entrepreneurs are also unable to judge the stability, scalability and performance of the site. In the end what they get is a beta platform that drives users away, kills all its initial investment and has no room for future growth and/or funding.
    The CTO can prevent this by acting as a central point of contact for all technical what’s/when’s/how’s/where’s. They understand distributed web design; they can perform code reviews and can supervise the development of well-rounded code.
  2. Offshore Software Development also gets very time-consuming for the entrepreneur – It becomes impossible to manage scope creeps, time delays, resource switches, provide on-time feedback, and conduct continuous tests/QA. The CTO resolves technical deadlocks, handles all communication with the development team, manages on-time delivery, conducts all meetings, and advices entrepreneurs on what features/integrations/tests to add or delete.

The extra costs of hiring such a service prove to be inconsequential in the long term. The CTO prevents the entrepreneur from wasting more money on the re-haul and re-design of a poorly designed product.

Real-World EXAMPLES:

  1. Here are a few case studies of projects that suffered horribly in the lack of such a service. Business Elitehad to shut down operations as it jumped from one bad off development team to another – all in the absence of sound technical guidance and project management.
  2. Here are a few case studies of projects that benefited hugely from having an offshore CTO. Kuhono – a complex IT startup platform designed and built in Rails within three months with more than expected functionality, and delivered on time without much supervision of the entrepreneurs themselves.

At Atlogys, we provide offshore CTO services to entrepreneurs for web platform design and development. Please contact us at ritika@atlogys.com


Share

 

IT Consultant Vs. Software Developer in Offshore Development

January 19th, 2011 by Ritika Sanghi
Tags: , ,
Posted in Consulting, Software Design | No Comments »


 

QUESTION: What’s the difference between an architect and a construction worker on a house construction project?

ANSWER: It is very similar to the difference between an IT consultant and a Software Developer on an offshore software development project.

Most offshore development is handled by a team of software developers who are well versed with coding in a specific language. 90% of the times, such offshore software teams have basic to intermediate software design skills only! They only do what’s necessary to make functional software.

What they almost always lack is detailed strategic planning and a high-profile architecture required for a scalable and performance friendly software.

 
Specifically, an IT consultant can perform the following roles:

  • Design Engineering
  • Program Management
  • Project Management

 

Here are the differences between an IT consultant and a Software Developer on a typical offshore software development project:
 

IT Consultant Software Developer
An IT Consultant looks at technology from the business perspective. They offer advice on latest technology trends & best practices. This way they help clients make better business decisions. A Software Developer takes the approved technical specification and looks at implementing the same to get things working.
An IT Consultant works on adding/deleting features from the app specification as per target audience, goal, market competitive study and ROI. A Software Developer is usually not involved with the market performance reports of their features and/or their customer reports. They are concerned with implementing the approved feature specification in a given time frame.
An IT Consultant can help with code reviews and code re-factoring. A Software Developer writes the initial functional code.
An IT consultant looks at software from the perspective of security, scalability, maintainability, ease of usage and performance. This 360 degree angle puts the implementation strategy on the right track from the very beginning. A Software developer’s first priority is to write functional code. Aspects of security, performance etc often get neglected till the end. This requires major revamps and re-hauls in the software at a later point of time.
An IT consultant looks at the platform from long term use and helps select a DBMS and Db schema accordingly. A Software Developer makes a schema for one feature at a time and usually modifies the same vigorously.
An IT consultant gets involved with ‘testing and QA’ as code and features are being written. He/She then formalizes a process of regular regression testing, and helps in creation of written test cases. This helps with early bug detection and prevents creation of nested buggy code. A Software developer performs manual feature testing after the feature is implemented and continues to build on top or moves on to other features.
An IT consultant can conduct client/server-side latency and load measurements by simulating traffic. This helps in optimizing code by improving data structures, DB schema and algorithms. This activity is usually outside the realm of a Software Developer’s role as it takes up a lot of additional time over and above coding of the actual features.
As the application begins to shape up, the IT consultant can help with the server farm design and launch architecture for launching the application. Choosing an environment for web platforms on the cloud requires a lot of work and understanding. A software developer can then run the processes for moving the app to the cloud as and when told.
An IT consultant can help maintain the app on the cloud as he/she understand the prod machine setup A Software Developer is usually not aware of this setup.
An IT consultant can function as a Project Manager to manage timelines, resources, schedule and project scope. The software developer finds it difficult to stay so organized and update the project status as and when things happen.
The IT consultant can conduct meetings with the clients, offer sync-ups, provide demos, collect bugs and iterate on the status follow-ups. The software developer can save time from doing all this and instead work on the feedback provided to improve the application.

The value addition is similar to the value addition of having an architect on a house construction project.


At Atlogys, we act as IT consultants on web application development and web 2.0 platform design. If you have a web based business and want technical advice or review of your application, please contact us at ritika@atlogys.com


Share

 

Do I need Program Management? Software Program Management?

August 16th, 2010 by Ritika Sanghi
Tags: , , , ,
Posted in Consulting, software management | No Comments »


Program Management is about understating your needs from a business perspective and then converting them into a solution that can be technically implemented. It is about understanding your requirements and then understanding your budget, audience so use-case so that all details can be feasibly addressed in your software and its making.


The value addition from softwate program management is equivalent to the value addition of an architect on a house construction project, the value addition from a total local-shopaholic on your next new-town shopping trip, and the value-addition from talking to the chef prior to gorging at your next expensive restaurant visit.


An IT program manager is someone who will understand your needs and provide the most optimized and ideal solution that will address all demands in one go. An IT savvy person who understands technology and who has a passion for problem solving. Someone well versed with enterprise practices and standards and someone who stays upbeat with latest trends in IT to meet those industry challenges.


If you are considering offshore software development, it is highly recommended to use the services of a trained and experienced program manager. The first step should be to approach the PM (Program Manager) to get the project specifications outlined and designed. As an ongoing process, the PM should work dedicatedly with your software development teamto make sure the project adheres to its quality, to test the project specs, to get the project optimized on grounds of latency, security and to ensure constant and smooth follow-up and collaboration.

More details on Program Management Services.


Share

 

Know your Software Application

October 16th, 2009 by Ritika Sanghi
Tags:
Posted in Consulting, How To | No Comments »


As a software owner, it is very critical to learn and understand few basic details about the application. This will help in utilizing the software application to its fullest potential.

Whether the application is be-spoke (i.e made custom for you from scratch), or an off-the-shelf ready product or an opensource solution, knowing a few basic tidbits can help you debug, troubleshoot the application & use it to its fullest scale and efficiency.

Make sure the following are clarified with the vendor or consultant

  • License Terms and Rules
  • Software ownership and IP property
  • Get the technical documentation on the application
  • The maintenance and support clauses on the application
  • The infrastructure needed to run the application effectively – hardware, electricity, temperature etc.
  • Bug fixing policy

Technical Documentation can prove really useful . It is like an application manual. Go over the documentation and make sure you understand the following:

  • Rules/Assumptions made by the application (if any) – what the application will do in-case user fails to provide a particular input, how it will handle certain edge cases.
  • Formulas, Algorithms, Calculations coded into the application
  • All inputs the application expects along with their data Type
  • All sorts of output it can generate
  • The user control flow scenarios – what all can a user do after logging into the application
  • The modules, tools and features provided by the application
  • Security and Performance clauses built into it – whether it does browser pre-fetching, uses cache layer.
  • Compatibility with newer versions of software and licenses – if the application uses a particular software e.g apache server or windows XP, then can you easily upgrade to vista without disrupting the application functionality.

An IT consultant can help you give a demo of the application and go over its technical documentation. They can also help you understand the application setup for basic troubleshooting.

Do spend a few hours obtaining this critical knowledge. Get in-charge of the software. It will make you feel more comfortable allowing you to experiment, play and use the application in more beneficial ways.

Free Personal Consulting for one hour Free Personal Consulting for one hour


Share

 

Software development Quotations from Vendors – How To

August 14th, 2009 by Ritika Sanghi
Tags:
Posted in Consulting, How To, Service Provider | No Comments »


As a client who hires a vendor for purposes of software development, it is very essential to get a detailed proposal or quotation from the vendor for the proposed application. After getting the detailed proposal, it is equally important to understand the various elements of the proposal so as to make sense of the work needed, the hours estimated and the charges proposed.

These above mentioned two steps will make sure that the client is paying just enough for the quanta of work needed by them for developing their software and not something excessive as per the over-the-top estimations of the vendor.

Sometimes vendors have legitimate estimations of the number of man hours and the number of modules that need to be developed for an application, but many times, these numbers are overestimated to account for slack, change in requirement, bugs, testing and project management.

The overestimation hurts the pocket of the client as vendors will never return the money even if they actually did take fewer hours than proposed to get the work done.

Here are a few tips on getting a detailed quotation:

  1. The proposal should list all modules needed to make the software.
  2. Modules should ideally be divided into the following categories:
    * project management
    * interface graphic design
    * frontend components
    * controller logic
    * backend components
    * testing
    * resolving bugs
    * documentation
    * demo
    * final deployment.
  3. Each such module should contain list of functionality and features needed. Each such functionality or feature should contain the total man hours proposed by the vendor for doing the task.
    Here is an example of a fairly standard list of features to be seen for making an e-commerce and photo intensive online store.

    Interface Graphic Design
    * Overall Template design like header, footer and stylesheet for all pages – 8 hours
    * Editing of images using photoshop – 4 hours
    * Form elements look and feel – e.g. Buttons/Arrows/Dropdowns/selections etc – 2 hours
    Frontend Design
    * User Control flow – Overall navigation – 10 hours
    * Data Listing – 2 hours
    * Prefetching of large images for faster access – 5 hours
    * User login – add/edit/delete users – 8 hours
    * Forms for enquiries/submissions/data retrieval – 3 hours
    * Client side browser processing for various actions like slideshow, events, generating text etc. – 5 hours
    * Payment Gateway incorporation – 15 hours
    * Secure Transaction signatures – 12 hours
    * Generating reports – 14 hours
    Controller Logic
    * ORM mapping betweeb backend and frontend – 20 hours
    * Calculations or complicated algorithms for sorting data items as per price, quantity etc – 20 hours
    Backend Components
    * Database design for storing items, storing prices, storing user accounts – 50 hours
    * Data Archival and Manipulation – 12 hours
    Project Management – 40 hours
    *Design of application SRS
    *Design of application DFD
    *Design of application engineering architecture
    *Monitoring of the overall development
    Testing
    * Browser compatibility of interface across many standard browsers like IE, Mozilla, FF, Opera, Chrome – 3 hours
    * Tests for controller logic – 10 hours
    * Software QA od database and frontend components – 10 hours
    * Design of an intuitive interface – 15 hours
    * Mocks and Feedback from engineers and client. – 5 hours

  4. Each module must also contain the technologies proposed by the vendor for software implementation. e.g. Ruby on Rails, PHP, clearsilver for tempolates, MySql vs. MsSql etc.
  5. Furthermore, the vendor must attched detailed Data flow diagrams and engineering architecture diagram to better help the client understand the application control flow
  6. There should be delivery milestones set in place for each module along with demo dates and final delivery timeline.
  7. The invoice payments must be broken as per delivery milestone and should Not be upfront upon finalization of order.

Understanding the detailed Proposal/Quotation

It is best advised to seek the help of a professional software/IT consultant to understand a vendor’s proposal.

  1. Study your software requirements and make sure that the list of functionality/features mentioned in the modules matches the same. There should not be extra features. If so, you can get them removed and reduce the total hours of work needed.
  2. Look at the technologies proposed for implementation of the modules and confirm with an IT consultant if these are scalable, viable and practical given your software needs. Outdated and old technologies take longer to develop on and are not dependable in the long run. Switching to newer technologoes e.g. switching to ruby on rails from asp.net or from php will save atleast 20% frontend development time for the client.
  3. Look at the project management hours – The vendors charge this for purposes of fully understanding your requirement and making a list of features needed by you. Save on these as follows:
  4. Show the number of man hours proposed for each feature to a 3rd party unbiased IT consultant – Seek their advice and understand is the time peoposed is legitimate for that quanta of work. Very often consultants will give you justification for why the time should be reduced saving you vauable money from the vendor.
  5. Make sure the vendor covers tests for all modules mentioned in the proposal.
  6. Calculate the price being charged per hour by the vendor and see if it makes sense given your industry and size of business.

Consulting firms and professional IT consultants will often work with you to reduce the vendor’s proposed project management hours and the overall man hours estimated for various modules by as much as 40%. This can lead to huge savings in total price to be paid to the vendor.

Most often, consulting firms charge nothing for initial primary consultation. So always seen their 3rd party, unbiased advice and benefit for this valued service.

Free Personal Consulting for one hour Free Personal Consulting for one hour


Share

 

Output of Technical Consulting

July 11th, 2009 by Ritika Sanghi
Tags:
Posted in Consulting | No Comments »


What is IT consulting all about? What does it mean to talk IT or to talk technology?

IT consulting is about understanding the needs of the clients, analyzing various solutions with respect to client’s needs, budget, sclability, sustainability and proposing optimal software solutions. The solutions can be:

  • New bespoken designs and implementations
  • Off the shelf market products
  • Opensource technical solutions integrated and tweaked for a certain need.

The basics of IT consulting are as follows:

  • Understand IT need
  • Create product specifications
  • Conceptualize and Compare different technical solutions for solving need
  • Present the optimal technical solutions to the client
  • Suggest engineering technologies, methodologies and strategies for addressing need
  • Create a software requirement specifications
  • Create a data flow diagram
  • Identify and define engineering components
  • Create an engineering architecture
  • Suggest roadmap and delivery timelines

Atlogys Technical Consulting is an effort towards providing business with ‘one of its kind’, expert technical consulting on all their IT needs and requirements. We provide a packaged service that also includes expert vendor selection and expert product followup.

Free Personal Consulting for one hour Free Personal Consulting for one hour


Share