Independent Consultant
Software Engineering Consulting and Training
Software organizations seek competitive advantage as a way to survive the competition and stay in business. The constant evolution in the software sector carried on by the creation of new technologies and demands impose to these organizations the need to improve the software development process to achieve its strategic objectives like producing better software, reduce the time-to-market, cut costs, improve customers' satisfaction by meeting their needs and expectations, or increase the success rate among other success criteria.1
Achieving such results is possible by adopting best practices to improve the software development process and giving the employees the support needed to carry on in their day-by-day tasks.2
Such operational tasks require in-depth knowledge about software engineering practices and even the execution of scientific methods to identify, test, innovate and select the ones that will best align to your organizational goals and your competitive strategy may it be operational excellence, customer intimacy, or product leadership.3
Such changes are not only technical but cultural and are better carried out with the support of guides to improve the software process such as CMMI4, or it's equivalent MPS.BR5, both based on ISO standards on software engineering6 and supporting development teams in their activities.
These changes often require the application of software measurement and statistical analysis and statistical process control to understand software process performance allied to the technical background necessary to investigate the root cause of process performance issues.
“One who develops software better, cheaper, and faster will become the leader with enormous economic advantage. The key to success in software development will depend upon the software process used to build them.”7
As a Certified ScrumMaster, Accredited MPS.BR practitioner and appraiser and Java Certified Associate, I'm able to provide this support to organizations in need to improve their results by either mentoring, consulting or training in topics as:
software process improvement, agile methodologies such as Scrum and XP and capability and maturity models such as CMMI or MPS.BR;
requirements engineering;
project management and quantitative project management;
configuration management;
verification, validation, and testing;
other topics on demand.
Java technologies/frameworks consulting and training
It is usually hard to find training specifically tailored for the project needs or aligned to the organization's operational objectives. Some organizations opt for courses with sets of subjects that merely overlap with it's needs, most of the times leaving gaps.
This usually leads to high costs of training. One alternative to that is hire a seasoned instructor which will elicit the knowledge needs, identify gaps and elaborate a tailored training to meet the organizational objectives.
This approach at the same time reduces the time needed for training and also the time spent by the employees under training, reducing the overall organizational cost.
Some of the topics I have already lectured includes:
Object-oriented design, SOLID principles, type hierarchy definition
Design Patterns
UML
Java Standard Edition
Java Enterprise Edition
Frameworks, servers and popular tools such as:
JPA, Hibernate, Prevayler
JFreeChart, JasperReports, iReport
RichFaces, Facelets, Primefaces
JUnit, TestNG, JSFnit, Log4J
JBoss/Firefly, Tomcat
Eclipse (including WTP)
These are some examples but the topics are not limited to that and may also include just a subset of those (like just JPA. EJB3, CDI and JSF from Java EE).
The evaluation may include exams to be applied by the organization to help identifying training needs or to evaluate the effectiveness of the training. Exams may also help evaluating candidates for hiring or for promotion.
1FUGGETTA, A., 2000. "Software Process: A Roadmap". In: 22nd International Conference on Software Engineering. S.l.: s.n. 2000. pp. 25–34. Available at: http://dl.acm.org/citation.cfm?id=336521
2RAHMAN, A.A., SAHIBUDDIN, S., IBRAHIM, S., 2011, "A study of process improvement best practices". In: ICIMU 2011 : Proceedings of the 5th international Conference on Information Technology & Multimedia. pp. 1–5. Available at:http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6122742
3Porter, M.E., 1979, "How Competitive Forces Shape Strategy". In Harvard Business Review.
4CMMI PRODUCT TEAM, 2010. CMMI for Development, Version 1.3. S.l. Available at: http://repository.cmu.edu/sei/287/.
5SOFTEX, 2012, Guia Geral MPS de Software. S.l., Associação para Promoção da Excelência do Software Brasileiro – SOFTEX. Available at: http://www.softex.br/guias/
6ISO, 2008, "12207: Systems and software engineering–software life cycle processes". In: ISO Standard. Available at: http://www.iso.org/iso/catalogue_detail?csnumber=43447
7Raman,S, "It is software process, stupid: next millennium software quality key", IEEE AES Systems Magazine, June 2000. Available at: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=847929