As any IT Leader in Applications Development can attest to, working toward implementing a single Enterprise Application to manage core business functions is a common goal. Consolidating multiple legacy systems onto a unified platform, automating countless manual processes within the organization, and moving critical business data off the hard drives of individual user computers into an enterprise data warehouse not only benefits the company, but clients as well. Notable benefits include less risk of data loss and reduced data-entry hours by utilizing web-based forms tailored to the organization’s specific workflow methods. Robust reporting will also come in handy when clients request last minute statistics that would otherwise take hours to gather.
“The prospect of building enterprise software may seem daunting at first, but it is possible with proper planning and the assembly of a strong project team”
The prospect of building enterprise software may seem daunting at first, but it is possible with proper planning and the assembly of a strong project team. Creating a preliminary timeline, including high-level milestonesis essential early on; beginning with organizing the core team and ending with a rough completion/go-live date. Inevitably, all of the dates on your initial timeline will require adjustment. Once gathering the team is complete, a working timeline with input from all functional areas such as requirements documentation, development, QA and training is in order. Setting milestones during this stage is indispensable to use throughout the project to gauge slippage and identify scope creep at a high level.
Acknowledgement of support for the new initiative from company leaders is indispensable since it will help encourage personnel, who might want to be part of something fresh and exciting, to participate. It is favorable to the project to ask employees who hold vital process-related information needed to build the application to join the team. Although such subject matter experts already have full-time positions within the company, their participation typically adds to their workload. Be aware of this and cognizant of their availability when putting together timelines. Some SME’s will become key team members, even participating in user acceptance testing.
When hiring external resources it is difficult not to succumb to the pressure of hiring too quickly. Making a poor hiring choice is considerably worse than spending a little extra time up front to seek candidates who “fit” in the first place. Moreover, rushing into hiring decisions can further delay already-established deadlines early in the project.
When moving onto establishing a technical platform, typically, development teams have preferred languages and an environment in place. However, it is important to consider if your technical environment is suited to building and supporting an enterprise application. If it does not, evaluate what adjustments will be necessary based on the scope of the project and always include room for growth. Each platform has its own nuances, whether Microsoft .Net, Java or an open source platform, therefore it is necessary to build extra time into the build plan to accommodate the unknown factors. The aforementioned nuances are difficult to predict and build into the timeline. Based on the development team’s preliminary estimates, managers may apply a multiplier to the final build estimate in an attempt to accommodate unknown hurdles, with the notion that the timing will ultimately line up.
Beyond team resources, establishing high-level boundaries to abide by when creating a new system is paramount. In the case of data-driven applications, build a solid foundation for your application starting at the database level. Pay close attention to relationships between entities and write efficient queries. Performance issues within web applications are often contributed to query performance, or lack thereof. Avoid writing SQL in a procedural manner as this can also lead to significant overhead.
When building applications, the developers, architects, and other technical team members are the essential members of the project team. For small-sized teams, it is advantageous to hire developers who possess applications architecture skills in addition to core database and SQL skills. Innovative thinkers who have the ambition and skills to participate in the design and architecture are a significant team asset. When creating web applications, hire developers who indeed have experience building web apps, as opposed to those primarily experienced in building desktop applications or “websites”. The difference is immense.
Finding special developers can lead to career-long relationships. Keep the development staff happy, give them what they need to perform their jobs and they will pay you back tenfold. If you can, allow them to work their peak productive hours, which may vary from business hours. Allow them time to brainstorm solutions, privacy to concentrate, provide technical support when needed and the opportunity to share their ideas. Share feedback regularly and give them credit when due.
For large applications, hire a technical manager for the team who is actually still technical. If you are not this person, find somebody to fill the role and ask your developers to join the interview process. They will probably discern within a few brief moments if the candidate is “technical enough.” Without this team member, the gap between leaders and developers becomes too wide.
Development teams without business analysts on staff are not unusual; nonetheless, having a team member who can disassemble processes into logical components and document them in plain English ensures that the dev team spends their time building the web app instead of gathering specifications and attending multitudinous meetings. The possibility exists that there is a talented individual possessing the skills to perform this job already employed by your company. Above all, it is of particular benefit to have someone in the position that is familiar with the company and its processes.
Having at least one team member who is fully responsible for all aspects of QA is crucial; this includes setting parameters for user acceptance testing and establishing test procedures. Furthermore, ensuring that the timeline includes sufficient time for QA and revisions is imperative.
In conclusion, identifying the key objectives of the project and setting goals and milestones early on will aid in determining realistic timing to share with company leaders and project sponsors. Building an enterprise-wide web application is possible with any size team when filling essential team member roles with strong, knowledgeable individuals. Furthermore, even teams of limited size are capable of significant achievements when driven individuals gather and work toward a common goal.