Complex processes, like software development, require professionals of many fields and domains to contribute to achieve success. Those people, however, wear not only different hats but different glasses, too: all come with their own concepts, approaches and goals, and while one sees your software as a set of data tables to facilitate user authentication, the other may see it as dashboards to make customer’s top-management happy. It is not that obvious to make conversations between these parties seamless, and it is not that obvious to have your own concepts and goals above the others. Should you happen to fail managing this, and you’ll easily find yourself to have a software which is not quite the same what you needed, while all parties completed their tasks individually in suitable quality. We wish you never find yourself in such a situation. Apart from whispering prayers, we can also help you using non-transcendental tools, as well. In our projects, we focus on providing complete guidance throughout software development lifecycle. We can stand in the role of the orchestrator to manage the orchestra trying to play your symphony. Years of experience in coordinating between developer parties and customers, as well as years of experience in business analyst and technical product manager roles makes us perfect to enforce your concepts and goals, so that you will get what you want to get for your hard-earned money.
Our long track of rich experience in business analysis and product development proves we are successful in:
- identifying and communicating with stakeholders
- identifying strategical goals and priorities; driving trade-offs
- analyzing and reengineering current business processes, as well designing new business processes
- developing UI sketches, prototypes and wireframes
- developing visions which may be turned to reality
- developing a roadmap to make sure the first benefits come as early as possible
Requirements analysis and vision definition services of Imprestige may help in the preparation and initial stages of the software development process. Thorough definition of features and demands, as well as precise requirements specifications are the fundamental for success. Just imagine, when requirements are not straightforward and well-organized, how could the software based on those meet the expectations?
Our concept is based on the fact that artifacts developed during software development should be generated by transforming one into the other: a good requirements specification should be the basis to develop system design, test plan and user assistance documents. Such a transformation guarantees consistency among the various documents and views of the system. The carefully developed set of requirements is, moreover, a necessary artifact for change management. Change management is critical to success since requirements and priorities change often and quickly over time. Any software unable to adjust to these changes may be outdated right at the moment of being released.
We simply think of everything during requirements analysis: in addition to functional requirements, we do not forget about security, architectural, ergonomics, conformance, performance and other kinds of requirements. Our thorough and comprehensive requirements specifications enable for precise measurement of an application’s conformance to requirements and, this way, for controlling vendors. By unambiguous identification of requirements, learning their interferences, analyzing risks and suggesting measurements to lower risks, we draw an exact picture of the system before writing the first line of program code. Imprestige’s software requirements specification concept has been evolved for over 10 years of success and failures. That’s why we say it’s our main specialty.
You get the image of the solution. We have the skills to build it up for you. With over 15 years experience in building software applications, we can develop reliable and robust architectures open to future extensions. By combining the latest results from the fields of software modeling and design, we can find the suitable structural and behavioral elements, as well as design patterns and technologies to construct future-oriented solutions. We are primarily specialized at Microsoft architectures and to building .NET solutions.
Do you find elegance important? And what about being practical, productive and effective? What about getting the job done using intuitive and clear methods? Your answers also apply for software and websites. Appearance and usability are extremely important for out-of-the-box products and commercial websites—once your stuff doesn’t look state-of-the-art or is not easy to use, customers will choose your competitors. Regarding internally used software, on the other hand, users may not have the choice to switch to another application, however efficiency and productivity may be greatly impacted by how much a software, along with its navigation features and function access methods are intuitive and comprehensive: how many to click to access commonly used functions, do hotkeys and keyboard shortcuts support more efficient work, do users need to repeatedly perform the same operations? Contrary to the popular belief saying ergonomics is about appearance, appearance is actually only one constituent to the recipe of real ergonomics. You can find many software and websites which look good, but usage is a nightmare: a labyrinth of poorly documented functions, bad wording, inconvenient processes, unexpected results, lack of support for common tasks and shortcuts and so on. How can one expect to exploit the value implemented in a system which may feature the world’s best algorithms, if time is wasted on figuring out how to use rather than spent on value production?
Creating ergonomic software is not magic and not a question of innate talent, but a process careful enough to pay attention to the details of what makes a software usable. Ergonomically designed software:
- is intuitive to allow users to feel familiar even on first use;
- puts frequently used assets at the user’s fingertips;
- conforms to de facto standards of the underlying platform;
- is well documented and the documentation is also easy to use;
- is responsive.
Such features in commercial software attract users, and in internal software they enable for leveraging maximal productivity.
The term you heard the most during the years you’ve spent in the industry is certainly QA. Chances are that you, despite of the many mentions, rarely heard a competitive definition for it. In our approach, QA is the concept of getting and staying organized, as well as exploiting all values laying in what you have in order to create efficient and highly productive software to maximize the ROI of the developer and the customer. QA should not be l’art pour l’art activity, but that with the strict rationale of adding value.
No, not in that sense. In the sense of knowing everything is linked to everything. To know that making a „minor” change in the implementation of a function may break a screen you don’t even know it exists. As one of the believers of accuracy, we propose the use of repositories offered by market-leading CASE tools, which are capable of storing any assets of your software development, from business goals, through use cases to UI elements, and of creating links between them. This makes change management easy and ensures your software stays consistent with its requirements and designs, due to frequent changes.
Testing = QA?
We have the definite answer: no! No way! Testing is just as reliable as carefully it is planned. Testing in itself is just a comparison of expected and actual results. It is inevitably a core part of QA, however testing itself can be good and bad, as well. Are you sure you are testing the correct requirements? Are you sure you test each relevant aspects, not only functionality? Are you sure your coverage is satisfactory? Testing is a stage in software development projects, which should be planned and executed along the principles and practice of quality assurance. But don’t panic! That’s not magic! It is only about carefully planning testing, from requiring accurate requirements definitions, through extending test to non-functional aspects like ergonomics and performance, to not forgetting about regression. All planned and coordinated.
Business requirements and changing markets demand for complex applications, either talking about internal developments or out-of-the-box products. Developing a complex solution in one step has just too many risks: quickly changing business and technology environments may outdate monumental plans by the time they become ready; usually nor clients, nor vendors have a clear and comprehensive picture of the system; during the long development time there’s no possibility to pre-check at least some portions of the solution, making it impossible to determine if things are going fine or corrective measures should be taken. All these yield in late return on the investment, if there is a return at all, and clients need to wait for a long for the benefits of the investment—such as cost saving, increase in efficiency, increased productivity etc—or those benefits will not even appear. Dividing mega-visions into plannable smaller projects built upon each other and implementing functions in a logical manner, however, enables for the implementation of more and more functions over time and projects. This concept ensures that users can even use the first versions, so that the return on investment may increase soon. This is called incremental and iterative development, and is one of the fundamental concepts of many classic and agile methodologies like the Rational Unified Process (RUP) or Scrum.
By learning your business demands, technical environment and restrictions, budget and deadlines, Imprestige can help in dividing your long-term complex development into phases resulting working application versions. As the first step of planning, Imprestige’s experts hold interviews to collect all business demands of the planned solution, as well as technical restrictions. Next, they assign priorities to these demands and restrictions, and perform risk analysis. Based on the picture obtained in accordance with you, Imprestige then develops your middle or long term product development plan, with which it will be easier for you to persuade decision-makers of the necessity of the investment, since you’ll be able to continuously deliver straightforward results for them to check whether the investment meets their expectations.