Categories:

  • Architecture design of what component to have, how they work together and communicate
  • Block diagram listing all network nodes and the security control inside, e.g. firewall or proxy
  • Calculate system sizing with reference to what data are stored and quantity with 5 years forecast
  • Determine CPU core, memory and storage required
  • Decide whether to use local servers, private/public clouds, or hybrid clouds. Hybrid increase project complexity & public cloud need to protect corporate classified or sensitive data.
  • Determination of version control, repository management, deployment and rollout tools
  • Use most common technology with maximum support, solution and talent available
  • Use stable but not latest version to avoid problem arise with no solution on market yet
  • Avoid using complicated technologies that are tied to specific products, organization or staff
  • Ask for functional implementation code sample before determination of what tool to use
  • Ask for record export utility to transform data record stored using vendor patent method
  • Check with implementation example and see how other handle them and what they use
  • Check latest technology of major technology giant, attend their workshop, seminar, online or on-site training and the materials available for download
  • Follow major technical player or influencer on social media for latest news and development
  • Check comments on different technical forum or user group
  • Check university latest findings and research publication
  • Pay attention to latest trend, product release, plan, request proposal and announcement
  • Evaluate design pattern, framework or libraries-based features that meet requirement. *No framework is easy to customize or fix if problem found but report problem and wait for update.
  • Concept proof pilot test on core technology to ensure no performance or other issues before
  • Task Assignment based on staff strengthen & weakness, discuss and consult first
  • Peer checking, experience and knowledge sharing
  • Attend training before implementation and require penalty & skill transfer if left earlier
  • Avoid trying new technology that are not required in the product
  • Black and white box testing that covers all path
  • Consult affected parties and discuss idea before finalize, only submit when agreed with right person before on every important issue
  • Enough briefing and task requirement is required, at least a list if no detailed specification
  • Avoid working directly just based on verbal communication and memory, easy to miss item
  • Technical briefing by system analyst on related design pattern and framework for developer to work, sometimes, better and more efficient way to retrieve complicated data is also necessary
  • Provide implementation guideline by system analyst to avoid common technical issue. e.g. database connection, logging, garbage collection clearance and high-performance SQL
  • Difficult to trace and fix framework issue and wait for framework update or workaround is too long. Use such framework when staff have over 2 years of experience on it.
  • Add function to keep existing one used by other parts of system intact to minimize changes
  • Separate version control for development & production rollout, merge before production rollout
  • Aware of different version of JavaScript library used in the project and some component that could have collision problem and try to discover and avoid as early as possible before implementation.
  • Test on different platform specified in tender, e.g, different devices & browser
  • Code scan and review of each development version by system analyst, especially for first few times
  • Common problems:
    • Improper written SQL with many joins
    • Too many SQL sub query with no condition criteria
    • No variable binding but just write parameters directly in SQL leading to many compile time
    • Open too many connections without close
    • No use of preload or cache
    • Setting or configuration not optimize (DB index or buffer for program execution)
    • Simple dead loop inside program.
  • Utilize online resources available from product
  • Check online forum but many times just provide hint only and without working solution
  • Many running batch jobs or applications opened could slow down performance

* Refer to other sections for details.

No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *

Translate »