2. What makes ExultSoft
Product/Technology
Success depends on a
good product or new
technology
People Processes
Most important asset of collaborative and concerned with
the company completing a project as a whole
3. Process
• Must be predictable
• Must be repeatable
• Must be harmonious
• Must be smooth and reliable
• Must be adaptible
• Must be learnable
• Must be simple and documented
4. Optimizing the Process
• Auditing, documenting and improving
• What SDLC model do you follow?
• Do you know which phase consumes
maximum effort vs maximum time?
• How do you optimize – without some
historical statistics how can you leverage
Pareto Rule?
• Do you track lessons learned after
mistakes?
What cannot be measured, cannot be improved!
5. Process visibility
• Do you involve your customers when
appropriate at the earliest time
• Do you see your managers to be enablers or
bureaucrats?
• How do you escalate problems?
• How do you leverage each error that is
identified?
• Process transparency – does management view
the same status you do?
6. People
• Must be self empowered
– Each engineer should be perpetually
optimizing -- improving and learning
– Do you know what errors do you make when
coding?
– Do you know your own SWOT
• Strengths, Weakness
• Opportunities, Threats
Everyone can contribute to marketing – brand ambassador, identifying new clients
7. How to know thyself?
• Gather minimal statistics
– Types of errors you make
– How good is your estimate?
• Do you estimate the size of the product?
• Do you estimate the time it would take?
– Time management techniques
– Planning
– Preparedness
These are not to find fault with you but help you improve by yourself.
8. Planning
• No one plans to fail!
• But most who fail, fail to plan.
• Planning is very important.
• Everyday you should have a plan
• That plan should include a bit of learning,
bit of introspection
• How can I do better? How can I improve
the product or customer experience?
9. Specific things you can do
• Record how long you take to correct a
defect? – develop a statistics
• How many defects do you typically
introduce?
• What type of defects do you introduce?
• Do you document your own engineering?
• Do you document your design process?
• If you do, can someone review and follow?
Again, what cannot be measured cannot be improved.
10. Team
• It is not the individual that counts – it is the
collective
• Do you help others learn new technologies, your
product, your effort?
• Do you learn from others?
• Do you help others excel in what they do?
• Do you help others improve by giving them
appropriate tips?
• Do you hold others accountable when they do
not pull their weight? – this is important
All the wheels have to run at the same speed!
11. Products
• Products includes technology
• How good is your product design?
– Functionally
• Is it useful to a customer or more than one customer
• Engineering right product vs engineering product right
– Structurally
• Is it reliable, easy to maintain and easy to understand
• Easy to modify and improve upon
• Easy to integrate within an external environment
• Architecture is key
Software design is hard, but that is the investment. Do not start writing code.
Design hard. Review your design. Document your design!
12. Mother of all products
• Requirements Document
– Duly signed/dated off by customer
• This should be agreed upon during the
engagement process
• Test Plan/Acceptance Document
– Duly signed/dated off by customer
• This should be agreed upon during the
engagement process
• Design Document
13. Learning from mistake
• Mistakes and tribulations are essential to
grow!
• Do you accept you have made a mistake?
• Failure and mistakes – makes us stronger
• People who do nothing make no mistakes
• Do you use them to grow?
• Making the same mistake more than once
is one too many!
14. Product Engineering
• Is a multi-faceted, collaborative effort
• Small firms depend on good product
• Good products are possible with good
people, processes
• Mind your process/mind the company you
keep
• C or C++ or Java or .Net – they are
incidental to product quality